python学习记录

最后更新于:2022-04-02 04:33:09

## python学习记录 记录 python的学习之旅。 ---- ### PyCharm 使用记录 > python 语法最接近自然语言,也就是像我们平常说话那般自然,即使你不熟悉语法,当你不知道该怎么写时,你就按照自己的想法写,你会发现很多时候你总是对的,它就是你所想的那样,python 就是这样,就是你所想的样子,那样自洽,那样自然,那样简单,不需要任何的刻意,它不追求任何技巧,不故作高深,只是人思想的自然表达而已,仿佛每个人天生就熟悉它。 ### 1. 控制台中文输出乱码 解决方法:https://www.cnblogs.com/it-tsz/p/9823536.html 1. 文件->设置->编辑器->文件编码:项目编码 - GBK 2. 文件->设置->编辑器->文件和代码模板->Python Script:`# coding=utf-8` ---- ### 2. OSError: Cannot load native module 'Crypto.Cipher._raw_ecb': ``` OSError: Cannot load native module 'Crypto.Cipher._raw_ecb': Trying '_raw_ecb.pyd': [Error 193] %1 不是有效的 Win32 ``` https://github.com/Legrandin/pycryptodome/issues/155 上面报错不是这个问题,而是 64位的操作系统,只能安装 64位的 python 才行。https://www.python.org/downloads/release/python-2718/ ---- ### 3. 关闭 sql 等警告提示 通常我们不需要它检查sql,因为这需要链接数据库,而数据库还可能是远程的,开发时不希望连接检查。 https://blog.csdn.net/weixin_42686768/article/details/97121081 https://www.cnblogs.com/lurenjia1994/p/9681637.html https://www.cnblogs.com/zq8421/p/10356383.html https://www.cnblogs.com/wisir/p/10898469.html https://blog.csdn.net/windscloud/article/details/80208960 [Python基础之PEP8规范(代码写作规范) - 知乎](https://zhuanlan.zhihu.com/p/88729367) [Python PEP8 编码规范中文版_基因记忆-CSDN博客](https://blog.csdn.net/ratsniper/article/details/78954852) https://legacy.python.org/dev/peps/pep-0008/ ---- ### 4. pyautogui.click() 没有效果 [51模拟器使用python pyautogui点击没有效果的解决方法_york1996的博客-CSDN博客](https://blog.csdn.net/york1996/article/details/104154806) > 右键启动pycharm或者其他ide的时候选择以管理员权限启动即可。 ---- ### 5. 插件 CodeGlance 类似 sublime 中的代码预览地图 ### 6. 关闭IDE时选择终止或断开连接的区别 PyCharm 终止和断开连接不一样,终止是正常关闭正在执行程序,如 `db` 类析构时会断开数据库连接,而非正常终止程序断开连接则不会这样,没有执行析构。 ---- ## python 学习记录 ### pymysql 参数绑定 `cursor.execute(' select ... %s ', [])` 使用参数绑定而不是sql拼接,这是防止 SQL 注入 的最安全的方法。(注意使用参数绑定时,`%s` 占位符不需要使用引号) https://www.cnpython.com/qa/194936 ---- ### windows 使用 pyautogui 时要注意的 windows 使用 pyautogui 时,不能关掉链接,甚至小窗远程连接也不行 https://www.cnblogs.com/sophia201552/p/13344320.html 按这个方法也不行 ---- ### 注意库模块的隐式引用 ~~~ C:\Python27\python.exe D:/wamp64/www/xiak-DataValley/test_xiak/t.py Traceback (most recent call last): File "D:/wamp64/www/xiak-DataValley/test_xiak/t.py", line 4, in from selenium import webdriver File "C:\Python27\lib\site-packages\selenium\webdriver\__init__.py", line 27, in from .safari.webdriver import WebDriver as Safari # noqa File "C:\Python27\lib\site-packages\selenium\webdriver\safari\webdriver.py", line 20, in import http.client as http_client File "D:\wamp64\www\xiak-DataValley\test_xiak\http.py", line 17 str = json.dumps(cookies) ^ IndentationError: expected an indented block ~~~ `C:\Python27\lib\site-packages\selenium\webdriver\safari\webdriver.py` 第19行还有这样的代码: ```python try: import http.client as http_client except ImportError: import httplib as http_client ``` 而项目目录 刚好有 D:\wamp64\www\xiak-DataValley\test_xiak\http.py 这个文件,所以被当作模块引用了,看来在不了解所使用的库时,不能随便定义文件模块啊。这有点类似于php中的依赖注入,但这个竟然是隐式的。 ---- [非常详细的字符编码讲解,ASCII、GB2312、GBK、Unicode、UTF-8等知识点都有](https://www.bilibili.com/video/BV1gZ4y1x7p7) [非常生动的Python2和Python3的编解码讲解](https://www.bilibili.com/video/BV1XK4y1t7D4) [HelloDjango - django REST framework 教程_追梦人物的博客](https://www.zmrenwu.com/courses/django-rest-framework-tutorial/) ---- ### 函数参数 1. 位置参数(必传,支持按顺序或按参数名传入) 2. 默认参数(支持按顺序或按参数名传入,不传入参数时,默认值为缺省值) 3. 可变参数 *args(参数数量不是固定的,函数接受到的参数是一个 tuple ) 4. 关键字参数 **kwargs(允许任意个按参数名传入参数,函数接受到的参数是一个 dict) 5. 可变关键字参数(限制关键字参数的k,如限制必传,也可以有默认值;* 后面的都是命名关键字参数,如果已经有了一个可变参数,后面的命名关键参数就不需要 * 了) > 对于任意函数,都可以通过类似func(*args, **kw)的形式调用它,无论它的参数是如何定义的。(按顺序传参,按参数名传参) [函数的参数 - 廖雪峰的官方网站](https://www.liaoxuefeng.com/wiki/1016959663602400/1017261630425888) ---- ### 模块引用 python import 相当于 php 中的 `require_once`,只会引入执行一次。 ---- last update: 2020-11-23 10:27:18
';