range的使用
python2和python3中的range定义有点区别,python2中range() 生成的是真实的列表,而python3中生成列表的函数
两者之间区别类似于母鸡和蛋
range(10) #顾头不顾尾,不写默认从0开始,打印出0-9
range(2,8,2) #表示从2开始,每隔两个数取一次值
基本数据类型及其内置方法
int类型
1. 作用:整形是不可变类型,记录事物的状态,
2. 定义:a=12,其内部是调用了int方法;不可变类型
3. 类型转换 :纯数字的字符串可以转为整型。例a="123" print(int(a),type(int(a)))
4. 内置方法::
float类型
1. 作用:
2. 定义:a=12.3,其内部是调用了float方法;不可变类型
3. 类型转换:底层调用了float方法
4. 内置方法:
字符串类型
1. 作用:
2. 定义: a="jiang1223",其内部是调用了str方法;不可变类型
3. 类型转换: 底层调用了str方法
str()
4. 内置方法(会产生新的值):
name="xiangxiang"
name.join(可迭代对象) #使用name作为间隔插入到可迭代对象的元素之间,最终生成一个新的字符串
------------------
name.strip() #未指定参数则默认去掉的字符串前后空格,如果需要去掉特殊符号需加上字符串参数,如strip("*")
name.replace(“x”,"k") #用k替换字符串中全部的x
name.split("k") #会以字符串中k字符作为分割,将切割后的字符串组成列表
--------------------------
name.upper() #将字符串中的小写字母转为大写
name.lower() #将字符串中的大写字母转为小写
name.capitalize() #将字符串中第一个字母大写
name.title() #字符串中以空格为分隔符,每个字符串首字母大写
-------------------------
name.center(30,"*") #字符串居中打印,总长度是30,剩余部分使用*填充
name.rjust(30,"#") #字符串靠右打印,总长度是30,剩余部分使用#填充
name.ljust(30,"#") #字符串靠左打印,总长度是30,剩余部分使用#填充
-------------------------
name.index("t") #返回的是t在字符串中索引,但是如果字符串中没有t,则会报错
name.endwith(“a”) #判断字符串是否以字符a结尾,返回的结果为布尔值
name.startwith("b") #判断字符串是否以字符a开头,返回的结果为布尔值
----------------------------
name.count("a") #查询字符串中a字符的个数,返回的是整形
----------------------------
name.isalnum() #判断字符串中是否只有字母和数字组成,返回值为布尔值
name.isalpha() #判断字符串中是否只由字母组成,返回值为布尔值
name.isdigit() #判断字符串中是否由数字组成,返回值为布尔值
其他操作:
len(name)
支持for循环取值
字符串的取值
name[2] #取出字符串中index=2的字符
name[2:4] #取出字符串中索引从2-4的字符,生成另外一个字符串
name[::-1] #将字符串顺序颠倒,生成一个新的字符串
列表类型
1. 作用:
2. 定义:L=["姓名",“age”,24] ,列表是可变类型
3. 类型转换:底层调用的是list方法
4. 内置方法:
name=["xing","jiang","shi","nian"]
name.append(“1”) #添加1到列表的末尾
name.index("shi") #打印元素对应的索引,返回的是整形
name.count("shi") #打印列表对应含有对应元素的个数,返回的是整形
name.pop(0) #默认会删除列表的最后一个元素,也可指定元素的索引删除指定的元素
name.remove("jiang") #必须定制要删除的元素,否则报错
name.clear() #清空列表内容
name.copy() #copy一个列表指向一个新值
name.sort() #会按照字符的大小从大排序,这个内置方法只允许列表内有整型或者字母其中一种,否则比较的时候会报错
name.insert(1,"zengjia") #在索引为1前插入元素“zengjia”
name.extend(可迭代对象) #j将可迭代对象for循环取值,然后将值追加到列表的后面
name.reverse() #将列表顺序反转
其他操作:
len(name)
支持for循环取值
列表的取值:
name[0] #取出索引为0的元素
name[0:2] #取出列表种的值,生成新的列表,顾头不顾尾
name[0:3:2] #每隔2个元素取一次值,然后组成一个新的列表,顾头不顾尾
列表的特点
增删改查; 可存、可取、可改
元组
1, 作用:
2. 定义:a=(1,"xingming",27),如果是一个值的话需要如下定义:a=(1,);元组内的索引对应的元素是不可变得
3. 类型转换:底层调用了tuple方法
tuple(可迭代对象)
4. 内置方法:
name=("xiao",1,"ming")
name.index("xiao") #返回元素的索引值
name.count("xiao") #返回元组中包含元素的个数
其他操作:
len(name)
支持for循环取值
元组的特点:
只允许取,不能存或改
字典类型
1. 作用:
2. 定义: attri={"name":"jinjin","age":24,"class":"one"},可变类型
3. 类型转换:底层调用的是dict方法;dict的本质是调用了for循环
dict([("class","one"),("class1","two")])
dict(a=1,b=2,c=3)
4. 内置方法:
attri={"name":"jinjin","age":24,"class":"one"}
attri.pop("name") # 必须指定需要删除元素的key,
attri.popitem() #不需要传入参数,默认删除字典中最后一个key:value
attri.clear() #清空字典中的内容
attri.copy() #copy字典内容,并赋值给新的值
attri.keys() #生成以key为元素的dict_keys类型的列表
attri.values() #生成以value为元素的dict_value类型的列表
attri.items() #将字典中没对key:value一对组合生成一个列表
attri.get("name") #获取key对应的value
{}.fromkeys(attri,None) #使用attri的key快速初始化一个集合,vlaue默认都是None
其他类型:
len(attri) #集合中key的个数
字典for循环取值得到的是key
字典的特点:
增删改查,可存,可取,可改
字典的key必须唯一,且为不可变类型,value是任意类型
集合类型
1. 作用:逻辑运算、去重,集合一般当作整体去看待
2. 定义:a={1,2,4,"xiaoming"} 注意:{} 这个表示空字典,空集合表示方法为set();集合内的元素必须为不可变类型
3. 类型转换:底层调用了set方法
set([1,2,3,4])
4. 内置方法:
name1={"xiao","xing","qian"}
name2={"xiao","li","zhang"}
name1.add() #添加相应的元素
name1.pop() #随机删除集合中的一个元素,返回值为删除的元素
name1.remove("xing") #删除指定的元素,如果元素不存在则报错
name1.discard("xing") #删除指定元素,元素不存在不报错,返回None
name1.copy() #重新复制该集合
name1.clear() #清空集合,返回值为None
name1.update("change") #更新集合,参数为可迭代对象,返回值为None
-------------------
name1.difference(name2) #求差集 类似于 name1-name2
name1.difference_update() #用差集来覆盖原集合内容
name1.intersection(name2) #求交集 类似于name1 & name2
name1.intersection_update(name2) #用交集来覆盖原集合内容
name1.isdisjoint(name2) #两个集合有交集则返回False,没有交集则返回True
name1.issubset() #顾名思义,子集
name1.issuperset() #父集
name1.symmetric_difference(name2) #l两个集合的差并集 类似于 name1 ^ name2
name1.symmetric_difference_update(name2) #两个集合的差并集覆盖到name1集合
name1.union(name2) #求并集
其他类型:
len(name1) #集合内元素的个数
集合支持for循环取值
集合的特点:
1. 集合内元素没有顺序
2. 集合是一个整体,没有索引的概念
3. 集合去重后,元素的顺序无法保证