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)
上述兩種方法列印結果相同。
字串處理方法
字元大小寫方法 — 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!
字符合並(拼接)方法 — +
first_info = "Hello" last_info = "World" print(first_info + " " + last_info + "!") ***************************************************** >> Hello World!
字元空白處理方法 — 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迴圈式,注意布林運算的使用,可以在一定程度上提高程式碼的效率,使得程式碼看起來更整潔,其中布林值應確保首字母大寫,即True和False。
_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。
break和continue
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有列表和字典,這些利用迴圈處理非常方便!