
摘要f的用法、print中可用的操作、for、列表、ASCII编码一、f的用法在输出里调整格式1.直接嵌入变量/表达式a 18 print(f今年{a}岁) # 今年18岁2.保留有效数字pi 3.1415926 print(f{pi:.2f}) # 3.14 print(f{pi:.3f}) # 3.142 i int(input()) print(f{pi:.{i}f}) #保留位数可用{变量}3.其他格式n 7 print(f{n:03d}) # 007补零到3位 print(f{n:5}) # 7右对齐宽5 print(f{n:5}|) # 7 |左对齐 print(f{n:^5}|) # 7 |居中4.百分比r 0.856 print(f{r:.1%}) # 85.6%5.进制1十进制转其他进制——整数进制格式化二进制八进制十六进制十进制小写boxd大写//X小写前缀#b#o#xd无前缀大写前缀//#Xn 255 print(f{n:b}) # 11111111 print(f{n:o}) # 377 print(f{n:x}) # ff print(f{n:X}) # FF print(f{n:d}) # 255 print(f{n:#b}) # 0b11111111 print(f{n:#o}) # 0o377 print(f{n:#x}) # 0xff print(f{n:#X}) # 0XFF print(f{n:#d}) # 2552补零/对齐宽度格式{值:[填充优先于0填充][对齐][前缀][0填充][宽度][类型]}0表示用0填充宽度包含#前缀的字符前面是0时自动右对齐数字默认右对齐居中对齐若不能完全居中则偏左不加对齐符号 ^)则只能补0n 64 print(f{n:08b}) # 01000000 二进制补到8位 print(f{n:04X}) # 0040 十六进制大写补到8位 print(f{n:#010X}) # 0X00000040 含前缀共10位 #不加对齐符号 ^)则只能补0 print(f{n:10b}) # 默认右对齐 总宽度10 print(f{n:10b}) # 右对齐 总宽度10 print(f{n:10b}) # 左对齐 总宽度10 print(f{n:^10b}) # 居中,不能完全居中则偏左 总宽度10 print(f{n:*^#10b}) # 居中对齐 用*补齐 总宽度10包含前缀 print(f{n:*^#010b}) # 优先执行*填充0填充被忽略语法合法但多余3其他进制转十进制b 01000000 n 2 result int(b, n) # 将b字符串格式从n进制转十进制result为整数格式 print(result) # 二进制转十进制6.千位分割print(f{1234567:,}) # 1,234,5677.ASCII代码转字符串n 65 print(f{n:c}) # A print(f{97:c}) # an:c的作用等同于chr(n)# 三种等价写法 print(f{65:c}) # A print(chr(65) ) # A print(format(65, c)) # A print(ord(A)) # 65chr(n) 将ASCII编码整数格式转化为字符ord(n) 将字符转化为ASCII编码整数格式二、print中可用的操作1.split() 分隔字符串s apple,banana,orange print(s.split(,)) # [apple, banana, orange] print(hello world foo.split()) # [hello, world, foo] 默认空格 print(a-b-c.split(-, 1)) # [a, b-c] 只切 1 次2.strip() 去掉两边空格、换行、制表符可指定字符print( hello .strip()) # hello print(\n hi \t.strip()) # hi print(xxhelloxx.strip(x)) # hello #lstrip()只去左边 rstrip()只去右边 print( hi .lstrip()) # hi print( hi .rstrip()) # hi3.replace() 替换print(I like cat.replace(cat, dog)) # I like dog4.join() 拼接列表print(-.join([a, b, c])) # a-b-c print(.join([1, 2, 3])) # 1235.upper() lower() title() 大小写print(hello.upper()) # HELLO print(HELLO.lower()) # hello print(hello world.title()) # Hello World6.startwith() endwith() 判断开头结尾print(hello.py.endswith(.py)) # True print(http://x.startswith(http)) # True7.find() count() 查找与计数print(banana.find(na)) # 2 找不到返回 -1 print(banana.count(a)) # 38.format() f-string 格式化输出name, age Tom, 18 print(Name: {}, Age: {}.format(name, age)) # Name: Tom, Age: 18 print(fName: {name}, Age: {age}) # 推荐 f-string print(f{3.14159:.2f}) # 3.14 保留两位小数9.len() 长度print(len(hello)) # 510.输出一行列表结尾无空格a [1, 2, 3, 4] print(*a) #1 2 3 411.输出无回车末尾加 ,endprint(1, end) print(2) #1212.map() 类型转换器nums map(int, [1, 2, 3]) print(nums) # map object at 0x... 返回的是迭代器 # 想看内容要转成 list print(list(nums)) # [1, 2, 3]13.abs() 绝对值a -1 print(abs(a))三、列表1.增加元素1.append(x) 在列表末尾增加一个元素2.extend(s) 在列表末尾批量添加3.insert(i, x) 在下表i处插入xs [1, 2, 3] s.append(4) # [1, 2, 3, 4] s.append([5, 6]) # [1, 2, 3, 4, [5, 6]] 整个列表当一个元素 print(s) s [1, 2, 3] s.extend([4, 5]) # [1, 2, 3, 4, 5] 打散加入 print(s) s [1, 2, 3] s.insert(0, 99) # [99, 1, 2, 3] s.insert(1, 88) # [99, 88, 1, 2, 3] print(s)2.四、for1.range(n, k, i) n为起始k为末尾i为步长for i in range(3,12,3) : print(i,,end ) #3 6 92.for循环遍历列表a [Google, Baidu, IBM, Taobao, QQ] ###法一 for i in range(len(a)): #len() 求列表长度元素个数字符串长度、元组、集合、字典元素个数 print(i, a[i]) ###法二 for i in a: print(i) ###法三 for index, i in enumerate(a): #enumerate() 是 Python 内置函数用来在遍历时同时拿到下标和元素。 print(index, i)3.for:else:语句for循环部分全部完成中间没有break则进入else一般用于检验已循环完所有names [Tom, Jerry, Spike] for name in names: if name Jerry: print(找到了 Jerry) break else: print(没找到)4.利用for读入数据#读入数据一行3个整数或确定个数的 a, b, c [int(x) for x in input().split()] #读入数据一行多个整数值不知道个数的 alist [int(x) for x in input().split()]5.列表推导式把整数n的每一位拆开存成一个数字列表#法一 n 12345 a [int(c) for c in str(n)] #法二 n 12345 b [] for c in str(n): b.append(int(c)) #法三 #输入字符串 a list(map(int, input().split())) ##list把一行多个数转化为列表四、ASCII编码x A ord(x) 求字符 x 的编码 (字符就是长度为1的字符串 x 65 chr(x) 求编码为x的字符 for i in range(10): print(chr(ord(0) i),end)