Python程式結構

瀟灑坤發表於2018-06-27

2018年6月27日筆記

python流程控制

1.python流程控制語句結構

4種流程控制語句結構:
if
if — else
if — elif –else
if多條件

2.程式結構

3種程式結構:順序結構、選擇結構、迴圈結構

3.if語句示例

需求:輸入學員分數,劃分學員等級(90分以上A,80-89為B,60-79為C,60分以下E)

if __name__ == "__main__":
    x = int(input("請輸入學員分數:"))
    if x>100 or x < 0:
        print("你輸入的數超過實際範圍")
    elif x >= 90:
        print(`A`)
    elif x >= 80:
        print(`B`)
    elif x >= 60:
        print(`C`)
    else:
        print(`E`)

注意:1.python中用elif代替了else if
2.每個條件後面要使用冒號:
3.使用縮排劃分語句塊,相同縮排數的語句在一起組成一個語句塊。
4.在python中沒有switch-case語句

4.if語句練習

1.輸入一個年份,判斷是否為閏年

if __name__ == "__main__":
    x = int(input("請輸入年份:"))
    if x%400 == 0 or (x%4 == 0 and x%100 != 0):
        print("此年份是閏年")
    else:
        print("此年份不是閏年")

2.輸入一個數字判斷是否是水仙花數,水仙花數的定義:一個三位數的個位數的3次方加十位數的3次方加百位數的3次方等於這個數自身,例如153=13+53+3^3,153是水仙花數

if __name__ == "__main__":
    x = int(input("請輸入一個三位數:"))
    num1 = x//100
    num2 = x//10%10
    num3 = x%10
    if x == num1 ** 3 + num2 ** 3 + num3 ** 3:
        print("這個數是水仙花數")
    else:
        print("這個數不是水仙花數")

3.實現使用者輸入使用者名稱和密碼,當使用者名稱為 rongda且密碼為123時,顯示登陸成功,否則登陸失敗

if __name__ == "__main__":
    userName = input("請輸入使用者名稱:")
    password = input("請輸入密碼:")
    if userName == `rongda` and password == `123`:
        print("登入成功")
    else:
        print("登入失敗")

下午上課前分享

字串函式的使用

import string
if __name__ == "__main__":
    print(string.digits)
    print(string.ascii_letters)
    print(string.ascii_lowercase)
    print(string.ascii_uppercase)

執行上面一段程式碼的結果如下:

0123456789
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz

ABCDEFGHIJKLMNOPQRSTUVWXYZ

迴圈結構

1.python迴圈種類

python中有兩個迴圈,第一種for迴圈,第二種while迴圈。他們的相同點在於都能迴圈做一件重複的事情,不同點在於for迴圈在可迭代的序列被窮盡時停止,while則是在條件不成立的時候停止。

2.while迴圈語句

while語句包括兩部分,判斷語句和執行語句。
判斷條件可以是任何表示式,任何非零、或者非空的值均為true。當判斷條件為假時,迴圈結束。
(1)列印出0-9的數字

if __name__ == "__main__":
    count = 0
    while count < 10:
        print("這個數字是:",count)
        count += 1
    print("輸出成功")

(2)列印出1+2+3+…+100的和

if __name__ == "__main__":
    a = 1
    s = 0
    while a <= 100:
        s += a
        a += 1
    print(s)

上面一段程式碼的執行結果是:

5050

用一行程式碼完成求和功能

print(sum(range(1,101)))

(3)輸出1-100以內的所有奇數

if __name__ == "__main__":
    a = 1
    while a <= 100:
        if a % 2 == 1:
            print(a)
        a += 1

3.for迴圈語句

python中,for迴圈可以遍歷任何序列的專案,如一個列表或者一個字串
示例:通過for迴圈遍歷”Hello world!”

if __name__ == "__main__":
    for every_letter in "Hello_world!":
        print(every_letter,end=` `)

上面一段程式碼的執行結果是

H e l l o _ w o r l d !

for迴圈作為程式語言中最強力的特性之一,能夠幫助我們做出很多重複性的事情。比如批量命名、批量操作等。

4.for迴圈遍歷容器

1.通過for迴圈遍歷列表

if __name__ == `__main__`:
    lt = [`apple`,`banana`,`orange`]
    for i in lt:
        print(i)

上面一段程式碼的執行結果如下:

apple
banana
orange

藉助range函式遍歷並實現一段程式碼的相同功能

if __name__ == `__main__`:
    lt = [`apple`,`banana`,`orange`]
    for i in range(len(lt)):
        print(lt[i])

2.通過for迴圈遍歷元組

if __name__ == `__main__`:
    t = (`清華`,`北大青鳥`,`藍翔`,`新東方`)
    for i in t:
        print(i)

上面一段程式碼的執行結果如下:

清華
北大青鳥
藍翔
新東方

3.通過for迴圈遍歷字典

if __name__ == `__main__`:
    d = {`python`:`perfect`,`java`:`good`,`php`:`just so so`}
    for k in d:
        print(k)

上面一段程式碼的執行結果為:

python
java
php

4.通過for迴圈遍歷字典

下面一段程式碼的難點主要是items()方法的利用,它的返回值型別是list,list中的每一個元素型別是tuple。

if __name__ == `__main__`:
    d = {`python`:`perfect`,`java`:`good`,`php`:`just so so`}
    for k, v in d.items():
        print(k, v)

上面一段程式碼的執行結果如下:

python perfect
java good
php just so so

while練習

我國現有13億人口,設每年增加0.8%,編寫程式,計算多少年後達到26億?

if __name__ == `__main__`:
    a = 13
    count = 0
    while a < 26:
        count += 1
        a *= 1 + 0.008
    print(count)

作業

1.求1-100所有數的和

if __name__ == "__main__":
    a = 1
    s = 0
    while a <= 100:
        s += a
        a += 1
    print(s)

2.輸出1-100內的所有奇數

if __name__ == "__main__":
    a = 1
    while a <= 100:
        if a % 2 == 1:
            print(a)
        a += 1

3.輸出1-100內的所有偶數

if __name__ == "__main__":
    a = 1
    while a <= 100:
        if a % 2 == 0:
            print(a)
        a += 1

4.列印99乘法表(如有需要可以使用製表符` `)

if __name__ == `__main__`:
    for i in range(1,10):
        for j in range(1,i+1):
            print("{}*{}={}".format(i,j,i*j),end=`	`)
        print()

5.輸出10行10列的*

if __name__ == `__main__`:
    for i in range(10):
        for j in range(10):
            print(`*`,end=``)
        print()

6.列印出100-1000之間所有的“水仙花數”,所謂“水仙花數”是指一個三位數,其各位數字

if __name__ == `__main__`:
    for i in range(100,1000):
        num1 = i//100
        num2 = i//10%10
        num3 = i%10
        if i == num1 ** 3 + num2 ** 3 + num3 **3:
            print(i)

7.求1-2+3-4+5-…+99

if __name__ == `__main__`:
    s = 0
    for i in range(1,100):
        s += i * (-1) ** (i+1)
    print(s)

8.五位數中,對稱的數稱為迴文數,列印10000-99999的迴文數並計算個數。

if __name__ == `__main__`:
    count = 0
    for i in range(10000,100000):
        if  str(i)[:-3:-1] == str(i)[:2]:
            count += 1
            print(i,end=` `)
            if count % 20 == 0:
                print()
    print("
10000-99999之間的迴文數個數為:",count)


相關文章