python中的if語句(補充)
3.if-elif-if語句
if 條件語句1:
代碼塊1
elif 條件語句2:
代碼塊2
elif 條件語句3:
代碼塊3
elif ......
else:
代碼塊n
其他語句
執(zhí)行過程:依次檢查條件語句直到出現(xiàn)為true的條件語句執(zhí)行其后面的代碼塊或者檢查到else直接執(zhí)行else后面的代碼塊if-elif-else執(zhí)行完畢后,執(zhí)行其后的其他語句
# 給一個學生的成績憔涉,判斷成績是優(yōu)秀(90)良好(70-89)及格(60-69)不及格(60以下)
score = 60
if 0 <= score < 60:
print("不及格")
elif 60 <= score < 70:
print('及格')
elif 70 <= score < 90:
print('良好')
elif 90 <= score <= 100:
print('優(yōu)秀')
else:
print('成績輸入錯誤')
4.if語句可以嵌套使用
if 條件語句1:
if 條件語句2:
語句塊1
......
else:
語句塊2
else:
語句塊3
# 練習:給個數(shù)字妨托,如果是偶數(shù)打印‘xxx是偶數(shù)’并且
# 能被4整除打印‘xxx是4的倍數(shù)’斟湃,否則打印‘xxx是奇數(shù)’
num = 36.4
if type(num) == int:
if not num % 2 :
print(str(num)+'是偶數(shù)')
if not num % 4:
print(str(num)+'是4的倍數(shù)')
else:
print(str(num)+'是奇數(shù)')
else:
print('請輸入正確的整數(shù)數(shù)據(jù)')
補充: 判斷數(shù)據(jù)的類型
- isinstance(值,類型名) --> 判斷指定的值是否是指定的類型瞒御,結果為bool值
print(isinstance(10,int)) # 判斷10是否是int類型
python中的強制類型轉換
數(shù)據(jù)類型轉換:類型名(被轉換的數(shù)據(jù))
常見的數(shù)據(jù)類型:int float bool str
1.其他的數(shù)據(jù)類型轉換成int:int()
- float可以轉換為int:只保留整數(shù)部分
- bool可以轉換為int:true --> 1 false -->0
- str可以轉換為int:條件是去掉字符串的引號诡挂,剩下的部分本身是一個整形數(shù)據(jù)的字符串(可以帶+-號)
print(int(12.9)) # 12
print(int(True),int(False)) # 1 0
print(int('+245'),int('-245'),int('245')) # 245 -245 245
2.其他的數(shù)據(jù)類型轉換成float:float()
- int可以轉換成float:在整數(shù)后面加.0
- bool可以轉換成float:true --> 1.0 false -->0.0
- str可以轉換為float:條件是去掉字符串的引號隶债,剩下的部分本身是一個整形數(shù)據(jù)或者浮點型數(shù)據(jù)的字符串(可以帶+-號)
print(float(100)) # 100.0
print(float(True),float(False)) # 1.0 0.0
print(float('+34'),float('-34.3')) # 34.0 -34.3
3.其他類型的數(shù)據(jù)轉換成bool:bool()
- 所有類型的數(shù)據(jù)都可以轉換成bool
- int和float中除了0其他都轉換成True秉溉,0轉換為False
- str中長度為0的轉換成False力惯,其他的轉換成True
...... - 總結:所有為0為空的值都會轉換成False,其他的值都是True
print(bool(' ')) #True
應用實例:
# 判斷一個字符串是否是空串(長度為0)
# 方法1:
str1 = ''
if str1 == '':
print('空串')
# 方法2:
if len(str1) == 0:
print('空串')
# 方法3:
if not str1:
print('空串')
# 判斷一個數(shù)字是否是0
# 方法1:
number = 10
if number == 0:
print('是0')
else:
print("不是0")
# 方法2:
if number:
print("不是0")
else:
print('是0')
4.其他類型的數(shù)據(jù)轉換成字符串:str()
- 所有類型的數(shù)據(jù)都可以轉換成str
- 其他數(shù)據(jù)轉換成字符串的時候召嘶,就是直接在數(shù)據(jù)的外層加引號
print(str([1,'asd','ss'])) # '[1,'asd','ss']'
python中的循環(huán)
需要重復執(zhí)行某個過程父晶,就可以使用循環(huán)。
python中的循環(huán)有for循環(huán)和while循環(huán)
1.for循環(huán):
for 變量名 in 序列:
循環(huán)體
for:關鍵字
變量名:與聲明變量時的變量名要求是一樣的弄跌,功能是存儲值
in:關鍵字 指明為變量賦值的來源
序列:容器類型的數(shù)據(jù)甲喝,字符串,列表铛只,字典俺猿,元組,集合等
循環(huán)體:會重復執(zhí)行的代碼塊
執(zhí)行過程:使用變量依次存儲序列中的數(shù)據(jù)格仲,沒存儲一次數(shù)據(jù),執(zhí)行一次循環(huán)體
for number in '123456789':
print('第%c個數(shù)字是%c' % (number,number))
"""
第1個數(shù)字是1
第2個數(shù)字是2
第3個數(shù)字是3
第4個數(shù)字是4
第5個數(shù)字是5
第6個數(shù)字是6
第7個數(shù)字是7
第8個數(shù)字是8
第9個數(shù)字是9
"""
注:xrange是Python2.x中的函數(shù)诵冒,在Python3.x中使用range函數(shù)代替了
range功能是產(chǎn)生指定范圍的數(shù)字序列凯肋。一般用在for循環(huán)中,控制循環(huán)次數(shù)汽馋∥甓或者產(chǎn)生索引值
range(n):產(chǎn)生0~n-1的整數(shù)序列
range(m,n):產(chǎn)生m~n-1的整數(shù)序列
range(m,n,step):產(chǎn)生從m開始到n-1結束,每step取一個的整數(shù)序列
# 產(chǎn)生數(shù)字0~4
for x in range(5):
print(x)
# 產(chǎn)生數(shù)字10~19
for x in range(10,20):
print(x)
# 產(chǎn)生0-10的奇數(shù)
for x in range(1,11,2):
print(x)
# 練習:計算1+2+...+100:
sum1 = 0
for num in range(1,101):
sum1+=num
print(sum1)
# 練習:只用一個循環(huán)
# 練習:計算1*2*..*10
# 練習:2*4*..*10
sum1 = 1
sum2 = 1
for num in range(1,11):
sum1*=num
if not num % 2:
sum2*=num
print(sum1,sum2)
# 練習2:有一個字符'abcdef'豹芯,依次去除字符串中偶數(shù)位上的字符
line = 'abcdef'
for index in range(0,len(line),2):
print(l[index])
2.while循環(huán)
while 條件語句:
循環(huán)體
while:關鍵字
條件語句:結果為bool值
循環(huán)體:重復執(zhí)行的代碼塊
執(zhí)行的過程:判斷條件是否為true悄雅,如果是,執(zhí)行循環(huán)體
并在執(zhí)行完循環(huán)體后回到判斷語句
否則跳出循環(huán)執(zhí)行其他語句
注意:如果條件語句的結果一直都是true铁蹈,會造成死循環(huán)
為了避免死循環(huán)應該在循環(huán)體內(nèi)設置結束循環(huán)的操作
python中沒有do-while循環(huán)
# 使用while循環(huán)計算1+2+3+..+100
n=100
sum1 = 0
while n > 0:
sum1+=n
n-=1
print(sum1)
# 練習 計算2+4+6+..+100
sum2 =0
n = 2
while n <= 100:
sum2 += n
n += 2
print(sum2)
3.continue和break
continue和break兩個關鍵字宽闲,都是作用于循環(huán)當中,用來結束循環(huán)。
- continue:關鍵字容诬,在循環(huán)體中遇到continue就結束當次循環(huán)娩梨,直接進入下次循環(huán)的判斷
(如果是for循環(huán)就讓變量去取下一個值,如果是while循環(huán)就去判斷條件語句)
for x in range(10):
print(x)
continue # 不執(zhí)行continue后面的語句览徒,直接讓x取下一個值
print("====")
# 打印0-10的偶數(shù)
for x in range(11):
if x % 2:
continue
print(x)
- break:關鍵字狈定,在循環(huán)體中遇到break,就直接跳出循環(huán)
for x in range(10):
print(x)
break
print('=====')
print('!!!!!!')
# 通過改變條件語句的值來結束循環(huán)
num = 1
while num <=20:
print(num)
num += 1
# 通過break結束死循環(huán)
num = 1
while True:
if num > 20:
break
print(num)
num += 1
# 練習:找出第一個在100-1000以內(nèi)能被3和17 同時整除的數(shù)
num = 100
while True:
if not(num % 3) and not(num % 17):
print(num)
break
num += 1
4.for和while的選擇
for循環(huán)的循環(huán)次數(shù)是確定的习蓬,while循環(huán)的循環(huán)次數(shù)可以不確定
1.循環(huán)次數(shù)不確定的時候纽什,選擇while循環(huán)。循環(huán)次數(shù)確定時躲叼,選擇for循環(huán)
2.通過循環(huán)遍歷一個序列中的值芦缰,使用for循環(huán)
輸入函數(shù):input()
接收從控制臺輸入的數(shù)據(jù)(輸入的數(shù)據(jù)以回車結束)
程序中遇到input()函數(shù),程序會阻塞押赊,等待用戶輸入完成后饺藤,才會接著執(zhí)行后面的代碼
# 使用value去保存從控制臺輸入的數(shù)據(jù)
value = input()
print(value)
產(chǎn)生隨機數(shù)
python中有一個內(nèi)置模塊,可以產(chǎn)生隨機數(shù):random
導入模塊 import + 模塊名
使用導入模塊的函數(shù) 格式:模塊名+.+函數(shù)名
#產(chǎn)生0-10的隨機整數(shù)
import random
value = random.randint(0,10)
print(value)