1、死循环的效率问题
死循环本身是无害的,但纯计算无io的死循环就会有致命的效率问题。
1、下面这种死循环,虽然不是进行计算,对cpu的消耗不大,但是如果多个这样的程序并行运行,还是会有很大的效率问题
num = 0
while num < 10:
print(num)
2、下面这种死循环是不会造成效率问题,因为这种情况cpu是有休息时间的
while True:
info = input('请输入内容:')
print(info)
3、这种情况,程序会不停的进行运算,程序是要控制计算机硬件的,控制cpu进行计算,使cpu处于高速运行的状态,让cpu不休息
while 1:
10+10
2、退出while循环的两种方式
方法一:
将while的条件设置为false,将条件设置为变量,变量在代码段中修改。
方法二:
break:代码执行到break就会立刻结束本层循环
3、while+continue
continue是终止本次循环,跳过本次循环的后边的代码
4、while+else
while True:
....
else:
....
else只会在while循环正常结束的时候才会执行,比如break打断是不会执行else代码的。
5、for循环
比如遍历列表、字典、字符串、字典
for 变量名 in 可迭代对象:
子代码段
for循环遍历字典,变量是字典的key,再通过key获取值。
range(起点值,终点值,步长):默认初始值是0,步长是1.顾头不顾尾
python2的range()会生成一个列表,如果值太大对内存消耗较大。
python3的range()是生成一个迭代器,不会占用太多空间。
break、continue、else一样适用for循环。
print()函数补充:
print(变量,end='\n'),这是print函数原来的格式,默认end='\n',也可以修改为其他的值,比如制表符'\t',用来解决不想换行的问题。
6、进制转换
十进制转二进制:bin(十进制值) 0b为二进制前缀
十进制转八进制:oct(十进制值) 0o为八进制前缀
十进制转十六进制:hex(十进制值) 0x为十六进制前缀
二进制转十进制:int('二进制值',2) 引号里面的值为带前缀的字符串
八进制转十进制:int('八进制值',8) 引号里面的值为带前缀的字符串
十六进制转十进制:int('十六进制值',2) 引号里面的值为带前缀的字符串
float():可以将带小数点的数字字符串转换为浮点型,但是int()就不能转换带小数点的字符串。