一、while+else
# while与else连用
当while没有被关键字break主动结束的情况下,正常结束循环代码之后会执行else的子代码。
如:
count = 1
while count < 10:
print(count)
count += 1
else:
print('while循环寿终正寝了')
二、死循环
# 即无限循环,永远不会终止,这就导致了死循环会极度的影响电脑的性能,甚至会损坏计算机硬件,并且一直占用cpu工作。如:
count = 10
while true:
count *= 10
三、while的嵌套
# while里面再套while.
如:
while True:
username = input('username>>>:')
password = input('password>>>:')
if username == 'jason' and password == '123':
print('登录成功')
while True:
cmd = input('请输入您的指令>>>:')
print(cmd)
else:
print('用户名或密码错误')
# 需要注意的是此代码里面的小while是个死循环代码
四、for循环
前提:for循环可以做到的事情while循环都可以做到,for循环使用频率要比while循环高很多,但是难度却没有while循环高。
语法结构:
'''
for 变量名 in for循环对象:有字符串、列表、字典、元组、集合
'''
# 循环字符串:依次取出一个字符,如:
for i in 'hello wored':
print(i)
# 循环字典(特殊):循环字典只能取到字典里的K,V无法直接获取
如:userinfo_dict = {'username': "jason",'age': 18,'gender': 'make'}
for i in userinfo_dict:
print(i)
# 循环元组
for i in (11,22,33,44,55):
print(i)
# 循环集合:字典与集合内部的元素都是无序的
for i in {11,22,33,44,55,66}:
print(i)
# name_list = ['jason','kevin','tony','tank','oscar']
1.使用while循环依次打印出列表中所有的元素
count = 0
while count < 5:
print(name_list[count])
count += 1
2.使用for循环依次打印出列表中所有的元素
for name in name_list:
print(name)
# 总结以上两段代码,我们可以清楚的发现 for循环要比while循环简单得多,所以一般情况下涉及到循环取值的时候,都会考虑用for循环,而且使用while循环的话,前提是你得知道列表中有多少个元素,而for循环就不用担心这个问题。
五、for循环补充
# for+break
break结束本层for循环。
如:for i in range(10):
if i == 4:
break
print(i)
* 它只会打印到3
# for+continue
continue结束本次for循环,直接开始下一次
如:for i in range(10):
if i == 4:
continue
print(i)
* 那它就会跳过4,打印0-9
# for+else
for循环正常结束之后运行else子代码,与while一致
如:for i in range(10):
if i == 4:
continue
print(i)
slse:
print('寿终正寝')
* 它会先跳过4,然后把if条件循环完再执行else的条件
# for循环自带增1
# for循环嵌套
for i in range(3):
for i in rang(5):
print('*')
六、range关键字
# range其实就是一个迭代器,用于产生一个数据集合,但是节省空间
# 用法一:括号内只写一个数字,默认从0开始,顾头不顾尾
for i in range(10):
print(i)
0,1,2,3,4,5,6,7,8,9,
# 用法二:括号内写两个数字,自定义起始位置,顾头不顾尾
for i in range(1,10):
print(i)
1,2,3,4,5,6,7,8,9,
# 用法三:括号内写三个数字,第三个数表示的是等差数列的差值,默认情况下是1
for i in range(1,10,2):
print(i)
1,3,5,7,9,
#range方法在python2和python3中有所区分
在python2中range是直接产生一个列表,元素很多的情况下比较占空间,在python3中range相当于哆啦A梦的口袋,不占空间但是可以取出很多数据
七、数据类型内置方法
# 如何查看数据类型的内置方法?
可以借助于编程软件的自动提示,采用句点符快速查看
# int整型
类型转换
# 将int方法执行之后的结果赋值给变量res
res = int('123')
# int方法只能转换纯数字的字符串
# 将十进制转换成其它机制
print(bin(100)) # 0b1100100 二进制(0b开头)
print(oct(100)) # 0o144 八进制(0o开头)
print(hex(100)) # 0x64 十六进制(0o开头)
# 将其它机制转换成十进制
print(int('0b1100100', 2))
print(int('0o144' 8))
print(int('0x64', 16))
float浮点型
1.类型转换
# res = float('11,11')
# print(res,type(res))
# 11.11
# 字符串内置方法
1.类型转换
str可以转换所有的基本数据类型
# s1 = 'hello world'
1.索引取值
print(s1[0])
# h
2.切片操作
print(s1[2:4])
# ll 顾头不顾尾
3.步长
print(s1[2:9:1]) # 第三个参数是步长,默认是1,依次获取
print(s1[2:9:2]) # 间隔一个取一个
print(s1[-1]) # 获取最后一个字符
print(s1[-1:-5:-1]) # dlro 第三个参数还可以控制索引的方向
4.统计字串符中的字符个数
# print(len(s1)) # 11
5.成员运算
# print('ll' in s1)
6.移除字符串首尾指定的字符(使用率较高)
# name1 = '$$$jas$on$$$$'
print(name1,strip('$')) # jas$on
7.按照指定的字符切割字符串
# data = 'jason|123|jdb'
print(data,split('|'))
# ['jason','123','jdb']
# split方法切割完字符串之后是一个列表
data = 'jason|123|jdb'
print(data,split('|',maxsplit=1))
# ['jason','123|jdb']