Python(一)——数据类型与字符编码,格式化

# -*- coding: utf-8 -*-

声明文本格式,按照UTF-8格式来读取源代码,防止源代码中的中文出现乱码


1,Python数据类型与变量
浮点数:0.00012可以写成1.2e-4
字符串:字符串是单引号'或双引号"括起来的文本,例如:'zcb'或"xyz"等,'或"只是字符表现的一种形式,并不是字符串的一部分,如果'是一种字符,那么可以使用""括起来,例如:"I'm ok!",如果字符串内部既包含'也包含",那么就使用到转义字符\来进行标识,例如:"I\'m so \"smart\"" \n表示换行,\t表示制表符,如果\也需要转义,那么\\代表\,如果字符串里面有很多地方需要转义,那就就要写很多\,为了方便,python里允许使用r''来表示''内部的字符不转义,例如:print(r'\t\t')输出:\t\t
如果字符串内部有很多换行,使用\n放在一行不方便阅读,那么就要使用到'''...'''
例如:print('''line1
line2
line3''')
输出:
line1
line2
line3

也可以在前面加上r,测试
print(r'''hello,\n
world''')
输出:
hello,\n
world

布尔值:布尔值只有True,False两种值,布尔值可以使用 and ,or,not进行运算
空值:用None标识
变量:变量在程序中就是用变量名来标识,变量名必须是大小写英文,数字,和_的组合,切不用使用数字作为开头。
常量:python中经常用全部大写的变量名来表示常量,实际还是变量

2,字符与编码
由于Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干的字节,若是要在网络上传输或者存储在磁盘上,就要把str转变为以字节为单位的bytes,Python中对bytes类型的数据用带b前缀的单引号或双引号来标识,例如:x=b'abc' ,要注意区分'abc'与b'abc',虽然显示的都一样,但是bytes类型的字符只占一个字节,用Unicode表示的str可以用encode()方法来编码为指定的bytes。
例如:b'ABC'.encode('ascii')
'中文'.encode('utf-8')
纯英文的str可以用str转换为ascii,内容是一样的,含有中文的str可以用utf-8来转换为bytes,含有中文的str无法用ascii来编码
反之,如果我们从网络上读取到了字节流,读取到的数据就是bytes,要把bytes转换为str就需要decode()方法
例:b'ABC'.decode(ascii)
b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'中文'
要计算str中有多少个字节,可以用到len()函数,例如:len(b'ABC'),len(b'中文')

3,格式化
最后一个常见的问题是如何输出格式化的字符串。我们经常会输出类似'亲爱的xxx你好!你xx月的话费是xx,余额是xx'之类的字符串,而xxx的内容都是根据变量变化的,所以,需要一种简便的格式化字符串的方式。
'hello,%s,you have $%d'%('zcb',99999)
%运算符就是用来格式化字符串的,在字符串内部,%s用来字符串替换,%d用来整数替换,有几个%占位符,后面就跟几个变量或值,顺序要对应好,如果只有一个%,括号可以省略
%d 整数
%s 字符串
%f 浮点数
%x 十六进制整数

如果不太确定用什么,那%s永远起作用,如果%是个普通字符串,那就用%%来进行转义,例如:
'your score has promting %d %%'%(10)输出:'your score has promting 10 %'

另一种格式化的方法就是format(),他会用传输的参数,依次字符串内的占位符,不过这种方式相比%s要麻烦
'hello,{0} you have ${1:.2f}'.format('zcb',10.056),输出:'hello,zcb you have $10.06'

猜你喜欢

转载自blog.csdn.net/zcb_data/article/details/80667331