Python学习Day6
上节课复习: 1.if判断 示范1: if 条件1: pass 示范2: if 条件1: pass else: pass 示范3: if 条件1: pass elif 条件2: pass 示范4: if 条件1: pass elif 条件2: pass else: pass 2.while循环 while 条件: pass 结束while循环的两种方式: 1.把条件的结果改为False 2.break while + continue while + else 上节课复习: 1.for循环 2. 数据类型及内置方法: int float str list 一、for循环 l=['a','b','c'] print(len(l)) i=0 while i<len(l): print(l[i]) i+=1 l=['a','b','c'] for item in l: #item='a' print(item) dic={'x':111,'y':222,'z':333} for k in dic: #k='x' print(k,dic[k]) while循环 VS for循环 1. while循环:称之为条件循环,循环的次数取决于条件何时为False for循环:称之为迭代器循环,循环的次数取决于数据的包含的元素的个数 2. for循环:专门用来取值,在循环取值方面比while循环要强大,以后但凡 遇到循环取值的场景,就应该用for循环 0 1 2 l=['a','b','c'] for i in range(3): print(i,l[i]) for+break names=['egon','kevin','alex','hulaoshi'] for name in names: if name == 'alex':break print(name) for+continue names=['egon','kevin','alex','hulaoshi'] for name in names: if name == 'alex':continue print(name) for+else names=['egon','kevin','alex','hulaoshi'] for name in names: if name == 'alex':break print(name) else: print('=====>') for循环嵌套 for i in range(3): for j in range(2): print(i,j) ''' 外层循环第一次:i=0 内层循环 0,0 0,1 外层循环第二次:i=1 内层循环 1,0 1,1 外层循环第三次: i=2 内层循环 2,0 2,1 ''' print(' ',end='') print('bbbbb',end='') 二、数字类型 1. 整型int ======================================基本使用====================================== 1、用途:记录年龄、等级、号码等 2、定义方式 age=10 # age=int(10) 类型转换 print(int(3.1)) res=int('1111111') print(res,type(res)) res=float('111111.1') print(res,type(res)) 了解(**) 十进制转成。。。进制 print(bin(13)) print(oct(13)) print(hex(13)) 3、常用操作+内置的方法 ======================================该类型总结==================================== 存一个值 不可变 x=10 print(id(x)) x=11 print(id(x)) 1. 浮点型float ======================================基本使用====================================== 1、用途:记录身高、体重、薪资等 2、定义方式 salary=10.1 # salary=float(10.1) 类型转换 print(float(10)) print(float(1.1)) print(float('1.1')) 3、常用操作+内置的方法 ======================================该类型总结==================================== 存一个值 不可变 x=10.3 print(id(x)) x=11.2 print(id(x)) 三、字符串类型 字符串类型str ======================================基本使用====================================== 1、用途:记录描述性值的状态,比如名字、性别等 2、定义方式 msg='hello world' #msg=str('hello world') 类型转换: 可以把任意类型专场字符串类型 res1=str(10) res2=str(10.3) res3=str([1,2,3]) res4=str({'x':1}) print(type(res1)) print(type(res2)) print(type(res3)) print(type(res4)) 3、常用操作+内置的方法 优先掌握的操作:(*****) 1、按索引取值(正向取+反向取) :只能取 msg='hello world' print(type(msg[0])) print(msg[-1]) msg[0]='H' 2、切片(顾头不顾尾,步长) msg='hello world' print(msg[0]+msg[1]+msg[2]) print(msg[0:5]) print(msg[0:5:2]) #0 2 4 print(msg[0:]) # print(msg[:]) # print(msg[-1:-5:-1]) #-1 -2 -3 -4 print(msg[::-1]) #-1 -2 -3 -4 3、长度len:统计的是字符的个数 msg='h你d' print(len(msg)) 4、成员运算in和not in:判断一个子字符串是否存在与一个大字符串中 msg='hello world' print('ho' in msg) print('ho' not in msg) 5、移除空白strip:移除字符串左右两边的某些字符 msg=' hello ' print(msg.strip(' ')) print(msg.strip()) print(msg) name=input('name>>>: ').strip() #name='egon' pwd=input('password>>>: ').strip() if name == 'egon' and pwd == '123': print('login successfull') else: print('username or password error') msg='***h**ello**********' print(msg.strip('*')) msg='*-=+h/ello*(_+__' print(msg.strip('*-=+/(_')) 6、切分split: 把有规律的字符串切成列表从而方便取值 info='egon:18:180:150' res=info.split(':',1) print(res) print(res[1]) info='egon:18:180:150' res=info.split(':') print(res) s1=res[0]+':'+res[1]+':'+res[2]+':'+res[3] s1='' for item in res: s1+=item print(s1) s1=':'.join(res) print(s1) ':'.join([1,2,3,4,5]) 7、循环 for i in 'hello': print(i) 需要掌握的操作(****) 1、strip,lstrip,rstrip msg='*****hello****' print(msg.strip('*')) print(msg.lstrip('*')) print(msg.rstrip('*')) 2、lower,upper msg='AaBbCc123123123' print(msg.lower()) print(msg.upper()) 3、startswith,endswith msg='alex is dsb' print(msg.startswith('alex')) print(msg.endswith('sb')) 4、format的三种玩法 msg='my name is %s my age is %s' %('egon',18) print(msg) msg='my name is {name} my age is {age}'.format(age=18,name='egon') print(msg) 了解 msg='my name is {} my age is {}'.format(18,'egon') msg='my name is {0}{0} my age is {1}{1}{1}'.format(18,'egon') print(msg) 5、split,rsplit cmd='get|a.txt|33333' print(cmd.split('|',1)) print(cmd.rsplit('|',1)) 6、replace msg='kevin is sb kevin kevin' print(msg.replace('kevin','sb',2)) 7、isdigit #当字符串内为纯数字时结果为True res='11111' print(res.isdigit()) int(res) age_of_bk=18 inp_age=input('your age: ').strip() if inp_age.isdigit(): inp_age=int(inp_age) #int('asdfasdfadfasdf') if inp_age > 18: print('too big') elif inp_age < 18: print('to small') else: print('you got it') else: print('必须输入纯数字') 了解(**) 1、find,rfind,index,rindex,count print('xxxkevin is sb kevin'.find('kevin')) print('xxxkevin is sb kevin'.index('kevin')) print('xxxkevin is sb kevin'.rfind('kevin')) print('xxxkevin is sb kevin'.rindex('kevin')) res='xxxkevin is sb kevin'.find('kevasdfsadfin') print(res) res='xxxkevin is sb kevin'.index('kevasdfsadfin') print('kevin is kevin is kevin is sb'.count('kevin')) 2、center,ljust,rjust,zfill print('egon'.center(50,'*')) print('egon'.ljust(50,'*')) print('egon'.rjust(50,'*')) print('egon'.zfill(50)) 3、captalize,swapcase,title print('my name is kevin'.capitalize()) print('AaBbCc'.swapcase()) print('my name is kevin'.title()) 4、is其他 name='egon123' print(name.isalnum()) #字符串由字母或数字组成 print(name.isalpha()) #字符串只由字母组成 print(name.islower()) print(name.isupper()) name=' ' print(name.isspace()) msg='I Am Egon' print(msg.istitle()) ======================================该类型总结==================================== 存一个值 有序 不可变(1、可变:值变,id不变。可变==不可hash 2、不可变:值变,id就变。不可变==可hash) x='aaa' print(id(x)) x='bbb' print(id(x))