191012 python3關於空格打印、賦值、+=符號的小坑


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,'\t',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,'\t',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\t'%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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM