1.序列解包
賦值時可以多個變數同時賦值。
>>> x, y, z = 1, 2, 3
>>> print(x, y, z)
1 2 3
還可以交換變數的值
>>> x, y = y, x
>>> print(x, y, z)
2 1 3
實際上,這裡執行的操作稱為序列解包(或可迭代物件解包):將乙個序列(或任何可迭代 物件)解包,並將得到的值儲存到一系列變數中。下面用例子進行解釋。
>>> values = 1, 2, 3
>>> values
(1, 2, 3)
>>> x, y, z = values
>>> x
1
這在使用返回元組(或其他序列或可迭代物件)的函式或方法時很有用。假設要從字典中隨 便獲取(或刪除)乙個鍵值對,可使用方法popitem,它隨便獲取乙個鍵-值對並以元組的方式 返回。接下來,可直接將返回的元組解包到兩個變數中。
>>> scoundrel =
>>> key, value = scoundrel.popitem()
>>> key
'girlfriend'
>>> value
'marion'
這讓函式能夠返回被打包成元組的多個值,然後通過一條賦值語句輕鬆地訪問這些值。要解包的序列包含的元素個數必須與你在等號左邊列出的目標個數相同,否則python將引發異常。
可使用星號運算子(*)來收集多餘的值,這樣無需確保值和變數的個數相同,如下例所示:
>>> a, b, *rest = [1, 2, 3, 4]
>>> rest
[3, 4]
2.鏈式賦值
鏈式賦值是一種快捷方式,用於將多個變數關聯到同乙個值,但只涉及乙個值。
如:x=y=15
3.增強賦值
可以不編寫**x = x + 1,而將右邊表示式中的運算子(這裡是+)移到賦值運算子(=)的前面,從而寫成x += 1。這稱為增強賦值,適用於所有標準運算子,如*、/、%等。
if 條件 :
elif 條件 :
else :
迴圈巢狀
number = int(input('enter a number between 1 and 10: '))
if number <= 10:
if number >= 1:
print('great!')
else:
print('wrong!')
else:
print('wrong!')
1.while迴圈
x = 1
while x <= 100:
print(x)
x += 1
還可以 使用迴圈來確保使用者輸入名字,如下所示:
name = ' '
while not name:
name = input('please enter your name: ')
print('hello, {}!'.format(name))
2.for迴圈
while語句非常靈活,可用於在條件為真時反覆執行**塊。這在通常情況下很好,但有時 候你可能想根據需要進行定製。一種這樣的需求是為序列(或其他可迭代物件)中每個元素執行 **塊。
為此,可使用for語句:
words = ['this', 'is', 'an', 'ex', 'parrot']
for word in words:
print(word)
鑑於迭代(也就是遍歷)特定範圍內的數是一種常見的任務,python提供了乙個建立範圍的內建函式。
>>> range(0, 10)
range(0, 10)
>>> list(range(0, 10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
range(0,10,2)表示遍歷0-10,步長為2
3.跳出迴圈
通常,迴圈會不斷地執行**塊,直到條件為假或使用完序列中的所有元素。但在有些情況 下,你可能想中斷迴圈、開始新迭代(進入「下一輪」**塊執行流程)或直接結束迴圈。
break
from math import sqrt
for n in range(99, 0, -1):
root = sqrt(n)
if root == int(root):
print(n)
break
如果你執行這個程式,它將列印81並結束。注意到我向range傳遞了第三個引數——步長, 即序列中相鄰數的差。
continue
語句continue沒有break用得多。它結束當前迭代,並跳到下一次迭代開頭。這基本上意味 著跳過迴圈體中餘下的語句,但不結束迴圈。這在迴圈體龐大而複雜,且存在多個要跳過它的原 因時很有用。在這種情況下,可使用continue,如下所示:
for x in seq:
if condition1: continue
if condition2: continue
if condition3: continue
do_something()
do_something_else()
do_another_thing()
etc()
while 和true/break
while true:
word = input('please enter a word: ')
if not word: break
# 使用這個單詞做些事情:
print('the word was ', word)
while true導致迴圈永不結束,但你將條件放在了迴圈體內的一條if語句中,而這條if語句 將在條件滿足時呼叫break。這說明並非只能像常規while迴圈那樣在迴圈開頭結束迴圈,而是可 在迴圈體的任何地方結束迴圈。 python3 基礎教程
一 基礎語法 1.多行語句 在 或 中的多行語句,不需要使用反斜槓 例如 total item one item two item three item four item five 2.空行 函式之間或類的方法之間用空行分隔,表示一段新的 的開始。類和函式入口之間也用一行空行分隔,以突出函式入口的...
python3基礎教程筆記
問題 unicode和utf 8和assci之間的關係 列表元素拼接 join lst 列表方法 增 lst.insert 3,n 插入 刪lst.clear 清空 lst.pop 末尾刪 lst.remove a 刪除第乙個指定元素 複製 b lst.copy 數數 lst.count n 擴充套...
python基礎教程
乙個簡單的客戶機 import socket s socket.socket host socket.gethostname port 1234 s.bind host,port s.listen 5 while true c,addr s.accept print got connection f...