数据类型:
如果字符串内部既包含',可以用转义字符\来标识
a = 'I\'m "OK" !'
转义字符\可以转义很多字符,
- \n表示换行
- \t表示制表符
- 字符\本身也要转义,所以\\表示的字符就是\
如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Python还允许用 r'' 或者 r' 表示''内部的字符串默认不转义
print(r'\\\\\\\\n') # 输出 \\\\\\\\n
print(r"\\\\\\\\n") # 输出 \\\\\\\\n
常量
通常用全部大写的变量名表示
PI = 3.14159265359
字符编码
1个中文字符经过UTF-8编码后通常会占用3个字节,而1个英文字符只占用1个字节。
为了避免乱码问题,应当始终坚持使用UTF-8编码对str和bytes进行转换
>>> len(b'ABC')
3
>>> len('中文'.encode('utf-8'))
6
格式化:用%实现
占位符 | 替换内容 |
---|---|
%d | 整数 |
%f | 浮点数 |
%s | 字符串 |
%x | 十六进制整数 |
有几个 %? 占位符,后面就跟几个变量或者值,顺序要一一对应,如果只有一个%?,括号可以省略。
>>> 'hello, %s' % 'world'
'hello, world'
>>> 'hi, %s, you have $%d' % ('Lily', 1000)
'hi, Lily, you have $1000'
>>> 'hi, %s, he have $%.2f ' % ('Lily', 1000.565645964596) # 2位小数
'hi, Lily, he have $1000.57 '
如果不确定用什么,%s 永远起作用,它会把任何数据类型转换为字符串
>>> 'Age: %s. Gender:%s' % (25, True)
'Age: 25. Gender:True'
有些时候,字符串里面的%是一个普通字符怎么办?这个时候就需要转义,用%%来表示一个%
>>> 'growth rate: %d %%' %7
'growth rate: 7 %'
四个内置数据类型
1、list:可变有序的集合,可以随时添加和删除其中的元素
注:索引是从0开始,最后一个元素的索引是len(classmates) - 1,反之倒着取数,用-1做索引
练习:100以内奇数求和
sum = 0
lists = list(x for x in range(100) if x % 2 == 1) # 列表生成式
for l in lists:
sum += l
print(sum)
2、tuple:不可变的有序列表,一旦初始化就不能修改
注:只有1个元素的tuple定义时必须加一个逗号,,来消除歧义
>>> t = (1)
>>> t
1
>>> t = (1,)
>>> t
(1,)
tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!
>>> t = ('a', 'b', ['A', 'B'])
>>> t[2][0] = 'X'
>>> t[2][1] = 'Y'
>>> t
('a', 'b', ['X', 'Y'])
如上,tuple定义的时候有3个元素,分别是'a','b'和一个list['A', 'B']
用处:一个函数返回多个返回值,其实只要返回一个tuple就可以了
3、dict:使用键-值(key-value)存储,具有极快的查找速度,无序的
注:一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的值覆盖掉,且key必须是不可变对象
>>> d = {'Michale': 95, 'Bob': 80, 'Tracy': 75}
>>> d['Michale'] # 根据key查找值
95
>>>
>>> d['adam'] = 67
>>> d['adam']
67
# 判断key存在的方法
>>> 'toms' in d # 通过in判断key是否存在
False
>>> d.get('toms') # 通过get()方法,如果key不存在,返回None,Python的交互环境不显示结果
>>> d.get('toms', -1) key不存在,指定返回value
-1
>>> d.get('Bob', 1)
80
4、set:一组key的集合,但不存储value,key不能重复,可以理解为无序和无重复元素的集合
要创建一个set,需要提供一个list作为输入集合
用处:仅仅在于查看某个元素是否在这个集合里面,大小写敏感
>>> s = set(['A', 'B', 'C'])
>>> print( 'A' in s)
True
>>> print('c' in s)
False
网友评论