1 Python3 語法
1.1 基礎語法
【編碼】
默認情況下,Python 3 源碼文件以 UTF-8 編碼,所有字符串都是 unicode 字符串。 當然你也可以為源碼文件指定不同的編碼。
【標識符】
1. 第一個字符必須是字母表中字母或下劃線 _ 。
2. 標識符的其他的部分由字母、數字和下劃線組成。
3. 標識符對大小寫敏感。
備註:在 Python 3 中,非 ASCII 標識符也是允許的。
【單行註釋】
Python中單行註釋以 # 開頭,實例如下:
# 第一個註釋
print ("Hello, Python!") # 第二個註釋
運行的結果:
Hello, Python!
【多行註釋】
多行註釋可以用多個 # 號,還有 ''' 和 """,實例如下:
# Python3學習
# 第三章
'''
本章學習Python的語法
'''
"""
本節課學習基礎的語法:多行註釋
"""
print ("I Like Python!...come on")
運行結果:
I Like Python!...come on
【等待用戶輸入】
執行下面的程序在按回車鍵後就會等待用戶輸入:
例子:
i=input("請輸入i的值:")
print(i)
【行與縮進】
行與縮進
python最具特色的就是使用縮進來表示代碼塊,不需要使用大括號 {} 。
縮進的空格數是可變的,但是同一個代碼塊的語句必須包含相同的縮進空格數。實例如下:
例子一:
i=input("請輸入i的值:")
i=int(i)
if i > 9:
print("True")
else:
print("False")
例子二:
【數字(Number)類型】
python中數字有四種類型:整數、布爾型、浮點數和複數。
1. int (整數), 如 1, 只有一種整數類型 int,表示為長整型,沒有 python2 中的 Long。
2. bool (布爾), 如 True。
3. float (浮點數), 如 1.23、3E-2
4. complex (複數), 如 1 + 2j、 1.1 + 2.2j
【字符串(String)】
.python中單引號和雙引號使用完全相同。
.使用三引號('''或""")可以指定一個多行字符串。
.轉義符 '\\'
.反斜槓可以用來轉義,使用r可以讓反斜槓不發生轉義。。 如 r"this is a line with \\n" 則\\n會顯示,並不是換行。
.按字面意義級聯字符串,如"this " "is " "string"會被自動轉換為this is string。
.字符串可以用 + 運算符連接在一起,用 * 運算符重複。
.Python 中的字符串有兩種索引方式,從左往右以 0 開始,從右往左以 -1 開始。
.Python中的字符串不能改變。
.Python 沒有單獨的字符類型,一個字符就是長度為 1 的字符串。
.字符串的截取的語法格式如下:變量[頭下標:尾下標]
例子:
word = '字符串'
sentence = "這是一個句子。"
paragraph = """這是一個段落,
可以由多行組成"""
【import 與 from...import】
在 python 用 import 或者 from...import 來導入相應的模塊。
將整個模塊(somemodule)導入,格式為: import somemodule
從某個模塊中導入某個函數,格式為: from somemodule import somefunction
從某個模塊中導入多個函數,格式為: from somemodule import firstfunc, secondfunc, thirdfunc
將某個模塊中的全部函數導入,格式為: from somemodule import *
【格式化輸出】
最常用的格式化輸出是字數的字符串,分別用(%d和%s)
例子:
name = input("Name=:")
age = int(input("Age=:"))
job = input("Job=:")
msn='''
----info------
Name: %s
Age: %d
Job: %s
you will be retired in %s years
'''%(name,age,job,65-age)
print(msn)
運行結果:
1.2 運算符
什麼是運算符?
舉個簡單的例子 2 +3 = 5 。 例子中,2 和 3 被稱為操作數,"+" 稱為運算符。
下面介紹幾種類型的運算符:
1.算術運算符
2.比較(關係)運算符
3.賦值運算符
4.邏輯運算符
5.運算符優先級
接下來讓我們一個個來學習Python的運算符。
1.2.1 Python算術運算符
以下假設變量a為10,變量b為21:
例子:
a = 21
b = 10
c = 0
c = a + b
print ("1 - c 的值為:", c)
c = a - b
print ("2 - c 的值為:", c)
c = a * b
print ("3 - c 的值為:", c)
c = a / b
print ("4 - c 的值為:", c)
c = a % b
print ("5 - c 的值為:", c)
# 修改變量 a 、b 、c
a = 2
b = 3
c = a**b
print ("6 - c 的值為:", c)
a = 10
b = 5
c = a//b
print ("7 - c 的值為:", c)
運行結果:
1 - c 的值為: 31
2 - c 的值為: 11
3 - c 的值為: 210
4 - c 的值為: 2.1
5 - c 的值為: 1
6 - c 的值為: 8
7 - c 的值為: 2
3.2.2 Python比較運算符
以下假設變量a為10,變量b為20:
例子:
a = 21
b = 10
c = 0
if ( a == b ):
print ("1 - a 等於 b")
else:
print ("1 - a 不等於 b")
if ( a != b ):
print ("2 - a 不等於 b")
else:
print ("2 - a 等於 b")
if ( a < b ):
print ("3 - a 小於 b")
else:
print ("3 - a 大於等於 b")
if ( a > b ):
print ("4 - a 大於 b")
else:
print ("4 - a 小於等於 b")
# 修改變量 a 和 b 的值
a = 5;
b = 20;
if ( a <= b ):
print ("5 - a 小於等於 b")
else:
print ("5 - a 大於 b")
if ( b >= a ):
print ("6 - b 大於等於 a")
else:
print ("6 - b 小於 a")
運行結果:
3.2.3 Python賦值運算符
以下假設變量a為10,變量b為20:
例子:
a = 21
b = 10
c = 0
c = a + b
print ("1 - c 的值為:", c)
c += a
print ("2 - c 的值為:", c)
c *= a
print ("3 - c 的值為:", c)
c /= a
print ("4 - c 的值為:", c)
c = 2
c %= a
print ("5 - c 的值為:", c)
c **= a
print ("6 - c 的值為:", c)
c //= a
print ("7 - c 的值為:", c)
運行結果:
3.2.4 Python邏輯運算符
Python語言支持邏輯運算符,以下假設變量 a 為 10, b為 20:
例子:
a = 10
b = 20
if ( a and b ):
print ("1 - 變量 a 和 b 都為 true")
else:
print ("1 - 變量 a 和 b 有一個不為 true")
if ( a or b ):
print ("2 - 變量 a 和 b 都為 true,或其中一個變量為 true")
else:
print ("2 - 變量 a 和 b 都不為 true")
# 修改變量 a 的值
a = 0
if ( a and b ):
print ("3 - 變量 a 和 b 都為 true")
else:
print ("3 - 變量 a 和 b 有一個不為 true")
if ( a or b ):
print ("4 - 變量 a 和 b 都為 true,或其中一個變量為 true")
else:
print ("4 - 變量 a 和 b 都不為 true")
if not( a and b ):
print ("5 - 變量 a 和 b 都為 false,或其中一個變量為 false")
else:
print ("5 - 變量 a 和 b 都為 true")
運行結果:
3.2.5 Python運算符優先級
以下表格列出了從最高到最低優先級的所有運算符:
例子:
a = 20
b = 10
c = 15
d = 5
e = 0
e = (a + b) * c / d #( 30 * 15 ) / 5
print ("(a + b) * c / d 運算結果為:", e)
e = ((a + b) * c) / d # (30 * 15 ) / 5
print ("((a + b) * c) / d 運算結果為:", e)
e = (a + b) * (c / d); # (30) * (15/5)
print ("(a + b) * (c / d) 運算結果為:", e)
e = a + (b * c) / d; # 20 + (150/5)
print ("a + (b * c) / d 運算結果為:", e)
運行結果:
1.3 條件控制語句
Python條件語句是通過一條或多條語句的執行結果(True或者False)來決定執行的代碼塊。
可以通過下圖來簡單瞭解條件語句的執行過程:
3.3.1 if 語句
Python中if語句的一般形式如下所示:
if condition_1:
statement_block_1
elif condition_2:
statement_block_2
else:
statement_block_3
如果 "condition_1" 為 True 將執行 "statement_block_1" 塊語句
如果 "condition_1" 為False,將判斷 "condition_2"
如果"condition_2" 為 True 將執行 "statement_block_2" 塊語句
如果 "condition_2" 為False,將執行"statement_block_3"塊語句
Python 中用 elif 代替了 else if,所以if語句的關鍵字為:if – elif – else。
注意:
1、每個條件後面要使用冒號 :,表示接下來是滿足條件後要執行的語句塊。
2、使用縮進來劃分語句塊,相同縮進數的語句在一起組成一個語句塊。
3、在Python中沒有switch – case語句。
例子一:
var1 = 100
if var1:
print ("1 - if 表達式條件為 true")
print (var1)
var2 = 0
if var2:
print ("2 - if 表達式條件為 true")
print (var2)
print ("Good bye!")
運行結果:
從結果可以看到由於變量 var2 為 0,所以對應的 if 內的語句沒有執行。
例子二:
age = int(input("請輸入你家狗狗的年齡: "))
print("")
if age < 0:
print("你是在逗我吧!")
elif age == 1:
print("相當於 14 歲的人。")
elif age == 2:
print("相當於 22 歲的人。")
elif age > 2:
human = 22 + (age -2)*5
print("對應人類年齡: ", human)
### 退出提示
input("點擊 enter 鍵退出")
運行結果:
例子三
例子需求:
輸入一個測驗成績評定A-F
A:90-100
B:80-89
C:70-79
D:60-69
F:<60
程序實現:
score = int(input('請輸入你的分數:'))
if 90 < score <= 100:
print('A')
elif score > 80:
print('B')
elif score > 70:
print('C')
elif score > 60:
print('D')
else:
print('F')
3.3.2 if中常用的操作運算符
以下為if中常用的操作運算符:
例子:== 操作符
print(5 == 6)
# 使用變量
x = 5
y = 8
print(x == y)
運行結果:
例子二:數字的比較運算
# 數字猜謎遊戲
number = 7
guess = -1
print("數字猜謎遊戲!")
while guess != number:
guess = int(input("請輸入你猜的數字:"))
if guess == number:
print("恭喜,你猜對了!")
elif guess < number:
print("猜的數字小了...")
elif guess > number:
print("猜的數字大了...")
運行結果:
3.3.3 if嵌套
在嵌套 if 語句中,可以把 if...elif...else 結構放在另外一個 if...elif...else 結構中。
if 表達式1:
語句
if 表達式2:
語句
elif 表達式3:
語句
else:
語句
elif 表達式4:
語句
else:
語句
例子:求3個數的最大數
x=int(input("請輸入第一個數:"))
y=int(input("請輸入第二個數:"))
z=int(input("請輸入第三個數:"))
if x>y:
if x>z:
print('x是最大值:%d'%x)
else:
print('z是最大值:%d'%z)
elif x>z:
if x>y:
print('x是最大值:%d'%x)
else:
print('y是最大值:%d'%y)
else:
if y>z:
print('y是最大值:%d'%y)
else:
print('z是最大值:%d'%z)
運行結果:
1.4 循環語句
Python中的循環語句有 for 和 while。
Python循環語句的控制結構圖如下所示:
3.4.1 while 循環
while 判斷條件:
語句
例子一:輸出1-10之間所有的偶數
num=10
count=0
while num>0 :
if num%2==0 :
print(num)
count +=1
num -=1
print("有",count,"個偶數!")
運行結果:
例子二:九九乘法表
a=1
while a<10 :
b=1
while b<=a :
print(str(b)+"x"+str(a)+"="+str(a*b),end="\\t")
b +=1
print()
a +=1
運行結果:
3.4.2 無限循環
有時需要程序一直在跑,就需要構造一個無限循環
例子:
var = 1
while var == 1 : # 表達式永遠為 true
num = int(input("輸入一個數字 :"))
print ("你輸入的數字是: ", num)
print ("Good bye!")
運行結果:
你可以使用 CTRL+C 來退出當前的無限循環。
無限循環在服務器上客戶端的實時請求非常有用。
3.4.3 while 循環使用 else 語句
在 while … else 在條件語句為 false 時執行 else 的語句塊:
count = 0
while count < 5:
print (count, " 小於 5")
count = count + 1
else:
print (count, " 大於或等於 5")
運行結果:
3.4.4 for語句
Python for循環可以遍歷任何序列的項目,如一個列表或者一個字符串。
for循環的一般格式如下:
for <variable> in <sequence>:/<sequence>/<variable>
<statements>
else:
<statements>
例子一:一個登錄程序
_user="xiao"
_password="abc123"
username=input("Username:")
password=input("Password:")
if username ==_user and password ==_password:
print("welcone %s login..."%_user)
else:
print("用戶名錯誤或者密碼錯誤")
運行結果:
3.4.5 range()函數
如果你需要遍歷數字序列,可以使用內置range()函數。它會生成數列,例如:
例子一:遍歷數字序列
for i in range(5):
print(i)
例子二:使用range指定區間的值
for i in range(5,9) :
print(i)
例子三:結合range()和len()函數以遍歷一個序列的索引
a = ['Python', 'c++', 'selenium3', 'appium', 'php']
for i in range(len(a)):
print(i, a[i])
3.4.6 break語句
break 語句可以跳出 for 和 while 的循環體。如果你從 for 或 while 循環中終止,任何對應的循環 else 塊將不執行。
例子:
for letter in 'Runoob': # 第一個實例
if letter == 'b':
break
print ('當前字母為 :', letter)
var = 10 # 第二個實例
while var > 0:
print ('當期變量值為 :', var)
var = var -1
if var == 5:
break
print ("Good bye!")
運行結果:
3.4.7 continue語句
continue語句被用來告訴Python跳過當前循環塊中的剩餘語句,然後繼續進行下一輪循環。
例子:
for letter in 'Runoob': # 第一個實例
if letter == 'o': # 字母為 o 時跳過輸出
continue
print ('當前字母 :', letter)
var = 10 # 第二個實例
while var > 0:
var = var -1
if var == 5: # 變量為 5 時跳過輸出
continue
print ('當前變量值 :', var)
print ("Good bye!")
運行結果:
3.4.8 pass 語句
pass是空語句,是為了保持程序結構的完整性。
pass 不做任何事情,一般用做佔位語句。
例子:
while True:
pass
3.4.9 標誌位
user="xiao"
password="abc123"
passed_authentication = False # 假,不成立 flag=標誌位
for i in range(1,5):
username=input("Username:")
password=input("Password:")
if username ==user and password ==password :
print("welcone %s login..."%user)
passed_authentication = True
break
else:
print("用戶名錯誤或者密碼錯誤")
if not passed_authentication :
print("輸錯超過次數")
運行結果:
3.4.10 while嵌套
While循環也是可以多重嵌套的。
例子:使用#號輸出一個長方形,用戶指定寬和高,如果長為3個#,高為4個#,則輸出一個橫著3個#,高有4個#的長方形。
程序實現:
a=0
while a<=3:
b=0
while b<=2:
print("#",end="")
b+=1
a+=1
print()
運行結果:
閱讀更多 聽海8 的文章