ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 字符串与编码 [TOC] * [参考资料](https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386819196283586a37629844456ca7e5a7faa9b94ee8000) >[info] #### 使用ord 字符转ascii, chr将ascii转字符 ~~~ print ord('a') 97 print chr(97) a ~~~ >[info] #### 中文输出ascii和utf-8 ~~~ 输出ASCII >>> u'中' 输出utf-8编码 >>>u'中'.encode('utf-8') >>>len(u'中') #计算长度 使用decode >>> print '\xe4\xb8\xad'.decode('utf-8') 中 ~~~ >[info] #### 格式化 使用% * %运算符就是用来格式化字符串的 * 有几个%?占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?,括号可以省略 * %s 字符串 * %d 整数 * %f 浮点数 * %x 十六进制整数 ~~~ >>> 'my is %s' % 'wang' 'my is wang' >>> 'hi %s, you have $%d' % ('wang', 10) 'hi wang, you have $10' ~~~ * 其中,格式化整数和浮点数还可以指定是否补0和整数与小数的位数: ~~~ >>> '%2d-%02d' % (3, 1) ' 3-01' >>> '%.2f' % 3.1415926 '3.14' ~~~ * 对于Unicode字符串,用法完全一样,但最好确保替换的字符串也是Unicode字符串: ~~~ >>> u'Hi, %s' % u'Michael' u'Hi, Michael' ~~~ * 有些时候,字符串里面的%是一个普通字符怎么办?这个时候就需要转义,用%%来表示一个%: ~~~ >>> 'growth rate: %d %%' % 7 'growth rate: 7 %' ~~~ >[warning] #### 文件的中文处理 * python 默认为ASCII码,无法输出汉字,需要更改编码 ~~~ #coding=utf-8 或者 #coding=utf8 或 # -*- coding:UTF-8 -*- 或 # -*- coding:utf-8 -*- 大小写忽略 写成utf8或utf-8都行 ~~~ >[info] #### 多行语句 * 但是我们可以使用斜杠( \)将一行的语句分为多行显示,如下所示: ~~~ total = item_one + \ item_two + \ item_three ~~~ * 语句中包含 [], {} 或 () 括号就不需要使用多行连接符。如下实例: ~~~ days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'] ~~~ >[info] #### 同一行显示多条语句 * Python可以在同一行中使用多条语句,语句之间使用分号(;)分割,以下是一个简单的实例: ~~~ #!/usr/bin/python import sys; x = 'runoob'; sys.stdout.write(x + '\n') ~~~ >[warning] #### Python空行 * 记住:空行也是程序代码的一部分 >[info] #### Print 输出 * print 默认输出是换行的,如果要实现不换行需要在变量末尾加上逗号 , ~~~ #!/usr/bin/python # -*- coding: UTF-8 -*- x="a" y="b" # 换行输出 print x print y print '---------' # 不换行输出 print x, print y, # 不换行输出 print x,y ~~~