数据类型
python常见的数据类型:字符串,整数型,浮点数,列表,字典,布尔值,元组。
最基本的数据类型有三种:
字符串str:用括号括起来的文本(如:'python'、'123'、'fb编程')
整数int:不带小数点的数字(如:-1、1、0、520、1314)
浮点数float:带小数点的数字,运算结果存在误差(如:-0.15、3.1415、1.0)
以下的数据结构会有一节或两节的课程介绍,可轻松上手。
列表list:是一种有序的集合,可以随时增加或删除其中的元素。标识是中括号[]。
元组tuple:一种类似列表的数据类型,但是不能被修改。
字典dice:全称为dictionary,使用键值对(key-value)作为存储方式。标识是大括号{}。
布尔值bool:表示真假的数据类型,只有两个值,True和False。
数据的操作
字符串的拼接
初阶用法:使用 ' + ' 进行字符串的拼接
>>>print('fb+'编程')
>>>name = '酱酱'
>>>begin = '我叫'
>>>print(begin + name)
我叫酱酱
进阶用法:使用 ' % ' 进行字符串的拼接
>>>name = '《凤求凰》'
>>>number = 1
>>>print('司马相如以%d曲%s打动了卓文君' %(number,name))
司马相如以1曲《凤求凰》打动了卓文君
四则运算
运算符 | 表示 | 例子 |
+ | 加 | 1 + 1 输出结果为2 |
- | 减 | 1 - 1 输出结果为0 |
* | 乘 | 3 * 2 输出结果为6 |
/ | 除 | 2 / 1 输出结果为2 |
% | 取模-返回除法的余数 | 5 % 2 输出结果为1 |
** | 幂-返回x的y次幂 | 2 ** 3 输出结果为8 |
// | 取整除-返回商的整数部分 | 11 // 2 输出结果为5 |
运算优先级:
与平时运算优先级一样:从左到右顺着来,括号里的优先算,乘除排在加减前。
数据转换
type()
#查看变量的数据类型
>>>who = 'xiaojiangjiang'
>>>print(type(who))
<class 'str'>
#结果显示这是一个字符串类型的数据
str()
#将其他数据类型强制转换为字符串
>>>begin = '我吃了'
>>>number = 1
>>>fruit = '个水果'
>>>print(begin + str(number) +fruit)
我吃了1个水果
#进行字符串拼接时,不同数据类型不能直接使用'+'连接,需要现将整数转化为字符串类型
int()
#将整数形式的字符串转化为整数(文本类字符串和浮点形式的字符串不能转化为整数)
#对浮点数直接抹零取整
>>>print(int(3.8))
3
float()
#将整数和字符串转换为浮点数(文字类字符串无法转换)
>>>print(float(8))
8.0
list()
#将数据转换为列表类型
>>>a = 'python小课'
>>>print(list(a))
['p', 'y', 't', 'h', 'o', 'n', '小', '课']
len()
#用于检查某个数据的长度
>>>bros = ['刘备','关羽','张飞']
>>>print(len(bros))
3
>>>emotion = 'happy'
>>>print(len(emotion))
5
数据的常用语法
列表语法
列表的操作可分为两种类型,一种类型为对列表元素的处理,另一种类型为对列表的处理,每种类型都有四种操作:提取,修改,增加,删除(取改增删)。
偏移量:对列表元素的位置编号。
#列表的偏移量从0开始计算
#如果要提取一段列表,需要使用切片的形式[a:b]:从a到b的元素,但不包括b(a <= X < b);冒号某侧如果没有数字,则全取
>>>list = ['松','竹','梅']
>>>print(list[0])
>>>print(list[1:2])
>>>print(list[:2])
松
['竹']
['松','竹']
#松,竹,梅三者的偏移量分辨是0,1,2。
列表元素的提取
>>>list = ['松','竹','梅']
>>>print(list[0])
松
>>>list = [['松','松树'],['竹','竹子'],['梅','梅花']]
>>>print(list[0][1])
松树
#嵌套列表的提取
列表元素的修改
>>>list = ['松','竹','梅']
>>>list[0] = '松树'
>>>print(list)
['松树', '竹', '梅']
列表元素的增加
append()
#是列表的方法,在括号内添加一个元素,可以将该元素添加到列表末尾
>>>list = ['松','竹']
>>>list.append('梅')
>>>print(list)
['松','竹','梅']
易错一:用append时不能对列表赋值
>>>list = ['松','竹']
>>>list = list.append('梅')
>>>print(list)
None
#第二行语法错误
易错二:append后面是小括号,而非中括号
>>>list = ['松','竹']
>>>list.append['梅']
>>>print(list)
TypeError: 'builtin_function_or_method' object is not subscriptable
#第二行语法错误
易错三:append不能一次添加多个元素
>>>list = ['松','竹']
>>>list.append('梅','岁寒三友')
>>>print(list)
TypeError: append() takes exactly one argument (2 given)
#第二行语法错误
列表元素的删除
del
#删除命令
易错一:每次只能删除一个元素,
易错二:删除多个元素时,要重新计算偏移量
>>>list = ['松','竹','梅']
>>>del list[0]
>>>print(list)
>>>del list[0]
>>>print(list)
['竹', '梅']
['梅']
列表的切片(即列表层面的提取,一次提取若干个元素)
>>>list = ['松','竹','梅']
>>>print(list[1:2])
>>>print(list[:2])
['竹']
['松','竹']
#注意:列表的切片提取出来的是列表
列表的修改
#同样是使用赋值语句,注意是对列表的赋值
>>>list = ['松','竹','梅']
>>>list[:] = ['岁寒三友']
#list[:]表示将列表的所有元素取出来
>>>print(list)
['岁寒三友']
#注意以下的错误做法:
>>>list = ['松','竹','梅']
>>>list[:] = '岁寒三友'
>>>print(list)
['岁', '寒', '三', '友']
列表的增加
列表的增加叫作列表的合并会更合理
#使用符号'+'
#符号'+'只能用在列表之间,不能用在列表和元素之间
>>>list1 = ['松']
>>>list2 = ['竹']
>>>list3 = ['梅']
>>>list = list1 + list2 +list3
>>>print(list)
['松', '竹', '梅']
列表的删除
del
#删除命令
>>>list = ['松','竹','梅']
>>>del list[:2]
>>>print(list)
['梅']
字典语法
字典数据的提取
#列表使用偏移量来提取,字典使用键来提取
>>>group = {'师父':'唐三藏', '大师兄':'孙行者', '二师兄':'猪八戒', '沙师弟':'沙和尚'}
>>>print(group['师父'])
唐三藏
字典数据的修改
>>>group = {'师父':'唐三藏', '大师兄':'孙行者', '二师兄':'猪八戒', '沙师弟':'沙和尚'}
>>>group['师父']='唐玄奘'
>>>print(group)
{'师父': '唐玄奘', '大师兄': '孙行者', '二师兄': '猪八戒', '沙师弟': '沙和尚'}
字典数据的增加
>>>group = {'师父':'唐三藏', '大师兄':'孙行者', '二师兄':'猪八戒', '沙师弟':'沙和尚'}
>>>group['白龙马']='敖烈'
>>>print(group)
{'师父': '唐三藏', '大师兄': '孙行者', '二师兄': '猪八戒', '沙师弟': '沙和尚', '白龙马': '敖烈'}
字典数据的删除
>>>group = {'师父':'唐三藏', '大师兄':'孙行者', '二师兄':'猪八戒', '沙师弟':'沙和尚'}
>>>del group['师父']
>>>print(group)
{'大师兄': '孙行者', '二师兄': '猪八戒', '沙师弟': '沙和尚'}
dict.keys()
#提取字典中所有的键
>>>group = {'师父':'唐三藏', '大师兄':'孙行者', '二师兄':'猪八戒', '沙师弟':'沙和尚'}
>>>print(group.keys())
dict_keys(['师父', '大师兄', '二师兄', '沙师弟'])
#打印出了所有字典的键,但是都是元组的形式
>>>group = {'师父':'唐三藏', '大师兄':'孙行者', '二师兄':'猪八戒', '沙师弟':'沙和尚'}
>>>print(list(group.keys()))
['师父', '大师兄', '二师兄', '沙师弟']
#通过list()函数将元组转化为列表的形式
dict.values()
#提取字典中所有的值
>>>group = {'师父':'唐三藏', '大师兄':'孙行者', '二师兄':'猪八戒', '沙师弟':'沙和尚'}
>>>print(group.values())
dict_values(['唐三藏', '孙行者', '猪八戒', '沙和尚'])
dict.items()
#提取字典中所有的键值对
>>>group = {'师父':'唐三藏', '大师兄':'孙行者', '二师兄':'猪八戒', '沙师弟':'沙和尚'}
>>>print(group.items())
dict_items([('师父', '唐三藏'), ('大师兄', '孙行者'), ('二师兄', '猪八戒'), ('沙师弟', '沙和尚')])
产生布尔值的表达式
bool()
#检查数值的真假
>>>print(bool(1))
True
值本身作为条件
假的 | 其他都是真的 |
False | True |
0 | 5(任意整数)1.0(任意浮点数) |
''(空字符串) | 'fb编程'(字符串) |
[](空列表) | [1,2,3] |
{}(空字典) | {1:'a',2:'b'} |
None |
比较运算符产生布尔值
运算符 | 释义 | 作用 |
== | 等于 | 如果两侧的值相等,条件为真 |
!= | 不等于 | 如果两侧的值不相等,条件为真 |
> | 大于 | 如果左侧的值大于右侧,条件为真 |
< | 小于 | 如果左侧的值大于右侧,条件为真 |
>= | 大于等于 | 如果左侧的值大于或等于右侧,条件为真 |
<= | 小于等于 | 如果左侧的值小于或等于右侧,条件为真 |
注意:运算符之间不用空格,不可以写成= =、> = |
成员运算符产生布尔值
运算符 | 释义 | 作用 |
in | 属于 | 如果值在指定序列里,条件为真 |
not in | 不属于 | 如果值不在指定序列里,条件为真 |
逻辑运算符产生布尔值
运算符 | 释义 | 作用 |
and | 且 | 连接两个布尔值,如果两个都为真,该条件才为真 |
or | 或 | 连接两个布尔值,如果有一个为真,该条件即为真 |
not | 非 | 反逻辑状态,a为True,not a则为False,反之亦然 |