天天看點

【python學習】python循環語句

中國史之【鲧禹治水】:

中國古代的神話傳說故事。三皇五帝時期,黃河泛濫,鲧(gun)、禹父子二人受命于堯、舜二帝,任崇伯和夏伯,負責治水。大禹置個人利益于不顧,“三過家門而不入”,治水13年,耗盡心血與體力,終于完成了治水的大業。

-來源:全曆史APP

今天講python的循環語句,具體是while和for語句的使用。有需要的也可以直接去我的github檢視全部筆記:

https://github.com/JackKoLing/python_notes_with_ten_days

【python學習】python循環語句

俗話說:“好記性不如爛筆頭”,多寫寫多記記,總不會錯。多一些不為什麼的堅持,少一些功利主義的追求。對于環境的配置,可以參考以下兩篇:

  • win10版 @小保,公衆号:CV之道

    【深度學習環境配置】手把手實戰配置深度學習環境(win10版)

  • Linux版 @小保,公衆号:CV之道

    【深度學習環境配置】手把手實戰配置深度學習環境(Ubuntu20.04版)

1 while語句

while bool_expression:
    while_suite
else:
    else_suite
           
  • break: 跳出最内層的循環
  • continue: 跳到所處的最近層循環的開始處
  • pass: 占位語句
  • else代碼塊:循環正常終止(while語句不滿足)才會執行,如果循環終止是由break導緻的,則else不會執行
url = "www.baidu.com"
while url:
    print(url)
    url = url[1:] # 切片,最後一個傳回是空,對象是空即為False
>>>
www.baidu.com
ww.baidu.com
w.baidu.com
.baidu.com
baidu.com
aidu.com
idu.com
du.com
u.com
.com
com
om
m
           
url = "www.baidu.com"
while url:
    print(url)
    url = url[:-1] # 從後面删,注意切片顧首不顧尾
else:
    print("Game over.") # 正常結束隻會運作一次
>>>
www.baidu.com
www.baidu.co
www.baidu.c
www.baidu.
www.baidu
www.baid
www.bai
www.ba
www.b
www.
www
ww
w
Game over.
           
url = "www.baidu.com"
x = 0
while url:
    print(url)
    url = url[:-1] # 從後面删
    x += 1
    if x > 7:
        break
else:
    print("Game over.") # 不正常跳出,不執行此語句,因為url仍為True
>>>
www.baidu.com
www.baidu.co
www.baidu.c
www.baidu.
www.baidu
www.baid
www.bai
www.ba
           
x = 0
y = 30
while x<y:
    print(x, end=' ') # 在print函數中使用end=' '可以讓結果在一行中列印
    x += 1
>>>
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
           
l1 = [1, 2, 3, 4]
while l1:
    print(l1[-1]) # 逆序輸出
    l1.pop()
>>>
4
3
2
1
           
d1 = {'x':1, 'y':23, 'z':78}
keylist = list(d1.keys())
# print(keylist)
while keylist:
    print(keylist[0]) # 逐一顯示指定字典的所有鍵
    keylist.pop(0)
else:
    print(len(d1)) # 列印總鍵數
>>>
x
y
z
3
           
# 兩個清單分别為keys-values,來生成一個字典,法1
d1 = {}
l1 = [0, 1, 2, 3, 4, 5, 6]
l2 = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]
i = 0
if len(l1) == len(l2):
    while i < len(l1):
        d1[l1[i]] = l2[i]
        i += 1
print(d1)
>>>
{0: 'Sun', 1: 'Mon', 2: 'Tue', 3: 'Wed', 4: 'Thu', 5: 'Fri', 6: 'Sat'}
           

2 for語句

  • for語句是最常用的循環語句,但是,如果要追求性能效率,能用矩陣運算,就不要用循環。
# 兩個清單分别為keys-values,來生成一個字典,法2
d1 = {}
l1 = [0, 1, 2, 3, 4, 5, 6]
l2 = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]
# 使用zip來将并排元素配成元組,并行周遊
for (k, v) in zip(l1, l2):
    d1[k] = v
print(d1)
>>>
{0: 'Sun', 1: 'Mon', 2: 'Tue', 3: 'Wed', 4: 'Thu', 5: 'Fri', 6: 'Sat'}
           
l1 = [1, 2, 3, 4]
for i in l1:
    print(i)
>>>
1
2
3
4
           
sum = 0
for i in range(1, 101):
    sum += i
print(sum)
>>>
5050
           
d1 = {0: 'Sun', 1: 'Mon', 2: 'Tue'}
for k, v in d1.items():
    print(k, v)
>>>
0 Sun
1 Mon
2 Tue
           
# 輸出奇數位的元素
l1 = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]
for i in range(1, len(l1), 2):
    print(l1[i])
>>>
Mon
Wed
Fri
           

(補充回顧)

python是動态語言,使用sys.getrefcount()檢視對象引用次數

(1)增加對象的引用計數場景:

  • 對象建立時,将對象添加進容器時,類似list.append();
  • 當對象被當做參數傳遞給函數時;
  • 為對象建立另外變量名

(2)減少引用計數:

  • 引用此對象的某變量名被顯式銷毀:del x;
  • 給引用此對象的某變量名重新指派;
  • 從容器中移除對象,類似list.pop();
  • 容器本身被銷毀

【聲明】:學習筆記基于網際網路上各種學習資源的個人整理。

以上是本期内容,下期介紹python的清單解析。

我叫小保,一名計算機視覺愛好者、學習者、追随者,歡迎關注我一起學習。

【python學習】python循環語句

繼續閱讀