1. 程式人生 > >Python語言資料結構和語言結構(2)

Python語言資料結構和語言結構(2)

1. Python預備基礎

  • 變數的命名

    變數命名規則主要有以下幾條:

    • 變數名只能包含字母、數字和下劃線,其中下劃線和字母可以開頭,數字不行,即info_1可以,而1_info不行;
    • 變數名內不能包含空格,可以用下劃線替代,即info_1,而非info 1;
    • 不能與Python內建關鍵字和函式名重名,這條在很多語言中都是一致的;
    • 變數名中要言簡意賅,即可以用name替代n,student_name比s_n好;
    • 慎用l和o,因為這兩個字母容易與1和0混淆;
  • 變數的使用

    變數在使用時一定要保證前後一致,如

    info = "Hello World!"
    print(infor)

    由於宣告變數info,而列印輸出的是infor,因此程式會提示infor未定義,出現NameError的錯誤!

  • 程式註釋

    Python中的註釋方法有多重,單巷註釋可以使用“#”,多行或者段落註釋可以使用三對' '或者" "來進行,下面註釋是等效的:

    # 單行註釋
    
    '''
    多
    行
    注
    釋
    '''
    
    """
    多
    行
    注
    釋
    """

    2. Python資料型別

  • 字串

    • 字串的表示

      Python語言中預設輸入型別是字串,字串的使用有兩種表示方法,即

      info_1 = 'Hello World!'
      info_2 = "Hello World!"
      print(info_1)
      print(info_2)

      上述兩種方法列印結果相同。

    • 字串處理方法

      1. 字元大小寫方法 — title()upper()lower()

        info_1 = "hello world!"
        info_2 = "HELLO WORLD!"
        print(info_1.title())
        print(info_1.upper())
        print(info_2.lower())
        *****************************************************
        >> Hello  World!
           HELLO WORLD!
           hello  world!   
      2. 字符合並(拼接)方法 — +

        first_info = "Hello"
        last_info = "World"
        print(first_info + " " + last_info + "!")
        *****************************************************
        >> Hello  World!
      3. 字元空白處理方法 — rstrip()lstrip()strip()

        info = " Hello "
        info_1 = info.rstrip()
        info_2 = info.lstrip()
        info_3 = info.strip()
        
        print(info_1)
        print(len(info_1))
        print(info_2)
        print(len(info_2))
        print(info_3)
        print(len(info_3))
        *****************************************************
        >>  Hello
           6
           Hello
           6
           Hello
           5

        原字串兩側各存在一個空格,即共7個字元,通過上述執行結果可以看出info_1去除了右側空格,info_2去除了左側的空格,因此兩者共有6個字元的長度,而info_3兩側空格均去掉,因此是5個字元長度。

  • 整數

    Python中由於預設輸入為字元型別,因此有時需要對資料型別進行轉換:

    age_1 = input("please input your age :\n")
    age_2 = int(age_1)
    
    print(type(age_1),age_1)
    print(type(age_2),age_2)
    *****************************************************
    >> please input your age :
       54
       <class 'str'> 54
       <class 'int'> 54

    保證資料型別正確後,整數四則運算必不可少:

    >> 2 + 3
    *****************************************************
    5
    >> 5 - 3
    *****************************************************
    2
    >> 2 * 3
    *****************************************************
    6
    >> 6 / 4
    *****************************************************
    1.5
    >> 3 ** 2
    *****************************************************
    9
  • 浮點數

    >> 0.1 + 0.1
    *****************************************************
    0.2
    >> 2 * 0.1
    *****************************************************
    0.2
  • 不同資料整合

    整數和浮點數同存時,整數型別自動轉換為浮點型別,但浮點型別或者整數型別資料與字串型別同存時,需要進行轉換,否則將會出錯,因此首先需要吧浮點型別或者整數型別資料轉換為字串型別資料,因此將用到str()

    age = 18
    info = "Happy " + str(age) + "th Birthday!"
    print(message)

3. Python條件語句

  • if語句

    if mark > 60 and mark < 70:
      print("Congratualaton, you get a D level!")

    python語言中需要注意的是,不要忘記if最後一行的 :,另外根據條件多少,可以藉助邏輯語句來限定條件範圍,一般為and*和or兩個用的較多。

  • if-else語句

    if mark > 60:
        print("Congratualaton, you pass the exam!")
    else:
        print("Sorry,you should have to study hard!")

    需要注意,else後也需要加上冒號,而且注意各個程式碼語句間的級別關係,這個可通過縮排解決。

  • if-elif-else語句

    當條件超過兩個時,可以使用多條件判斷語句:

    if mark > 90:
        print("Congratualaton, you can get A level!")
    elif mark > 80 and mark < 90:
        print("Very good, you get B level!")
    elif mark > 70 and mark < 80:
        print("Good, you get C level!")
    elif mark > 60 and mark < 70:
        print("Well, you get D level!")
    else:
        print("Sorry, you should have to study hard!")

    當然,最後的else語句可以省略,換乘elif亦可。

4. while迴圈和for迴圈

  • while迴圈

    _number = 10
    while _number > 20:
        _number += 1
      print(_number)

    while迴圈基本結構如上所示,也需要注意的是在判斷條件後不要忘記冒號。

    在使用while迴圈時,需要注意設定合理的終止條件,避免出現無限迴圈;另外在使用while迴圈式,注意布林運算的使用,可以在一定程度上提高程式碼的效率,使得程式碼看起來更整潔,其中布林值應確保首字母大寫,即TrueFalse

    _number = 52
    cond = True
    
    while cond:
        guess_number = int(input("Pleaw input a number:\n"))
        if guess_number > _number:
            print(str(guess_number) + " is big, you can guess a small one!\n")
        elif guess_number < _number:
            print(str(guess_number) + " is small, you can guess a big one!\n",)
        else:
            print("Congratulation, you got it!")
            cond = False
  • for迴圈

    首先看一段程式碼:

    # 程式碼1
    numbers = 10
    for number in range(numbers):
      print("***",number)
    
    # 程式碼2
    numbers = 10
    for number in range(0,numbers,2):
      print("***",number)
    
    # 程式碼3    
    numbers = 10
    for number in range(5,numbers,2):
      print("***",number)

    上述三個程式碼片段,在程式碼1中,著重關注下for迴圈的結構,其中為了方便後期記憶和檢視程式碼,for後的臨時變數最好與range內的定義變數相關,另外,不要忘記末尾的冒號;程式碼2和程式碼3中主要變化的是關鍵字range的使用,其中可設定首引數,即原碼中的起始數字,可設定步長,程式碼中設定的是2 ,未設定時,程式預設步長為1。

  • breakcontinue

    break的作用是不再執行餘下程式碼,結束當前整個迴圈,如果嵌套了多層迴圈,則break終止的是當前所在迴圈;相對來說continue也是不再執行餘下程式碼,但是是繼續執行下個迴圈。

    _number = 65
    count = 0
    
    while count < 3 :
        guess_number = int(input("guess_number: "))
    
        if guess_number == _number:
            print("you got it!")
            break
        elif guess_number > _number:
            print("The number is bigger! ")
        else:
            print("You think smaller! ")
        count += 1
    
        if count == 3:
            print("Do you want to keep guessing..? ")
            continue_confirm = input("please enter yes or no:\t")
            if continue_confirm == 'yes':
                count = 0
            elif continue_confirm == 'no':
                break
            else:
                print("Error input")
    for i in range(0,20,2):
        if i < 6 :
            print("loop",i)
        else:
            continue
        print("Check")

    Python有列表和字典,這些利用迴圈處理非常方便!