《毫無障礙學Python》鄧文淵著 學習筆記
變量與數據類型、表達式、條件語句
變量
score = 80 #Python變量不聲明就可使用,Python會根據變量值設定數據類型,該score爲int型
fruit = "香蕉" # fruit數據類型爲字符型
a = b = c =20 #多變量一起賦值
age = 18 ;num = 99 #一行賦多值
del score #刪除變量: del 變量名
一、變量與數據類型
1.變量命名規則
- 由字母、數字、_、中文(Python3.x支持,儘量不用)組成
- 首字母爲字母、_、中文
- 區分大小寫
- 不可與保留字相同
2.數據類型
- 整型int:不含小數點的數值
- 浮點型float:包含小數點
- 布爾類型bool:True、False
- 字符串類型str:用雙引號“”或‘’單引號包含起來的變量,若字符串包含引號本身,可用另一種引號包住字符串 str1 = ‘小明說:“你好!”’,變量值爲:小明說:“你好!”
- 逃逸符 \x(\開頭 x爲特定字符):\o 八進制、\x 十六進制、\n 換行…
3.print、type命令
- print輸出制定對象內容 print(對象1,對象2,sep=“分隔符”,end = “終止符”))
分隔符separator(若輸出多個對象用於設置指定符號分隔,默認空格符“ ”),中止符(輸出完畢後自動添加的字符,默認\n
print(20,30,50,sep = "*",end = " ") #輸出結果20*30*50
- print命令支持參數格式化功能,%s代表字符串、%d代表整數、%f代表浮點數
print(對象 % (參數行))
name = "張三"
a = 20
print("%s今年%d歲了!"%(name,a))#也可用字符串format方法格式化{}表示參數位置 print(字符串.format(參數行))
print("{}今年{}歲了!".fomat(name,a))
參數格式化方式可精確控制輸出位置:%5d(固定輸出5個字符寬度,少於5左邊填空格符,大於5全部輸出),%5s(同上),%8.2f(固定輸出8個字符寬度含小數點,小數輸出兩位,整數少填空格,小數少填0)
sno = 1234567
print("學號1:%10d,學號2:%5d"%(sno,sno))
score = 87.5
print("語文成績:%7.3f"%(score))
運行結果
學號1: 1234567,學號2:1234567
語文成績: 87.500
- type會取得對象數據類型 type()
name = "張三"
print(type(name),type(100.00))
運行結果
<class 'str'> <class 'float'>
4.數據類型的轉換
(1)數據類型自動轉換
- 整形 + 浮點型——>整型先轉浮點型,再相加
- 數值 + 布爾類型——>布爾類型轉換爲數字(True->1,False->0),再相加
(2)強制類型轉換
int() 強轉爲整形、float() 強轉爲浮點型 、str() 強轉爲字符串型
二、表達式
- 表達式 = 操作數 + 運算符
- 單目運算符:只有一個操作數,如:not,-(-100)…
- 雙目運算符:具有兩個操作數:and、100-23…
1.input命令
input讓用戶由"標準輸入"設備(鍵盤)輸入數據 input語法: 變量 = input([提示字符串])Enter鍵輸入結束
age = input("請輸入年齡:")
2.運算符
- 算數運算符 :+、=、*、/、%、//(取商的整數部分)、**(操作數1 的 操作數2 次方)
n1 = 46//5 #取商整
n2 = 2**6 # 2的6次方
運行結果
9 64
- 關係運算符 :== 、!=、 <、 >、 >=、 <= 結果爲True或False
-** 邏輯運算符** :not(取反), and(同真爲真), or(同假才假) 結果爲True或False - 複合賦值運算符 :+=,-=,*=,%=,/=,//=,**=
i1 = i2 = 10
i1//=4
i2**=2
三、條件語句
Python流程序控制命令兩大類:
- 條件:條件表達式運算結果爲True,執行跳躍
- 循環:條件表達式運算結果爲True,執行循環
1.條件
(1)單向條件 (if…)
if(條件表達式): 程序塊 (括號可移除)
pw = input("Please input password:")
if(pw=="1234"):#python使用冒號和縮進表示程序塊,縮進用一個Tab或四個空格
print("Welcome!")
(2)雙向條件 (if…else…)
if(條件表達式):
程序塊1
else:
程序塊2
pw1 = input("Please input password:")
if(pw1=="12345"):
print("Welcome!")
else:
print("Password Wrong!")
(3)多向條件(if…elif…else…)
score = input("Please input you score:")
if(int(score)>=90):
print("great!")
elif(int(score)>=80):
print("A")
elif(int(score)>=70):
print("B")
elif(int(score)>=60):
print("C")
else:
print("Fail!")
(4)條件嵌套
money = int(input("Please input your sum of consumption:"))
if(money >= 10000): # money大於一萬打折
if(money >=100000):
print(str(money*0.8),end="元\n") # money大於十萬打八折
elif(money >= 50000):
print(str(money*0.85),end="元\n") # money5~10萬打八五折
elif(money >= 30000):
print(str(money*0.90),end="元\n") # money3~5萬打九折
elif(money >= 10000):
print(str(money*0.95),end="元\n") # money1~3萬打九五折
else:
print(str(money),end="元\n") # money一萬以下不打折