Python(字符串和编码)
1. 1个中文字符经过UTF-8编码后通常会占用3个字节,而一个英文字符只占1个字节。
2.
#!/usr/bin/env python #为了告诉Linux/OS X 系统,这是一个Python可执行程序,Windows系统会忽略这个注释 # -*- coding:UTF-8 -*- #为了告诉Python解释器,按照UTF-8编码读取源代码,否则中文输出可能会有乱码
3.格式化输出:输出类似'亲爱的xxx你好!你xx月的话费是xx,余额是xx'
之类的字符串,而xxx的内容都是根据变量变化的,所以,需要一种简便的格式化字符串的方式。其中占位符就是替换变化的内容。
方法一:输出格式:左边用占位符 % 右边为替换内容 (输出单个直接用' ',输出多个用(),前后要对应)
举例如下:
>>> 'hello,%s' % 'world' 'hello,world' >>> 'Hi,%s,you have $%d.' % ('john',1000) 'Hi,john,you have $1000.'
格式化整数和浮点数可以指定是否补0和小数的位数:
>>> print('%2d-%02d' % (3, 1)) #' %02d '表示1前补0 3-01 >>> print('%.2f' % 3.1415926) #' %.2f '表示保留两位小数 3.14
注意:如果不太确定应该用什么,%s
永远起作用,它会把任何数据类型转换为字符串:
>>> 'Age:%s.Gender:%s' % (25,True) 'Age:25.Gender:True'
有时候,要输出%,即字符串里面的%是一个普通字符。需要转义,用%%来输出后面的一个%:
>>> 'growth rate:%d %%' % 7 'growth rate:7 %'
格式化输出方法二:字符串的format()方法,它会用传入的参数依次替换字符串内的占位符{0}
、{1}
……
输出大致格式:'左边用{0},{1}...'.format(对应1,对应2)
举例:
print('Hello,{0},成绩提升了{1:.1f}%'.format('小明',17.125)) Hello,小明,成绩提升了17.1%
练习:小明的成绩从去年的72分提升到了今年的85分,请计算小明成绩提升的百分点,并用字符串格式化显示出'xx.x%'
,只保留小数点后1位:
a1=72 a2=85 p=(a2-a1)*100/a1 #记住:小的/大的=0恒成立,即/出来的都是0,先乘以100再除,得出的就不是0.0% print('小明成绩提高的百分点:%.1f %%' % p) print('小明的成绩提高百分点{0:.1f}%'.format(p))