day 06
for + enumerate :遍历打印出索引
i,name=(0,"egon") for i,name in enumerate(["egon","tom","jack"]):
print(i,name)
不可变类型:值改变,但是id也变,证明是产生了新值,原值是不可变类型。
x = 10 print(id(x)) x = 11 print(id(x))
可变类型:值改变,但是id不变,证明就是在改原值,原值是可变类型
l = [111,222,333] print(id(l)) l[0] = 6666666 print(id(l))
数字类型
二、int基本使用
用途:记录年龄、个数号码等整数相关的
1、定义方式:
age = 18 # age = int(18) print(type(age))
int数据类型转换:可以把纯数字组成的字符串转成整型
res = int(" 18 ") print(res,type(res))
2、常用操作+内置的方法
数字运算+比较运算
int 存一个值,不可变
二、float基本使用
1、用途:记录薪资、身高、体重等
2、定义方式:
salary = 3.1 # salary = float(3.1)
float数据类型转换:可以把小数组成的字符串转换成浮点型
res = float(111) print(res,type(res)) res = float(" 3.3 ") print(res,type(res))
3、常用操作+内置的方法
存一个值 ,不可变
字符串类型
1、用途:记录描述性质的状态
2、定义方式:在" ",' ',""" """,''' '''内包含一串字符
注意:
1、上述引号定义出来的都是str类型,,没有区别
2、三引号可以存放多行字符串
3、引号的嵌套:外层双引号,内层只能用单引号
数据类型转换:str可以把任意类型数据转换成字符串类型
res = srt([1,2,3]) print(res,type(res))
转义符:\ ,r
file_path = r"D:\new\a.py file_path = "D:\\new\\a.py
常用操作+内置的方法
1、按索引取值(正向取+反向取):只能取
msg = "hello world" print(msg[0],type(msg[0]) print(msg[-1])
2、切片(顾头不顾尾,步长)
msg = "hello world" res = msg[1:7] res = msg[1:7:2] res = msg[:] res = msg[::-1]
3、长度len
msg = "hello world" print(len(msg))
4、成员运算in和not in
msg = "hello world" print("he" in msg) print("he" not in msg) # 推荐 print(not "he" in msg)
5、移除空白strip
msg = " hello " res = msg.strip() print(res) print(msg msg = "*******hello******" print(msg) print(msg.strip("*")) msg = "+-*he*llo**%/*" print(msg.strip("*+-/%"))
案例:
inp_name = input("username: ").strip() # inp_name = "egon " inp_pwd = input("password: ").strip() if inp_name == "egon" and inp_pwd == "123": print('ok') else: print('no')
6、切分split
msg = "111:123:333" print(msg[0:4] res = msg.split(":",1) print(res)
1、strip,lstrip,rstrip
msg = "******holle*****" print(msg.strip("*")) print(msg.rstrip("*")) print(msg.lstrip("*"))
2、lower、upper
msg = "aAbB" print(msg.lower()) print(msg.upper())
3、startswith,endswith
msg = "gwj is ok" print(msg.startswith("gwj")) print(msg.startswith("wj)) print(msg.endswith("ok"))
4、format的三种用法
msg = "my name is %s my age is %s" %("gwj",18) msg = "my name is {name} my age is {age}".format(age=18,name="gwj") msg = "my name is {1} my age is {0}{0} {0}".format(18,"gwj")
补充
msg = "my name is {name} my age is {age}".format{**{"age":18,"name":"gwj") msg = "my name is %{name}s my age is %{age}s".format{**{"age":18,"name":"gwj") name = "gwj" age = 18 print(f"my name is {name} my age is {age}")
5、split,split
msg = "123:321:132" print(msg.split(":",1)) print(msg.rsplit(":",1))
6、join
msg = "111:222:333" l = msg.split(":") l=["312","111","555",44444] print(l[0]+":"+l[1]+":"+l[2]+":"+l[3]) print(":".join(l))
7、replace
msg = 'gwj xxxx gwj yyy gwj' print(msg.replace('gwj',"GWJ",-1)) print(msg.replace('gwj',"GWJ"))
msg = "**_+_***he llo***+-**"
print(msg.strip("*_+-").replace(" ",''))
8、isdiqit
num = input(">>>: ") # num = "asfasdf" if num.isdigit(): num = int(num) print(num > 10) else: print("必须输入数字,小垃圾")
列表类型
用途:按照位置存放多个任意类型的值
定义方式:在[]内用逗号分隔开多个任意类型的值
l = [11,22,33,"xxx",[11,22,33]] print(tyoe(l))
list数据类型转换:把可以迭代的类型转成列表,可以被for循环遍历的类型都是可迭代的
常用的操作+内置的方法
1、按索引存取值(正向存取+反向取反):即可村也可取
l = [111,222,333] print(id(l)) l[0] = 666 print(l) print(id(l)) l = [111,222,333] l[0] = 666 l[3] = 777 # 列表索引不能超出范围
2、切片(顾头不顾尾,步长)
l = [11,22,33,44,55,66,77,88,99] res = l[1:7:2] res = l[:] res = l[::-1]
3、长度:len
print(len(["aaa",111,222]))
4、成员运算in和not in
print(111 in ["aaa",111,2222])
5、追加:append
l = [111,222,333] l.append(444) l.append(555) print(l)
5.1、插入:insert
l = [111,222,333] l.insert(1,666) print(l)
6、删除
l = [111,222,333] del l[0] print(l)
指定元素删除:l.remove
res = l.remove(222) print(l) print(res) #None
指定索引:l.pop
res = l.pop(1) print(l) print(res)
浅拷贝
l = [11,22,33,44,33,33,55]
new_l = l.copy
查找:index
l.index() print(l.index(33))
计长度:len
print(len(l))
计数:count
l.count() print(l.count(33))
清空:clear
l.clear() print(l)
添加:extend添加单个元素,append追加到末尾
l.extend("hello") l.append([1,2,3,])
倒序:reverse
l.reverse() print(l)
倒序排列:sort
l.sort(reverse = True) print(l)
存一个值or存多个值
有序or无序
可变or不可变(1、可变:值变,id不变。 可变==不可hash
2、不可变:值变,id变)

浙公网安备 33010602011771号