for循环+数字类型补充
一、for循环
1、循环取值
1.1列表类型:
定义l=['a','b','c'],要提取列表中的值
如果采用while循环的话:
print(len(l))
i=0
while i<len(l):
print(l[i])
i+=1
采用for循环的话会方便很多:
l=['a','b','c']
for item in l:
print(item)
这行代码让python从列表l中取出元素,并讲其存到变量item中,元素会被打印出来
1.2字典类型:
dic={'x':111,'y':222,'z':333}
for item in dic:
print(item)
因此字典类型中默认打印的是key,所以以上结果为:x y z
如果也想要取值的话:
dic={'x':111,'y':222,'z':333}
for k in dic: #k='x'
print(k,dic[k])
打印结果就是: x 111 y 222 z 333
1.3 while循环 VS for循环:
1.while循环:是条件循环,循环的次数取决于条件何时为False
for循环:是迭代循环,循环的次数取决于数据中包含的元素的个数
2.for循环专门用来取值,在循环取值方面要比while要强大。因此,遇到循环取值就选择for循环
3.for循环可以取值列表、字典、和范围range
1.4
for+break 和while+break是一样的,break直接终止本层循环
for+continue 和while+continue也一样,cont终止的是本次循环,不影响下次的循环
for+else 和while+else也一样,else的子代块只有在while循环没有被break打断的情况下才会执行
1.5 for循环嵌套
for i in range(3)
for j in range(2)
print(i,j)
每当外层循环循环一次,内层循环要循环一套
二、数据类型补充
数字类型:
(一).整型
1.类型转换:
浮点型、纯数字的字符串可以转换为整型,如下:
print(int(3.33))
print(int('33333'))
2.整型存一个值
3.不可变类型
(二)浮点型
1.类型转换:
整型、只有小数的字符串可以转换成浮点型,如下:
print(float(333))
print(float('33.333'))
(三)补充:
十进制转二进制:print(bin(13))
十进制转八进制:print(oct(13))
十进制转十六进制:print(hex(13))
字符串类型:
1.类型转换: 可以把任意类型专场字符串类型
2.虽然只能存一个值,但是这个值可以有不止一个的字符,所以有序
3.不可变类型
4.按索引取值(正向取+反向取) :只能取
字符串和列表一样,可以采用索引取值,但是列表取得是元素,字符串取得是字符,如下:
正向取和列表一样,从0开始,不同的是字符串可以反向取,从后向前,从-1开始:
msg='hello world'
print(msg[0])
print(msg[-1])
5.切片(顾头不顾尾,步长)--> 索引的扩展运用
msg='hello world'
print(msg[0:5:2])
打印出来是:hlo 0代表的是从0起始,5代表到第五个,但是切片顾头不顾尾,所以不包括第五个。2是步长,意思是说隔两个数一次
print(msg[0:])
打印出来是:hello world 如果不写终止,默认到最后,不写步长默认步长是1
6.长度len:统计的是字符的个数
msg='h你d'
print(len(msg)) 打印出来是:3
7.成员运算in和not in:判断一个子字符串是否存在与一个大字符串中
msg='hello world'
print('ho' in msg) 打印出来是False
print('ho' not in msg) 打印出来是True 推荐使用这种
8.移除空白strip:移除字符串左右两边的某些字符
msg=' hello '
print(msg.strip(' '))
print(msg.strip())
因此去掉空格括号内可以打一个空格,也可以什么都不打,系统默认去掉空格,如果想要去掉*,括号就打*
9.切分split: 把有规律的字符串切成列表从而方便取值
info='egon:18:180:150'
res=info.split(':',1)
print(res) 打印出来是['egon', '18:180:150']
print(res[1]) 打印出来是:18:180:150
上面的代码中:的意思是说,从 :那里切分。1的意思是说,从左往右,遇到:不管后面还有没有,切分一次。
res=info.split(':') 打印出来是['egon', '18', '180', '150'] 括号内不写数字的话,就是说每一个:都要切分。
补充(四星):
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)
format了解知识点: 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)
了解(**)
1、find,rfind,index,rindex,count
print('xxxkevin is sb kevin'.find('kevin')) #寻找,没有显示-1
print('xxxkevin is sb kevin'.index('kevin')) #寻找,没有的话会报错
print('xxxkevin is sb kevin'.rfind('kevin')) #从右边寻找
print('xxxkevin is sb kevin'.rindex('kevin')) #从右边寻找
2、center,ljust,rjust,zfill
print('egon'.center(50,'*')) #egon居中显示,*两端补充
print('egon'.ljust(50,'*')) #egon左边显示,*右边补充
print('egon'.rjust(50,'*')) #egon右边显示,*左边补充
print('egon'.zfill(50)) #egon右边显示,默认0左边补充
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()) #判断是否是首字母大写