Python
1.运算优先级
PEMDAS
括号(Parentheses)、指数(Exponents)、乘(Multiplication)、除(Division)、加(Addition)、减(Subtraction)
注:排序非绝对次序,PE(M&D)(A&S)
2. 格式化打印
2021年11月体重为57.8kg
第一种
year = 2021
mon = 11
weight = 57.8
print("%d年%d月体重为%.1fkg"%(year, mon, weight))
注:%.1f控制小数点位数
第二种
year = 2021
mon = 11
weight = 57.8
print("{}年{}月体重为{}kg".format(year, mon, weight))
注:可在{}种用{:.2f}控制小数点位数
第三种,以上两种较为落后
year = 2021
mon = 11
weight = 57.8
print(f"{year}年{mon}月体重为{weight}kg")
3.更多打印
'+‘可以连接字符串,’*‘可以重复打印次数,print默认换行,可在结尾加end=’ '取消换行, sep可以增加分隔符
>>>a, b = 3, 2
>>>print(f"sum = {a + b}")
sum = 5
>>>s = 'w '
>>>print(s * 10, end = ' ')
w w w w w w w w w w
>>>print(s, s, sep=',')
w,w
4.控制台输入
1.单行输入
>>>age = input("请输入年龄:")
24
>>>print(f"age = {age}")
age = 24
>>>import sys
>>>age = sys.stdin.readline().strip()
24
>>>print(f"age = {age}")
age = 24
注:sys.stdin.readline( )会将标准输入全部获取,包括末尾的’\n’,因此用len计算长度时是把换行符’\n’算进去,strip()可以去除两边的空格
2.多行输入接收字符串
>>>import sys
>>>list = []
>>>for city in sys.stdin.readlines(): #或者for city in sys.stdin:
>>> city = city.strip()
>>> list.append(city)
北京
上海
>>>print(list)
['北京', '上海']
注:append和extend的区别,extend()是将新对象的内容添加到列表,append()是将新对象整体添加到列表
3.参数解包
>>>from sys import argv
>>>script, var1, var2, var3 = argv
>>>print(script, var1, var2, var3)
python test.py 1 2 3
test.py 1 2 3
注:如果参数在用户执行命令时就要输入,就用argv,如果在脚本运行中需要用户输入,就用input
5.文件读写
1.读操作
txt = open(filename) # 默认‘r‘
print(txt.read())
2.写操作
from sys import argv
sci, txt = argv
txt = open(txt, 'w')
txt.write("hello world\n")
txt.close()
注:txt.truncate() #截断文件,参数为size,默认当前指针位置
6.字符串、字节串、字符编码
字符串:string
字节符:bytes
字符编码:Unicode
字节符>字符串:.decode() 注:原始字符串格式为b‘bytes’
字符串>字节符:.encode()
DBES:decode bydes, encode strings
>>>raw_bytes = b'\xe6\x96\x87\xe4\xbb\xb6'
>>>utf_string = '文件'
>>>raw_bytes.decode()
'文件'
>>>utf_string.encode()
b'\xe6\x96\x87\xe4\xbb\xb6'
utf-8、utf-16区别:
Unicode版本1
EF BB BF 表示UTF-8
FE FF 表示UTF-16.
1.utf-16直接用两字节表示一个字符
xxxxxxxx xxxxxxx 表示,存储空间大,最高可存2^16=65536。
2.uf-8表示一个字符是可变的,具体如下
0xxxxxxx,如果是这样的01串,可存2^7个字符
110xxxxx 10xxxxxx.如果是这样的格式,则把两个字节当一个单元,可存2^11
1110xxxx 10xxxxxx 10xxxxxx 2^16
Unicode版本2,位数变32,utf-8、utf-16视情况变
EF BB BF UTF-8
FE FF UTF-16/UCS-2, little endian
FF FE UTF-16/UCS-2, big endian
FF FE 00 00 UTF-32/UCS-4, little endian.
00 00 FE FF UTF-32/UCS-4, big-endian.
7.列表
创建一个列表,并输出对应元素索引
>>>list = ['1','a','b','2']
>>>list.index('a')
1
增加列表元素,append和insert
>>>list.append('c')
>>>print(list)
['1', 'a', 'b', '2', 'c']
>>>list.insert(3,'3')
>>>print(list)
['1', 'a', 'b', '3', '2', 'c']
删除列表某个元素,del按索引删除,remove遍历查找元素,有重复的元素时只删除查找的第一个
>>>del list[3]
['1', 'a', 'b', '2', 'c']
>>>list.remove('c')
['1', 'a', 'b', '2']
输出列表中某个元素的索引
list.index('a')
>>>1
对纯数字或字符串(按ASCII码)的列表进行排序
>>>list.sort()
['1', '2', 'a', 'b']
>>>list.sort(reverse=True)
['b', 'a', '2', '1']