本文最后更新于 2022-05-26 11:25:30
print
print()方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| print("hello word")
print(123)
print(123 + 123) print("fff" + "vvv")
print("aa", "bbb", "cc", sep="_", file=sys.stdout, end="vvv\n", flush=False)
print("1", "2", "3")
print('1111', end='') print('222')
|
格式化输出
%格式化
1 2 3 4 5 6 7 8
| print('hello %s' % 'king') print('h%s %s' % ('hello', 'world')) str1 = "the length of (%s) is %d" % ('king', len('king')) print(str1)
|
| 符 号 |
描述 |
| %c |
格式化字符及其ASCII码 |
| %s |
格式化字符串 |
| %d |
格式化整数 |
| %u |
格式化无符号整型 |
| %o |
格式化无符号八进制数 |
| %x |
格式化无符号十六进制数 |
| %X |
格式化无符号十六进制数(大写) |
| %f |
格式化浮点数字,可指定小数点后的精度 |
| %e |
用科学计数法格式化浮点数 |
| %E |
作用同%e,用科学计数法格式化浮点数 |
| %g |
%f和%e的简写 |
| %G |
%f 和 %E 的简写 |
| %p |
用十六进制数格式化变量的地址 |
占位符
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| print('{} {}'.format('WW', 'QQ'))
print('{1} {0}'.format('AA', 'SS'))
print('{1} {0} {1}'.format('AA', 'SS'))
print('{a} {b}'.format(a='bb', b='pp'))
salary = 9999.99 print(f'My salary is {salary:10.3f}')
|
格式转换
1 2 3
| print('{0:b}'.format(10))
|
- ‘b’ - 二进制。将数字以2为基数进行输出。
- ‘c’ - 字符。在打印之前将整数转换成对应的Unicode字符串。
- ‘d’ - 十进制整数。将数字以10为基数进行输出。
- ‘o’ - 八进制。将数字以8为基数进行输出。
- ‘x’ - 十六进制。将数字以16为基数进行输出,9以上的位数用小写字母。
- ‘e’ - 幂符号。用科学计数法打印数字。用’e’表示幂。
- ‘g’ - 一般格式。将数值以fixed-point格式输出。当数值特别大的时候,用幂形式打印。
- ‘n’ - 数字。当值为整数时和’d’相同,值为浮点数时和’g’相同。不同的是它会根据区域设置插入数字分隔符。
- ‘%’ - 百分数。将数值乘以100然后以fixed-point(‘f’)格式打印,值后面会有一个百分号。
格式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| print('{} is {:.2f}'.format(1.123, 1.123)) print('{:<30}'.format('left aligned')) print('{:>30}'.format('right aligned')) print('{:^30}'.format('centered')) print('{:*^30}'.format('centered')) print('{:0=30}'.format(11)) print('{:+f}; {:+f}'.format(3.14, -3.14)) print('Correct answers: {:.2%}'.format(7 / 8))
d = datetime.datetime(2010, 7, 4, 12, 15, 58) print('{:%Y-%m-%d %H:%M:%S}'.format(d))
|
字符串前缀
1 2 3 4 5 6 7
| print(r'input\n')
print(f'{name} done in {time.time() - t0:.2f} s')
print(u'我是含有中文字符组成的字符串。')
|
String
驻留机制
- 字符串的长度为0或1时
- 符合标识符的字符串
- 字符串在编译时进行驻留,而非运行时
- [-5,256]之间的整数
sys中的intern()强制2个字符串指向同一个对象
Pycharm对字符串进行了优化处理
在字符串拼接时建议使用join,而不是+ . join时先计算出所有字符中的长度,再拷贝,只new一次,效率比+高
优点:在使用相同值得字符串时。可以直接从常量池中拿,避免频繁得创建和销毁,提高效率




字符串常用方法
查询指定字字符串的下标
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| var1= "hello,world"
print(var1.index(","))
print(var1.rindex("l"))
print(var1.find(",")) print(var1.rfind("l"))
|
字符串的大小写转换
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| var2 = "tOm cat"
print(var2.upper())
print(var2.lower())
print(var2.swapcase())
print(var2.capitalize())
print(var2.title())
|
字符串对齐
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| var3 = "king"
print(var3.center(20, "*"))
print(var3.ljust(20, "*"))
print(var3.rjust(20, "*")) var4="-1001"
print(var4.zfill(10))
|
字符串切割
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| var5="king|tom|jack"
print(var5.split(sep="|"))
print(var5.split(sep="|", maxsplit=1))
print(var5.rsplit(sep="|"))
print(var5.rsplit(sep="|", maxsplit=1))
|
判断字符串



字符串替换连接
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| var6 = "hello,python"
print(var6.replace("python", "java")) var7 = "hello,python,python,python"
print(var7.replace("python", "java", 2))
list = ["king", "tom", "jack"] print("|".join(list)) print("".join(list))
|
字符串编解码
1 2 3 4 5 6 7 8 9 10 11 12 13
| var8 = "哈擦手机擦拭" encode1 = var8.encode(encoding="GBK") encode2 = var8.encode(encoding="UTF-8")
print(encode1) print(encode2)
print(encode1.decode(encoding="GBK")) print(encode2.decode(encoding="UTF-8"))
|