[PY] Python API
1. 字典 Dict
1.0 初始化
1.0.1 初始化赋值
map = {}
# 【特别注意】 不能使用双引号,否则会出现无法取到key的问题,只能使用单引号
map = {"a": 1, "b": 2, "c": 3, "d": 4}
# 正解
map = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
1.0.2 new方式
map = dict()
1.1 字典 遍历
1.1.1 遍历key
for key in map:
log.info(key + ":" + str(map[key]))
for key in map.keys():
log.info(key+':'+ str(map[key]))
1.1.2 遍历value
for value in map.values():
log.info(value)
1.1.3 遍历字典项items
for kv in map.items():
log.info(kv)
1.1.4 遍历字典key-value
for key, value in map.items():
log.info(key + ':' + str(value))
for (key, value) in map.items():
log.info(key + ':' + str(value))
1.2 取值与赋值
取值
# ['key'], key不存在时,抛异常
log.info(map['a'])
# get['key'], key 不存在时,返回None
log.info(map.get('a'))
#['key'], key不存在时,抛异常
log.info(map.__getitem__('a'))
# get为null时 默认初始值
map.get('a', 10086)
# 【特别注意】当key值不存在时,取出来的是None,且无法使用变量去引用这个None 会抛异常
excp = map['aaaa']
写
# 赋值
map['a'] = 1024
# 添加新值
map['z'] = 1024
# 删除
del map['a']
判断key是否存在
if(a in map):
if(a not in map):
map.__contains__('a')
2. 列表 list
2.1 创建list
lst = list()
lst = []
2.2 遍历list
list = ['html', 'js', 'css', 'python']
# 方法1
for val in list:
print("index:%s val:%s" % (list.index(val), val))
# 方法2
for val in range(len(list)):
print("index:%s val:%s" % (val, list[val]))
# 方法3
for idx, val in enumerate(list):
print("index:%s val:%s" % (idx, val))
print('-----')
# 方法3 第二个参数只是改变了idx的值,但val仍旧是从索引为0开始
for idx, val in enumerate(list, 2):
print("index:%s val:%s" % (idx, val))
3. 数组
3.定义已知长度的数组
9. 类型判断与转换
9.0 类型判断
x = ''
# 判断一个变量类型是否是int
isinstance(x, int)
# 判断一个字符串是否是数值
x.isdigit()
9.1 int str之间转化
# int -> unicode:
unicode(int_value)
# unicode -> int:
int(unicode_value)
# str -> unicode:
unicode(str_value)
# unicode -> str:
str(unicode_value)
# int -> str:
str(int_value)
# str -> int:
int(str_value)
10 系统
获取当前系统
platform.system()
win:Windows
黑苹果:Darwin
print("----------Operation System--------------------------")
# Windows will be : (32bit, WindowsPE)
# Linux will be : (32bit, ELF)
print(platform.architecture())
# Windows will be : Windows-XP-5.1.2600-SP3 or Windows-post2008Server-6.1.7600\
# Linux will be : Linux-2.6.18-128.el5-i686-with-redhat-5.3-Final\
print(platform.platform())
# Windows will be : Windows
# Linux will be : Linux
print(platform.system())
print("--------------Python Version-------------------------")
# Windows and Linux will be : 3.1.1 or 3.1.3
print(platform.python_version())
11. 科学计算
11. 分式
# Fraction的输出为字符串表示的分式
# 1. 表达式,Fraction(分子, 分母) , f = '分子/分母'
f = Fraction(1, 3) # 1/3
log.info(f)
# 1.1 字符串写法
f = Fraction('1/3') # 1/3
log.info(f)
f = Fraction('1/3') # 1/3
log.info(f)
# 1.2 直接输入小数,Fraction方法直接把小数变成分数。
f = Fraction(1.5) # 3/2
log.info(f)
f = Fraction(Decimal('1.5')) # 3/2
log.info(f)
# 2. 分式四则运算
# 2.1 分式相加,会自动约减成最简分式 1/6 + 1/6 = 2/6 = 1/3
f = Fraction(1, 6) + Fraction(1, 6)
log.info(f)
# 1/6 + 3 = 1/6 + 18/6 = 19/6
f = Fraction(1, 6) + 3
log.info(f)
# 1/3 + 1.5 = 1/3 + 3/2 = 11/6 =
f = Fraction(1, 3) + 1.5
log.info(f)
# 除法 / true除法 除尽16位小数
log.info(11 / 6) # 1.8333333
# 除法 // floor除法 向下取整 地板除 1.833 -> 1
log.info(11 // 6)
# 除法 math.ceil() 向上取整 1.833 -> 2
log.info(math.ceil(11 / 6))
# 除法 math.ceil(float(a) / b) 向上取整 1.833 -> 2
log.info(math.ceil(11 / 6))
# 除法 math.ceil(float(a) / b) 向上取整 1.833 -> 2
log.info(math.ceil(float(11.0) / 6))
# 除法 round(result) 四舍五入 1.5 -> 2 , 1.4 -> 1
log.info(round(1.5))
log.info(round(1.4))
# 1/3 + 1.5 = 0.33333 + 1.5 = 1.8333333333333333
f = Fraction(1, 3) + Fraction(1, 3) + Fraction(1, 3) + 1.5
log.info(f)
# 2.2 分式相乘, 1/6 * 3 = 1/2
f = Fraction(1, 6) * 3
log.info(f)
# 1/6 * 1/6 = 1/36
f = Fraction(1, 6) * Fraction(1, 6)
log.info(f)
# 2.3 分式相除
f = Fraction(1, 6) / 3 # 1/18
log.info(f)
f = 3 / Fraction(2, 3) # 9/2
log.info(f)
# 倒数
f = 1 / Fraction(3, 32)
log.info(f) # 32/3
f = 1 / f
log.info(f) # 3/32
# 保留一位小数
a = 3.36
# 会四舍五入
b = format(a, '.1f')
log.info(b)
# 不进行四舍五入
b = int(a * 10) / 10
log.info(b)
# 不进行四舍五入
def split_float_number(val, pos=1):
rs = str(val).split('.')[0] + '.' + str(val).split('.')[1][:pos]
return float(rs)
log.info(split_float_number(a))
12 Lambda
map中的错误用法
lineEditMap = {
self.lineEdit_fenLi: lambda num: 0 < num and num < 15,
self.lineEdit_chaYi: lambda num: 0 < num and num < 20,
self.lineEdit_sheJi_baoHu: lambda num: 0 < num and num < 15,
self.lineEdit_sheJi_baoHu_2: lambda num: 0 < num and num < 5,
self.lineEdit_pingJia: lambda num: 0 < num and num < 5,
self.lineEdit_nengLi: lambda num: 0 < num and num < 5,
self.lineEdit_env_EMC: lambda num: 0 < num and num < 25,
self.lineEdit_env_other: lambda num: 0 < num and num < 10
}
# 诡异无法使用以下的方式
for key, val in lineEditMap.items():
key.textEdited.connect(lambda : self.sumCCF_Slot(key, val))
结果,最终只是按map最后一项进行输出
计算公式
f = lambda x, n: round(x, n - len(str(int(x))));
f(123.456789, 8)
本作品采用《CC 协议》,转载必须注明作者和本文链接