天天看點

Python 學習(三)

1. 斐波納契數列

# 兩個元素的總和确定了下一個數
a, b = 0, 1
while b < 10:
    print(b)
    a, b = b, a + b
    pass
           

列印結果:

Python 學習(三)

圖1.png

2. end 關鍵字

  • 關鍵字end可以用于将結果輸出到同一行,或者在輸出的末尾添加不同的字元
# 兩個元素的總和确定了下一個數
a, b = 0, 1
while b < 10:
    print(b, end=",") # 将文本輸入在同一行
    a, b = b, a + b
    pass
           
Python 學習(三)

圖2.png

3. 數字猜謎遊戲

# 數字猜謎遊戲
number = 7
guess = -1
print("數字猜謎遊戲")
while guess != number:
    guess = int(input("請輸入你猜的數字: "))

    if guess == number:
        print("恭喜你猜對了")
    elif guess < number:
        print("猜的數字小了")
    elif guess > number:
        print("猜的數字大了")
    pass
           
Python 學習(三)

圖3.png

4. 循環

  • while 循環

    1). Python中while語句的一般形式:

while 判斷條件:
    語句
           

同樣需要注意冒号和縮進。另外,在Python中沒有do..while循環

2). while 循環使用 else 語句

在 while … else 在條件語句為 false 時執行 else 的語句塊:

count = 0
while count < 5:
   print (count, " 小于 5")
   count = count + 1
else:
   print (count, " 大于或等于 5")
           
  • for 語句

    Python for循環可以周遊任何序列的項目,如一個清單或者一個字元串。

    for循環的一般格式如下:

for <variable> in <sequence>:
    <statements>
else:
    <statements>
           

3). break和continue語句及循環中的else子句

break 語句可以跳出 for 和 while 的循環體。如果你從 for 或 while 循環中終止,任何對應的循環 else 塊将不執行。

4). pass 語句

Python pass是空語句,是為了保持程式結構的完整性。

5. range()函數

如果你需要周遊數字序列,可以使用内置range()函數。它會生成數列

for i in range(5):
       print(i)
           

6. 疊代器

  • 疊代器有兩個基本的方法:iter() 和 next()

    1). iter()函數

list=[1,2,3,4]
it = iter(list)    # 建立疊代器對象
for x in it:
    print (x, end=" ")
           

2). next()函數

import sys         # 引入 sys 子產品
 
list=[1,2,3,4]
it = iter(list)    # 建立疊代器對象
 
while True:
    try:
        print (next(it))
    except StopIteration:
        sys.exit()
           

7. 生成器

在 Python 中,使用了 yield 的函數被稱為生成器(generator)。普通函數不同的是,生成器是一個傳回疊代器的函數,隻能用于疊代操作,更簡單點了解生成器就是一個疊代器。在調用生成器運作的過程中,每次遇到 yield 時函數會暫停并儲存目前所有的運作資訊,傳回 yield 的值, 并在下一次執行 next() 方法時從目前位置繼續運作。

import sys
 
def fibonacci(n): # 生成器函數 - 斐波那契
    a, b, counter = 0, 1, 0
    while True:
        if (counter > n): 
            return
        yield a
        a, b = b, a + b
        counter += 1
f = fibonacci(10) # f 是一個疊代器,由生成器傳回生成
 
while True:
    try:
        print (next(f), end=" ")
    except StopIteration:
        sys.exit()