文章目录
资料
基础知识
注释
# 单行注释
"""
多行注释
"""
'''
多行注释
'''
#%% block1
print("code block")
#%% block2
print("another code block")
在vsCode
中查看的效果如下(#%%
以下一个#%%
或结尾
为结束标志):
虚拟环境配置
python -m venv . -h # 显示帮助信息
python -m venv . # (推荐)创建虚拟环境(虚拟环境独有一个pip,安装的包在虚拟环境下(必须active虚拟环境后才能使用这个pip))
python -m venv . --without-pip # 不安装独立的pip(使用习题的pip,安装的包也在系统默认的位置)
python -m venv . --clear # 清除当前虚拟环境
./Scripts/activate # 激活虚拟环境(windows)
source ./bin/activate # active venv in ubuntu
deactivate # 推出当前虚拟环境(不需要指定路径)
pip freeze > Requestments.txt # 将当前虚拟环境生成需求文件
pip install -r Requestments.txt # 安装需求文件中指定的环境
安装、卸载模块
pip list # 显示默认路径下所有已安装的模块
pip show module_name # 显示默认路径下指定模块的详细信息,没有的话说明在默认路径下没有安装此模块;
# 当使用系统范围的pip时,将显示系统默认的模块安装路径下已安装的模块;
# 当使用虚拟环境的pip时,将显示虚拟环境中已安装的模块;
# 当创建虚拟环境时通过--without-pip指定了不需要虚拟环境pip时,在虚拟环境中也是使用的系统pip;
pip install module_name # 安装
pip install --target=./ module_name # 在指定路径下安装模块(通过这种方式,也可以使用系统pip在虚拟环境中安装模块)
pip uninstall module_name # 卸载
数组、元组、字典
list1 = [1, "ABC", False] # 数组,用中括号定义
list2 = (1, "ABC", False) # 元组,用小括号定义,相当于定义后元素不可变的数组
list3 = {"A":"apple", "P":"pear", "B":"banana"} # 字典,用大括号定义,键值对
list1[0] = 2 # Right
list2[0] = 2 # Error, 元组就是不可变的数组!
print(list3["B"]) # banana
数组的使用
list = [1, "ABC", False]
print(list[0]) # 1
print(list[0:2]) # [1, "ABC"]
print(list[-1]) # False
print(list[1:]) # ["ABC", False]
list1 = [1, 2, 3]
list2 = [6, 5, 4]
list1.extend(list2) # 讲list2合并到list1后面
print(list1) # [1, 2, 3, 6, 5, 4]
list2.append(7) # 在list2后追加7
print(list2) # [6, 5, 4, 7]
list2.sort() # 对list2进行排序
print(list2) # [4, 5, 6, 7]
list2.reverse() # 对list2的元素反序
print(list2) # [7, 6, 5, 4]
list2.insert(2, 7) # 在index为1的元素前插入7
print(list2) # [7, 6, 7, 5, 4]
print(list2.index(7)) # 0 # 返回第一个元素7的index值
list2.remove(7) # 把list2中第一个7删除
print(list2) # [6, 7, 5, 4]
list2.pop() # 删除list2的最后一个元素
print(list2) # [6, 7, 5]
list2.clear() # 清空列表
print(list2) # []
以Hex方式输出list
CRC_TEST = [0x01, 0x04, 0x00, 0x0B, 0x05, 0x00, 0x01, 0xB8, 0x0B, 0x00, 0x00]
print(CRC_TEST)
print(",".join("0x{:02X}".format(num) for num in CRC_TEST))
print(", ".join("0x{:02x}".format(num) for num in CRC_TEST))
print(", ".join("0x{:02X}".format(num) for num in CRC_TEST))
输出如下:
模块导入
import moduleA # 将moduleA中的所有东西都导入
from moduleA import funcName # 只导入moduleA的funcName
from moduleA import funcName as fn # 只导入moduleA的funcName,并起别名
python使用系统变量
# filename: app.py
import os
import time
# 系统变量都是以字符串引入的
# 通过 try 防止用户的错误输入导致 int() 转换失败
try:
delay_time = int(os.environ.get('DELAY_TIME'))
except:
print("set DELAY_TIME as a number, please! Default 5s.")
delay_time = 5
print("Hello Docker!")
print("Sleep", delay_time, "s")
time.sleep(delay_time) # 休眠 5s
print("Sleep Ending")
# 上面代码的使用
unset DELAY_TIME # 删除系统变量
python app.py
export DELAY_TIME=3s
python app.py
export DELAY_TIME=3
python app.py
python调用C库
说明:以上链接中的方法,第一种“c extension”没怎么看到,第二种“Cython”静态库方式卡在最后一步出错,只有第三种我测试成功了。