python入门浮生小计
文章目录
python语法文章集锦
1.@staticmethod怎么用?
2.Python中的self用法详解
3.Python enumerate() 函数
4.Python中if-else的多种写法
附
(1) python小记
#Python中pass 是空语句,是为了保持程序结构的完整性。pass 不做任何事情,一般用做占位语句。
for letter in 'Python':
if letter == 'h':
pass
print '这是 pass 块'
print '当前字母 :', letter
print "Good bye!"
Process finished with exit code 0
意味着程序正常执行完毕并退出。
科普一下exit code,在大部分编程语言中都适用:
exit code 0 表示程序执行成功,正常退出
exit code 1 表示程序执行执行过程中遇到了某些问题或者错误,非正常退出
Python assert(断言)用于判断一个表达式,在表达式条件为 false 的时候触发异常。
断言可以在条件不满足程序运行的情况下直接返回错误,而不必等待程序运行后出现崩溃的情况,例如我们的代码只能在 Linux 系统下运行,可以先判断当前系统是否符合条件。
(2) 字典生成式、列表生成式
# 字典生成式
original_dict = {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}
user_dict = {k: v for k, v in original_dict.items() if v % 2 == 0}
print(user_dict)
# 列表生成式
listEx=[i**2 for i in range(1,10)]
print(listEx)
(3) 返回当前脚本的绝对路径
import os
os.path.abspath(__file__) 作用: 获取当前脚本的完整路径
os.path.dirname(path) #path是文件名的绝对路径
os.path.dirname(__file__) # 返回当前脚本的所在路径除去文件名后的目录
(4) glob.glob()
glob.glob()返回所有匹配的文件路径列表。它只有一个参数pathname,定义了文件路径匹配规则,这里可以是绝对路径,也可以是相对路径。
# 举例说明
f=glob.glob("C:\\Users\\summer\\OneDrive\\图片\\test\\*.png")
print(f)
print(len(f))
(5) print不换行
print(i, end = '' )
(6) Python内置函数set()
set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。
>>>x = set('runoob')
>>> y = set('google')
>>> x, y
(set(['b', 'r', 'u', 'o', 'n']), set(['e', 'o', 'g', 'l'])) # 重复的被删除
>>> x & y # 交集
set(['o'])
>>> x | y # 并集
set(['b', 'e', 'g', 'l', 'o', 'n', 'r', 'u'])
>>> x - y # 差集
set(['r', 'b', 'u', 'n'])
>>>
(7) 在python中是没有i++,i- -表达式的
必须写成 i = i + 1, i = i - 1
(8) 将高维tensor转化为1维列表,并存入txt中
将高维tensor转化为1维列表便于c语言数组使用,关键是用flatten()函数
import torch
import codecs
f = codecs.open("D:\\10GraduationProject\\vedioData\\data_process\\ucf5\\conv1.txt",'w','utf-8')
conv1_weight_length=len(checkpoint['state_dict']['conv1.weight'].flatten().numpy().tolist())
f.write('[')
j=0
for i in checkpoint['state_dict']['conv1.weight'].flatten().numpy().tolist():
if j<=conv1_weight_length-2:
f.write(str(i)+',')
if j==conv1_weight_length-1:
f.write(str(i))
j = j + 1
# 其中print(checkpoint['state_dict']['conv1.weight'].shape) 结果为torch.Size([64, 3, 3, 3, 3]),为5维tensor
(9)Python 将多维数据转为一维数组
(10)python 保留指定位数小数
format函数(推荐)
print(format(1.23456, '.2f'))
print(format(1.23456, '.3f'))
print(format(1.23456, '.4f'))
结果
1.23
1.235
1.2346
(11)NumPy中的维度(dimension)、轴(axis)、秩(rank)的含义
(12)Python按文件顺序读取文件夹中文件
参考文档
测试代码:
path = 'D:\\10GraduationProject\\vedioData\\data_process\\ucf5\\test\\ApplyEyeMakeup\\v_ApplyEyeMakeup_g03_c02'
path_list = os.listdir(path)
# 注意这里的path_list是不包含文件夹路径的,只有光文件名。
path_list.sort(key=lambda x:int(x.split('.')[0]))
print(path_list)
fnames = []
for fname in path_list:
fnames.append(os.path.join(path, fname))
print(fnames)
测试结果: