Python(一)
数据类型
1、为什么要区分数据类型?
为了解决内存分配问题和编码的问题
2、Python有哪些数据类型?
-
Number 数字类型
int 整型:通常被称为整型或整数。如,10,-20
float 浮点:由整数和小数部分组成。如,3.14,-6.28
complex 复数:由实数部分和虚数部分构成,可用a+bj 或者 complex(a,b)表示,复数的实部和虚部都是浮点型
int >>> a=input(1) 1 >>> print(type(a)) <class 'str'> float >>> a=input(3.14) 3.14 >>> print(type(a)) <class 'str'> complex >>> a=input(4+5j) (4+5j) >>> print(type(a)) <class 'str'> >>> a=input(complex(4,5)) (4+5j) >>> print(type(a)) <class 'str'>
作为数字,肯定会涉及到运算,但是input输入的“数据”类型是字符串型,不能够进行运算,就要对input输入的“数据”进行类型转化
>>> a=int(input('请输入半径r:')) 请输入半径r:4 >>> print(type(a)) <class 'int'>
常用运算
加法:print(3+4) 减法:print(5-2) 乘法:print(10*2) 除法:print(13/2) 取整:print(15//2) 取余:print(6%4)
-
String 字符串
>>> a='hello' >>> b='world' >>> print(a) hello >>> print(a,b) hello world >>> print(a+','+b) hello,world
字符串截取
字符串可以使用索引的方式截取
正向索引:从左往右,下标从0开始
反向索引:从右向左,下标从-1开始
截取第4到第9个字符 >>> a='hallo,ich bin Tom, wie heissen Sie' >>> print(a[3:9]) lo,ich 截取第19个字符及以后的所有字符 >>> a='hallo,ich bin Tom, wie heissen Sie' >>> print(a[18:]) wie heissen Sie 截取前12个字符 >>> a='hallo,ich bin Tom, wie heissen Sie' >>> print(a[:12]) hallo,ich bi 倒序输出 >>> a='hallo,ich bin Tom, wie heissen Sie' >>> print(a[::-1]) eiS nessieh eiw ,moT nib hci,ollah 截取从第4个字符开始每两个字符截取1个字符 >>> a='hallo,ich bin Tom, wie heissen Sie' >>> print(a[3::2]) l,c i o,wehisnSe 截取-4及-4以前的所有字符 >>> a='hallo,ich bin Tom, wie heissen Sie' >>> print(a[-4::]) Sie 每4个字符截取1个字符 >>> a='hallo,ich bin Tom, wie heissen Sie' >>> print(a[::-4]) enie, ,a 从第6个开始倒叙每4个字符截取1个字符 >>> a='hallo,ich bin Tom, wie heissen Sie' >>> print(a[5::-4]) ,a
字符串的函数
len(string) 返回字符串长度 .count(str, beg= 0,end=len(string)) 返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数 .capitalize() 将字符串的第一个字符转换为大写(同title()方法) .center(width, fillchar) 返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。 .find(str, beg=0 end=len(string)) 检测 str 是否包含在字符串中 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1 .replace(old, new [, max]) 把 将字符串中的 str1 替换成 str2,如果 max 指定,则替换不超过 max 次 .split(str="", num=string.count(str))num=string.count(str)) 以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num 个子字符串 .isalnum() 如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False .isalpha() 如果字符串至少有一个字符并且所有字符都是字母则返回 True, 否则返回 False .isdigit() 如果字符串只包含数字则返回 True 否则返回 False .islower() 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False .isspace() 如果字符串中只包含空格,则返回 True,否则返回 False .istitle()方法检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写。 .lower() 转换字符串中所有大写字符为小写 .max(str) 返回字符串 str 中最大的字母 .min(str) 返回字符串 str 中最小的字母 .startswith(str, beg=0,end=len(string)) 检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查
-
list 列表
列表是Python中的重要数据类型,它可以作为一个方括号内的逗号分隔值出现。列表的数据项不需要具有相同的类型。创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。列表中什么类型的数据都可以“装”
列表的创建: 变量名 = [element1,element2,element3] 变量名 = list() 强转换为列表,若输入字符串,则将字符串拆成列表中一个一个的元素
列表也是一种序列,也可以通过索引访问
list = [1,2,3,4,5] print(list[2]) 3
列表的函数
list1 = [1,2,3,4,5] 列表的元素修改: list1[3]=100 列表也可以通过‘+’连接: list2 = ['a','b'] list3 = list1 + list2 列表删除: del list2[3] 无返回值 del list 列表清空: list.clear() 数字、字符串、列表、元组、集合和字典都可以使用del来进行删除操作。
列表的函数
list.append(obj) 在列表末尾添加新的对象 list.count(obj) 统计某个元素在列表中出现的次数 list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) list.index(obj) 从列表中找出某个值第一个匹配项的索引位置,索引从0开始 list.insert(index, obj) 将对象插入列表 list.pop(index) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 list.remove(obj) 移除列表中某个值的第一个匹配项 list.reverse() 反向列表中元素,倒转 list.sort([func]) 对原列表进行排序
-
tuple 元组
元组与列表相似,不同之处不同之处在于元组的一旦定义,则不能修改;元组使用小括号(),列表使用方括号[]
元组的创建 变量名 = (element1,element2,element3) 变量名 = tuple() 强转化为元组,若输入字符串,则将字符串拆成元组中一个一个的元素
元组的索引、切片、连接操作和列表类似
元组的函数
len(tuple) 计算元组元素个数。 max(tuple) 返回元组中元素最大值。 min(tuple) 返回元组中元素最小值。 tuple(seq) 将列表转换为元组。
-
set 集合
集合是一个无序不重复的元素集,基本功能包括关系测试和消除重复的元素
创建集合 变量名 = {element1,element2,element3} 变量名 = set() 强转化为集合,若输入字符串,则将字符串拆成集合中一个一个的元素,并去重
集合常用操作
set.add() 添加元素 set.remove() 删除元素 del(set) 删除整个元素 len(set) 计算集合长度
集合运算
a = t | s t 和 s的并集 b = t & s t 和 s的交集 c = t – s 求差集(项在t中,但不在s中) d = t ^ s 对称差集(项在t或s中,但不会同时出现在二者中)
-
dictionary 字典
字典是除列表之外python中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过索引存取
创建字典 变量名 = {key1 : value1 key2 : value2}
字典操作
变量名 = {key1 : value1 key2 : value2 key3 : value3} print(变量名[key2]) 打印键值为key2的值 变量名[key3] = "new_value" 修改键值为key3的值 del 变量名[key2] 删除键值为key2的键值对 变量名.clear()清空字典 del 变量名 删除字典
字典函数
.clear() 删除字典内所有元素 .copy() 字典的复制 .fromkeys() 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值 .get(key, default=None) 返回指定键的值,如果值不在字典中返回default值 .keys() 以列表返回一个字典所有的键 .setdefault(key, default=None) 和get()类似, 但如果键不已经存在于字典中,将会添加键并将值设 为default .update(dict2) 把字典dict2的键/值对更新到dict里 .values() 以列表返回字典中的所有值