【Python④】python恼人的字符串,格式化输出

恼人的字符串

计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。由于计算机是美国人发明的,因此,最早只有127个字母被编码到计算机里,也就是大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母A的编码是65,小写字母a的编码是97。

但是要处理中文至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去。全世界有上百种语言,为了扩充ASCII编码,用于显示本国的语言,不同的国家和地区制定了不同的标准,由此产生了 GB2312, BIG5, JIS 等各自的编码标准。各国有各国的标准,就会不可避免地出现冲突,结果就是,在多语言混合的文本中,显示出来会有乱码。因此,Unicode应运而生。Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。

ps:此处不细说Unicode编码转化为“可变长编码”的UTF-8编码,有兴趣的读者可以自行查阅资料。

python字符串的表示

这里python3.x版本的改进就很是使用。

在2.x版本中:

>>> str="python 2.x 版本输出中文字符一点都不方便"
>>> str
‘python 2.x \xb0\xe6\xb1\xbe\xca\xe4\xb3\xf6\xd6\xd0\xce\xc4\xd7\xd6\xb7\xfb\xd2\xbb\xb5\xe3\xb6\xbc\xb2\xbb\xb7\xbd\xb1\xe3‘
>>> 

所以说,编码有时候造成的BUG会让人痛不欲生,历史遗留问题,Python 2.x版本虽然支持Unicode,但在语法上需要‘xxx‘u‘xxx‘两种字符串表示方式。

而在Python 3.x版本中,‘xxx‘u‘xxx‘被统一成Unicode编码,即写不写前缀u都是一样的,而以字节形式表示的字符串则必须加上b前缀:b‘xxx‘

而在3.x版本中:

>>> str="python 3.x 版本输出中文字符很方便"
>>> str
‘python 3.x 版本输出中文字符很方便‘
>>> 

格式化输出

我们经常会输出像 ‘XXX先生/女士,您好!您本月信用卡的消费数额为XXXX元,透支XXXX元‘ 这样的句式,因此我们需要格式化输出。

常见的占位符有:

%d 整数
%f 浮点数
%s 字符串
%x 十六进制整数 

格式化整数和浮点数还可以指定是否补0(最后一位四舍五入)。

>>> ‘%f‘ %1.23456789
‘1.234568‘
>>> ‘%.3f‘ %1.23456789
‘1.235‘

如果不太确定用哪个,可以用%s,它会把任何数据类型转换为字符串。

>>> ‘%s先生/女士,您好!您本月信用卡的消费数额为%d元,透支%d元‘ %(‘皇家理工‘,6666,2222)
‘皇家理工先生/女士,您好!您本月信用卡的消费数额为6666元,透支2222元‘
>>> ‘%s先生/女士,您好!您本月信用卡的消费数额为%s元,透支%s元‘ %(‘皇家理工‘,6666,2222)
‘皇家理工先生/女士,您好!您本月信用卡的消费数额为6666元,透支2222元‘
>>> 

当日小结:字符编码格式,在2.x主流的日子还是个痛啊。

时间: 2024-10-11 01:51:12

【Python④】python恼人的字符串,格式化输出的相关文章

python字符串格式化输出及相关操作代码举例

字符串的格式化 Python 支持格式化字符串的输出 .尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中.在   Python 中,字符串格式化使用与 C 中 sprintf 函数一样的语法. 在python中格式化输出字符串通用的形式为: 格式标记字符串 % 要输出的值组 其中,左边部分的"格式标记字符串"可以完全和c中的一致.右边的"值组"如果有两个及以上的值则需要用小括号括起来,中间用逗号隔开. 重点来看左

Python(8)--字符串格式化

字符串: 所有标准序列操作(索引.切片.乘法.成员资格检查.长度.最小值和最大值)都适用于字符串,但别忘了字符串是不可变的,因此所有的元素赋值和切片赋值都是非法的. 字符串格式化:format方法 每个值都被插入字符串中,用来替用花括号括起来的替换字段 替换字段由下面的部分组成: 字段名:索引或者标识符,指出要设置哪个值的格式,并使用结果来替换该字段:还可以指定值的特殊部分,如列表内的元素 转换标志:跟在感叹号后面的单个字符.支持的字符包括:r(表示repr).s(表示str).a(表示asci

[Javascript] 如何自定义字符串格式化输出

在其他语言中十分常见的字符串格式化输出,居然在 Javascript 中不见踪影,于是决定自己实现该方法,以下就是个人编写的最简洁实现: String.prototype.format = function(){ var args = arguments; return this.replace(/\{(\d+)\}/gm, function(ms, p1){return typeof(args[p1]) == 'undefined' ? ms : args[p1]}); } 应用示例: >>

字符串 格式化输出

name = input("name:")age = int(input("age:"))job = input("job:")salary = input("salary:") if salary.isdigit(): #长的像不像数字,比如200d."200" salary = int(salary)# else:# #print("must input digit")# exit(

字符串格式化输出、while循环、运算符.

1.字符串格式化输出 % 占位符: 声明占位的类型 %s -- 字符串 %d/%i -- 整型 %% 转义 成为普通的% %() 不能多,不能少,一一对应 f"{}" 大括号里的内容一般都放变量 字符串单引号 3.6版本及以上才能使用 2.while 循环 while 关键字 条件: (死循环) 循环体 条件终止循环 break 终止当前的循环 continue 跳出本次循环,继续下次循环 伪装成循环体中最后一行 运算符 算数运算符 / % ** // 赋值运算符 = += -= *=

python字符串格式化输出

python格式化输出 python格式化输出有两种方式:百分号和format format的功能要比百分号方式强大,其中format独有的可以自定义字符填充空白.字符串居中显示.转换二进制.整数自动分割.百分比显示 等功能是百分号方式不能相比的 1.百分号方式 1.1 格式 %[(name)][flags][width].[precision]typecode 1.2 参数说明 (name) 可选,用于选择指定的key flags 可选,可供选择的值有: + 右对齐:正数前加正好,负数前加负号

Python 学习笔记 -- 字符串格式化输出

1 #如何格式化输出字符串 2 print("{0}是一只{1}".format("我","猫")) 3 print("{a}是一只{b}".format(a="我",b="猫")) 4 print("{0:.1f}{1}".format(3.1415,"GB")) 5 6 #使用%格式化输出 7 print("%c %c %c"

python 3 用户输入和格式化输出

# -*- coding:utf-8 -*- #用户输入 && 格式化输出 #getpass 模块是内置的,可以将输入的内容隐藏 import getpass username = input("username:") password = input("password:") age = int (input("age:")) job = input("job:") #print(type(age),type

Python中print/format字符串格式化实例

Python 字符串格式化使用 "字符 %格式1 %格式2 字符"%(变量1,变量2),%格式表示接受变量的类型.简单的使用例子如下 # 例:字符串格式化Name = '17jo'  print 'www.%s.com'%Name  >> www.111cn.net Name = '17jo'Zone = 'com'print 'www.%s.%s'%(Name,Zone)>> www.111cn.net 字符串格式化时百分号后面有不同的格式符号,代表要转换的不

Python学习:12.字符串格式化

字符串格式化 讲解Python这么久,也没有讲解Python的字符串的格式化,那我们今天就来了解一下python字符串格式化的强大之处. 字符串格式化的两种方式 百分号方式和format方式,百分号方式比较老,而format方式是比较先进的,企图替代古老的方式,目前两者共存,接下来我们就针对这两种方式进行讲解. 1.百分号方式 name = 'alexsel' print('name: %s'%name) 这是使用百分号方式输出变量的简单写法,百分号方式内部还有很多可选参数. %[(name)]