1. python3中,直接打印空格不显示,不论是pycharm,cmd命令窗口,还是linux中,都有尝试,但是空格' '不能显示出来:
# 打印菱形,只能用center方法
for i in range(0,5): for y in range(0,5-i): w = ' ' print(w,end="") s = '* ' * i print(s) for i in range(0,5): for x in range(0,i): w = ' ' print(w, end="") t = '* ' * (5-i) print(t)
2. a,b=b,a+b(a,b会随循环变动)不等同a=b,b=a+b(a,b会随循环固定)举例:
2.1代码
a,b,s = 2.0, 1.0, 0.0 for i in range(5): s += a/b b= a a = a+b print(s,' ',end='') print()
执行结果:2.0 4.0 6.0 8.0 10.0
在2.1这里可以修改代码,加入一个变量(如果不加,a,b就被当作不可变量),也可以达到想要的效果:
a,b,s = 2.0, 1.0, 0.0 for i in range(5): s += a/b t = a a = a+b b = t print(s,' ',end='') print()
执行结果:2.00 3.50 5.17 6.77 8.39
2.2代码
a,b,s = 2.0, 1.0, 0.0 for i in range(5): s += a/b b,a= a,b+a # 相当于 t=(a,a+b),b=t[0],a=t[1] print('%.2f '%s,end='') print()
执行结果:2.00 3.50 5.17 6.77 8.39
3 s+=i不等同于s=s+i(只针对列表适用,不适用str,set,tuple,int);
与2相似,在某些情况下两个算式是成立的,但也有不成立的情况。
l1 = [i for i in range(3)] l2 = l1 l2+=[3] print(l1,l2)
执行结果:[0, 1, 2, 3] [0, 1, 2, 3]
在+=中,与l2相关的内容都发生变动,都被当作可变量;
l1 = [i for i in range(3)] l2 = l1 l2=l2+[3] print(l1,l2)
执行结果:[0, 1, 2] [0, 1, 2, 3]
参考链接:https://blog.csdn.net/zxmzhaoxuan/article/details/82465848