快捷

  1. 安装pyqt5
  2. 如何执行
  3. 文件模板的使用
  4. os模板的使用
  5. sys模板的使用
  6. sqlite3模板的使用
  7. format 输出
  8. f-string
  9. 函数
1
python3 文件名.py               //执行python文件

| :—- | :—- |
| /lib/python3/dist-packages | ubuntu python3的安装地址 |
| sudo apt install python3-pip | ubuntu 安装pip命令 |
| pip3 install pack_name | 安装模板 |
| sudo add-apt-repository ppa:deadsnakes/ppa | 在 Ubuntu 20.04 中,默认的软件包源可能不包含所有可用的 Python 版本,特别是较新的版本,如 Python 3.10,提供多个版本的 Python |

安装pyqt5

  • ubuntu pyqt5 安装
  • 生成的py文件不可手动修改,因为当再次执行pyuic5之后,所有修改将被覆盖
  • 如要运行这个py文件,就新建立一个独立的文件取import,调用就好了
  • python3 的 pip安装及命令后面都因加上3因为你使用的是python3 如:pip3 install pack_name
  • 注意::python有python3 安装pyqt时需要 pip3 install pyqt5

| — | — |
| pip3 show pyqt5 | 显示pyqt5的版本,安装位置等信息 |
| /usr/lib/x86_64-linux-gnu/qt5/bin/designer | pyqt5的可执行文件, ui设计界面 |
| pyuic5 name.ui -o name.py | 通过命令来将.ui文件转化为.py命令,运行name.py无法显示图形界面 |
| pyuic5 -x name.ui -o name.py | 通过命令来将.ui文件转化为.py命令,运行name.py可以显示图形界面 |

如何执行

  • 只能执行这一个文件,如果该文件中又引用了不同目录的文件。会报错!
  • 个人理解,只要是我知道的都没问题,我不知道的那就问题大了

| — | — |
| python3 file_name.py | 没有执行权限的 |
| chmod +x file_name.py | 添加执行权限,添加后可以./file_name.py |
| ./file_name.py | 有执行权限的 |
| ==import lib_name== | 引入模板库 |
| from dir_name import file_name | 跨目录执行文件 |

文件模板的使用

| — | — |
| m_fp = open(file_name, format) | 以format的方式打开file_name文件并返回一个文件指针对象 |
| m_fp.close() | 关闭文件 |
| m_str = m_fp.readline() | 以字符串的形式返回m_fp文件中文件指针的当前行 |

os模板的使用

| — | — |
| import os | 引用os模板 |
| os.path.exists(file_name) | 判断文件是否存在 |
| os.path.isdir(dir_name) | 判断目录是否存在 |
| os.system(cmd) | 执行系统命令,cmd为字符串format |

sys模板的使用

| — | — |
| sys.path[0] | 获取脚本文件的绝对执行路径 |
| sys.exit() | 退出程序 |
| sys.argv | 获取执行脚本文件的参数 |

sqlite模板的使用

  • 游标对象可以用来执行查询、插入、更新等数据库操作

| — | — |
| import sqlite3 | 引入sqlite3 数据库模板 |
| m_db = sqlite3.connect(db_name) | db_name存在就打开,不存在就创建一个,返回一个sqlite3对象 |
| _db = m_db.cursor | 创建一个用于执行数据库操作的游标对象 |
| str = _db.execute(sql_cmd) | 执行sql命令,返回一个列表 |
| m_db.commit() | 提交对db的修改,没有提交就不会更改 |
| m_db.close() | 关闭db |

多线程模板的使用

  • ==守护线程:当主线程结束后,守护线程也会随之结束,整个程序也跟着退出。必须在start()之前设置==

| — | — |
| import threading | 引用模板 |
| thread = threading.Thread(target = fun_name, args = ID) | 创建一个线程 |
| start() | 启动线程 |
| join(timeout) | 以阻塞的方式等待线程结束,如未提供参数将一直阻塞直到被调线程结束 |
| current_thread() | 返回当前线程 |
| active_count() | 返回当前活跃的线程数,1个主线程+n个子线程 |
| get_ident() | 返回当前线程 |
| enumerate | 返回当前活动Thread对象列表 |
| main_thread() | 返回主Thread对象 |
| settrace(func) | 为所有线程设置一个 trace函数 |
| setprofile(func) | 为所有线程设置一个 profile函数 |
| stack_size([size]) | 返回新创建线程栈大小,或为后续创建的线程设定栈大小为size |
| getname(), setname(), name() | 用户获取和设置线程的名称 |
| setDaemon() | False为前台线程,True为后台线程, 差别,前台线程主线程会等待它运行完退出,反之 |
| ident | 获取线程的标识符,只有调用start()方法以后才有效,否则返回None |
| is_alive() | 判断线程是否是激活的(alive) |
| isaemon()方法和daemon属性 | 判断是否为守护线程 |
| setDaemon(True) | 设置线程为守护线 |

format 输出

!!! example print(“{0:<10}\t{1:<10}\t{2:<10}” .format(“0_val”, “1_val”, “2_val”))

  • 0要打印的数据表示索引,<表示对齐方式,默认使用空格进行填充,10表示间隔10个字符
  • \t表示每个列之间的间隔,.format()表示要打印的数据,如果是中文则采用中文的空格方式:chr(12288)
    !!!

| — | — |
| {0:>} | 右对齐 默认使用空格进行填充 |
| {0:<} | 左对齐 |
| {0:^} | 居中对齐 |
| {:<} {:&<} {:0<} | 进行左对齐并分别使用,&,0来进行填充 |
| %5d % ‘aa’ | 靠右对齐 |
| %-5d % ‘aa’ | 靠左对齐 |

f-string

  • 当使用f-string来显示变量时,你只需要在一组大括号{}内指定变量的名字。而在运行时,所有的变量名都会被替换成它们各自的值

| — | — |
| print(f’’’name:{m_name}, age:{m_age}’’’) | m_name和m_age将打印变量的值 |
| print(f’’’ count:{i * j}’’’) | 使用表达式,将打印他们的乘积 |
| print(f’’’ me is {boy if _val = 1 else girl}’’’) | 使用条件语句,boy和girl必须为变量 |
| print(f” me name is {m_name.title()}”) | 直接打印变量的方法 |
| print(f” me age is {AGE(m_name)}”) | 调用函数 |
| ==字符串的内置函数== ||
| str.strip() | 去除前后的空格,并返回一个新的字符串对象 |
| str.strip(‘\n’) | 去除’\n’字符,并返回一个字符串对象 |
| str.split(‘/‘) | 以’/‘为分割符,半返回一个列表对象 |

函数

| — | — |
| bool(_val) | 用来判断_val这个对象是否为空,存在为真,否则为假 |
| len(_val) | 用来获取_val对象的长度或则大小 |
| str(_val) | 将对象转换为适于人阅读的形式 |
| list(_val) | 将对象转换为列表的形态 |
| exit() | 抛出SystemExit异常,一般在交互式shell中退出使用 |
| sys.exit() | 退出程序引发SystemExit()异常,可以捕获异常执行些清理工作,一般主程序中使用 |
| os.exit() | 直接退出,不抛异常,不执行相关清理工作,常用在子进程的退出 |

m_db.close()

1
2
3
4
5
函数>>
基本概念>>
定义函数的使用::def 函数名(参数):
函数体
[return返回值]