补充 :
1、while循环
count=0 while count <10: print(count) count+=1 else: print(else)
continue 终止当前循环,开始下一次循环 ;break终止所有循环
count=0 while count<10: if count==7: count+=1 continue print(count) count+=1
count=0 while count<10: count+=10 print(count) break print('end')
2、运算符 (+ - * / ** % //)
3、in ,not in 判断某个东西是否在某个东西里
4、执行顺序 从前到后
结果True or ---True
True and--- 继续走
False or--- 继续走
False and --- False
基本数据类型
5、数字 int
a='123' b=int(a) #把字符串转换为数字 print(type(a)) #显示a的数据类型 print(type(a),a) # 显示a的数据类型并输出a
num="b" v= int(num,base=16) #以16进制的方式转换成10进制 print(v) age=3 r= age.bit_length() #当前数字的二进制至少用几位数表示 print(r) # 1-01 ,2-10,3-11,4-100,5-101
6、字符串 str
字符串一旦被创建就不可修改,一旦修改或者拼接就会重新生成一个字符串
a="Fall" lower(a)#变成小写 upper(a)# 变成大写 print(a) test="asdfghjkll" v=test.find("hj",3,7) print(v) #从字符串开始位置往后找,找到第一个后获取位置,可以设置开始位置终止位置 test="i am {name} v=test.format(name='alex') print(v) #i am alex # 将一个字符串占位符替换为指定的值(格式化) test='i am {0} ,age{1}' v= test.foemat('alex',19)#按位置替换 print(v) test ="你是风儿" v="_".join(test) #将字符串中的每一个分隔符进行拼接 print(v) text="alexalex" v=text.replace("al","bb") #把al换成bb print(v) test="asdfghkjlj" v= test.split(3)#可以分成任意份 print(v) strip()#删除字符串两边空格,移除\n 移除\t 移除指定内容
test="alex" v=test[0]#索引,下标 获取字符串中的某一个字符 print(v) v=test[0:-1]#切片 获取字符串中的全部元素 v=len(test)#获取字符串中字符的个数 #for循环 test="一,二,三,四 " for i in test: print(test)
v=range(100)#帮助创建连续的数字,通过设置步长,指定不连续。 print(v) for i in v:#python3中,只有通过for循环才能一个一个创建 print(v) v=range(0,100,5)
练习
#结合for循环和range,将文件对应的索引打印出来 test=input(">>>") v=range(0,len(test)) for i in v: print(i,test[i])
#实现一个整数的加法计算器 x=input(">>>") v1,v2=split("+") v1=int(v1) v2=int(v2) print(v1+v2)
#敏感词过滤 v=input(">>>") v=v.replace("苍老师","***") print(v)
7、列表 list
列表中的元素用中括号括起来
用,分割每一个元素
列表中的元素可以是 数字、字符串、列表、布尔值
“集合”内部可以放任何东西
通过索引取值,切片结果也可以是列表
支持for循环 while循环 break continue
链表:每一个元素的储存位置不相邻,储存时,会显示下一个元素的储存位置
列表的元素可以被修改 ,被删除(通过索引、切片等方式)
列表中的元素作为一个整体
li=[11,33,44,[55,66],77] v= 55 in li print(v)# False v=11 in li print(v)#True
索引
#通过索引找出55 li=[11,222,33,[44,[55,66]]] v=li[3][1][0] print(v)
#把字符串转换成列表 s="asdfgfgghjk" new_li=list(s) print(new_li) # 列表转换成字符串 需要自己写for循环 既有数字,又有字符串,需要把数字转换成字符串;只有字符串时,直接使用字符串的join方法。 li=[11,22,33,[44[55,66]]] s="" for i in li: s=s+str(i) print(s) li=["ales","shsf"] s="" v=s.join(li) print(v)
#对象.方法 对象调用了方法 li=[11,22,33,66,44] v=li .append(44)#在原来值后追加元素,把追加部分当做整体 print(v) # None print(li) v=li.clear()#清空列表 print(v) v=li.index(11)# 根据值找索引(获取当前值索引位置,左侧先) print(v) v=li.copy()#复制列表 浅复制 print(v) v=li.count(22)#计算元素出现的次数 print(v) li.extend ("alex")#扩展原来的列表 print(li) li.insert(1,55)#在指定位置插入指定元素 print(li) li.pop()#默认删除最后一个元素,并可以获取删除的元素,可以通过索引指定删除元素 print(li,li.pop()) li.remove(22)#删除列表中的指定元素,左侧优先 print(li) v=sorted(li)#将列表从小到大排序 print(v) reversed(v) #对列表进行反转 print(v)
8、元组 tuple
#元组 一级元素不能被修改,不能被增加或者删除 #元组是有序的 #一般写元组的时候,在最后加一个逗号, tu=(11,22,33,) #可以通过索引或者切片取值 v=tu[1] print(v) v=tu[0:2] print(v) #转换 s="sdhdhgjkdl" v=tuple(s) print(v)
9、字典 dict
#字典 # info={"k1":"v1","k2":"v2"} #"k1":"v1" 键值对 value可以是任意值;字典,列表不可以作为字典的key #字典是无序的,不可以用切片的方式查找 #索引方式找到指定元素 info={"k1":11,2:True,"k3":{"kk1":"vv1","kk2":(11,22)}} v=info["k3"]["kk2"][0]#找到11所在的位置 print(v) #支持for循环,默认时只输出key for item in info.keys(): print(item) for item in info.values(): print(item) for item in info.keys(): print(item,info[item])#提取key和value dict.fromkeys(["k1",11,"999"],123)#根据序列来创建字典,并指定统一的value print(dict)
10、布尔值 bool
0,None," " ,( ) ,[ ] , {} 对应的是False
其余的都为真