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]