1.數(shù)據(jù)類型轉(zhuǎn)換
自動轉(zhuǎn)換
- 整型與浮點型數(shù)計算轉(zhuǎn)換為浮點型
- 整型與bool型(0和1)計算轉(zhuǎn)換為整型
強制轉(zhuǎn)換
- 語法:
類型名( 數(shù)據(jù) )
- 其他類型轉(zhuǎn)換int: float, bool, 整數(shù)型的字符串
- 其他類型轉(zhuǎn)換float: int, bool, 浮點型的字符串
- 其他類型轉(zhuǎn)換bool: 所有類型可轉(zhuǎn)換
結(jié)果:除數(shù)字中的0分飞、None和其他類型的空(空串,空列表睹限,空元組譬猫,空字典)都是True print(bool(None),bool(False),bool([]),bool(''),bool({}),bool(0),bool(-2))
False False False False False False True
- 其他類型轉(zhuǎn)換str: 所有數(shù)據(jù)都可以轉(zhuǎn)換(在外添加引號)
結(jié)果:print(str([1,2,3]),str(100),str(True),str(None))
[1, 2, 3] 100 True None 實質(zhì)上是'[1,2,3]' '100' 'True' 'None'
2.if 語句(分支)
if
if
的語法
if 條件語句:
執(zhí)行語句塊
# if -- python中關(guān)鍵字讯檐,含義為'如果'
# 條件語句 -- 判斷返回的結(jié)果是bool
# 冒號 -- 固定必須有的部分
# 執(zhí)行語句塊 -- 判斷為True,執(zhí)行的部分
實例:
grade = 75
if grade >= 60:
print('成績合格')
print('成績:60')
結(jié)果:
成績合格
成績:60
if-else
if-else
語法
if 條件語句:
執(zhí)行語句塊1
else:
執(zhí)行語句塊2
# else -- 關(guān)鍵字染服,之后的冒號不可省略
# 先判斷條件語句别洪,若為True,執(zhí)行語句塊1柳刮;否則挖垛,執(zhí)行語句塊2
實例
grade = 50
if grade >= 60:
print('成績合格')
else:
print('成績不合格')
結(jié)果:
成績不合格
成績:50
if-elif-else
if-elif-else
語法
if 條件語句1:
語句塊1
elif 條件語句2:
語句塊2
elif 條件語句3:
語句塊3
...
else:
語句塊n
按順序判斷條件,滿足則執(zhí)行語句塊秉颗,不滿足就判斷其他條件痢毒;否則,執(zhí)行else的語句塊
實例:
grade = 50
if grade > 90:
print('成績優(yōu)秀')
elif grade >= 80:
print('成績良好')
elif grade >= 60:
print('成績及格')
else:
print('成績不合格')
結(jié)果:
成績不合格
if 語句嵌套
每個if分支中可以嵌套其他的if語句蚕甥,也就是說在執(zhí)行語句塊的部分有if語句代替就是嵌套
if 嵌套
語法
if 條件語句1:
if 條件語句2:
執(zhí)行語句塊1
else:
執(zhí)行語句塊2
else:
執(zhí)行語句2
實例:
grade = 80
age = 18
if grade >= 60:
if age >= 18:
print('錄取')
else:
print('年齡小于18')
else:
print('成績不合格')
結(jié)果:
錄取
案例
# 產(chǎn)生一個隨機數(shù)哪替,判斷是否為偶數(shù),若是打印偶數(shù)菇怀,否則打印奇數(shù)
# 如果能被4整除凭舶,再打印被4整除的數(shù)
import random
number = random.randint(1,100)
if number % 2:
print('奇數(shù):%d'%number)
else:
print('偶數(shù):%d'%number)
if not number%4:
print('可以被4整除:%d'%number)
# 判斷空串
str1 = ''
if not str1:
print('空串')
注:import 為模塊引入關(guān)鍵字,random.randint(first,last)隨機取數(shù)[first,last]
結(jié)果:
偶數(shù):72
可以被4整除:72
空串
3.for 循環(huán)
python中循環(huán)有兩種: for和while。
for
- 讓變量在序列中取數(shù)據(jù)爱沟,取完為止库快。每取一次,執(zhí)行一次循環(huán)體钥顽。
- for循環(huán)中用來獲取序列值的變量义屏,在循環(huán)體中不一定使用;若不用蜂大,變量名可以聲明為 _
for 變量名 in 序列: 循環(huán)體 # for -- 關(guān)鍵字闽铐,含義'循環(huán)' # in -- 關(guān)鍵字,含義'在序列中取值' # 序列 -- 容器(可以包含多個數(shù)據(jù)的數(shù)據(jù)類型),如:str奶浦,list兄墅,tuple,set澳叉,dict隙咸,range,生成式成洗,生成器 # 循環(huán)體 -- 需要重復(fù)執(zhí)行的代碼
- range()
案例:1. python內(nèi)置函數(shù),作用是產(chǎn)生指定范圍中的數(shù)字 2. range(number1) -- 產(chǎn)生[0,number-1]的數(shù) 3. range(number1,number2) -- 產(chǎn)生[number1,number2-1]的數(shù) 4. range(number1,number2,step) -- 從number1開始五督,每次按步進取值,在number2之前結(jié)束
print('形式1') for number in range(10): print(number, end=' ') print('\n形式2') add_number = 0 for number in range(1,101): add_number += number print(add_number) print('形式3') for number in range(1,20,3): print(number, end=' ') 結(jié)果: 形式1 0 1 2 3 4 5 6 7 8 9 形式2 5050 形式3 1 4 7 10 13 16 19
while
-
while
循環(huán)瓶殃,是先判斷條件語句充包,True就執(zhí)行循環(huán)體,直到判斷語句結(jié)束為False結(jié)束語法: while 條件語句: 循環(huán)體 # while -- 關(guān)鍵字 # 條件語句 -- 結(jié)果為True或者False # 循環(huán)體 -- 重復(fù)執(zhí)行的代碼
-
案例
#找一個大于1000的第一個能被79整除的數(shù) num = 1001 while num % 79: num += 1 print(num,num/79) 結(jié)果: 1027 13.0
-
流程圖
while.png for 與 while比較
循環(huán)方式 | 比較 | 使用 |
---|---|---|
for | 循環(huán)次數(shù)有限且固定遥椿,while循環(huán)次數(shù)不確定 | 遍歷序列中的值基矮;循環(huán)次數(shù)確定 |
while | 循環(huán)次數(shù)不確定 | 死循環(huán)淆储;循環(huán)次數(shù)不確定 |
4.break和continue
break
用于結(jié)束或跳出最近的循環(huán)continue
用于結(jié)束本次的循環(huán),開始下一次循環(huán)for-else
同沒有else的for語句相比影響不大家浇。唯一的區(qū)別在于本砰,break時有else的語句(也屬于for之內(nèi))不會輸出;可以用于for循環(huán)中代替記錄和標(biāo)志的作用,如判斷是否為素數(shù)案例
# 猜數(shù)字
import random
number = random.randint(1,100) #[1,100]
while True:
num_input = input('輸入數(shù)字1-100:')
if int(num_input) == number:
print('猜中')
break
elif number > int(num_input):
print('小了')
elif number < int(num_input):
print('大了')
else:
pass
# 根據(jù)折半查找 --> 2^7=128>100 -- 最多猜7次
'''