01-if語(yǔ)句
1.if
if 條件語(yǔ)句:
代碼塊
其他語(yǔ)句
執(zhí)行過(guò)程:先判斷條件語(yǔ)句是否為True,如果是True就執(zhí)行代碼塊,執(zhí)行完代碼塊再執(zhí)行其他語(yǔ)句。
如果是False,直接執(zhí)行其他語(yǔ)句
2.if--else
if 條件語(yǔ)句:
代碼塊1
else:
代碼塊2
其他語(yǔ)句
執(zhí)行過(guò)程:先判斷條件語(yǔ)句是否為True,如果為True就執(zhí)行代碼塊1,執(zhí)行完代碼塊1再執(zhí)行其他語(yǔ)句溯壶。
如果是False,執(zhí)行代碼塊2,執(zhí)行完代碼塊2,再執(zhí)行其他語(yǔ)句
3.if-elif-elif-...-else
if 條件語(yǔ)句1:
代碼塊1
elif 條件語(yǔ)句2:
代碼塊2
else:
代碼塊3
其他語(yǔ)句
執(zhí)行過(guò)程: 先判斷條件語(yǔ)句1是否為True,如果為True就執(zhí)行代碼塊1半醉,執(zhí)行完代碼塊1再執(zhí)行其他語(yǔ)句幽纷。
如果條件語(yǔ)句1是False,就判斷條件語(yǔ)句2是否為True:
如果條件語(yǔ)句2為True就執(zhí)行代碼塊2式塌,執(zhí)行完代碼塊2再執(zhí)行其他語(yǔ)句
如果條件語(yǔ)句2為False就執(zhí)行代碼塊3,執(zhí)行完代碼塊3再執(zhí)行其他語(yǔ)句
"""
給一個(gè)學(xué)生的成績(jī)友浸,判斷成績(jī)是優(yōu)秀(90-100)峰尝、良好(70-89)、及格(60-69)收恢、不及格(0-59)
score = -40
if 90<=score<=100:
print('優(yōu)秀')
elif 70<=score<90:
print('良好')
elif 60<=score<70:
print('及格')
elif 0<=score<60:
print('不及格')
else:
print('成績(jī)有誤!!')
print('======')
4.if語(yǔ)句可以嵌套使用
if 條件語(yǔ)句1:
if 條件語(yǔ)句2:
執(zhí)行語(yǔ)句塊2
else:
執(zhí)行語(yǔ)句塊3
else:
執(zhí)行語(yǔ)句塊4
練習(xí)
給一個(gè)數(shù)字(整數(shù))武学,如果是偶數(shù)就打印‘xxx是偶數(shù)’幌陕,是偶數(shù)并且還能被4整除就打印‘xxx是4的倍數(shù)’合是,否則打印‘xxx是奇數(shù)’
"""
是偶數(shù) ---> 打印‘xxx是偶數(shù)’--->如果還能被4整除,打印‘xxx是4的倍數(shù)‘
是奇數(shù) ---> 打印’xxx是奇數(shù)‘
"""
numer = 12
if numer%2 == 0:
print('%d是偶數(shù)' % (numer))
if numer % 4 == 0:
print('%d是4的倍數(shù)' % (numer))
else:
print('%d是奇數(shù)' % (numer))
# if numer%2:
# print('奇數(shù)')
# else:
# print('偶數(shù)')
if isinstance(numer, int):
print('是整數(shù)')
if numer % 2:
print('奇數(shù)')
else:
print('偶數(shù)')
if not (numer % 4):
print('是4的倍數(shù)')
print('=====')
5.判斷數(shù)據(jù)的類型
isinstance(值,類型名) --> 判斷指定的值是否是指定的類型冒嫡,如果是結(jié)果是True驮肉,否則結(jié)果是False
print(isinstance(10, int)) # 判斷10是否是int類型
print(isinstance(12.0, int))
#02-類型的強(qiáng)制轉(zhuǎn)換
數(shù)據(jù)類型轉(zhuǎn)換: 類型名(被轉(zhuǎn)換的數(shù)據(jù))
int float bool str
1.其他的數(shù)據(jù)類型轉(zhuǎn)換成整型:int()
浮點(diǎn)型:只保留整數(shù)部分
布爾類型:True -> 1 False -> 0
字符串:去掉字符串的引號(hào)后熏矿,剩下的部分本身就是一個(gè)整型數(shù)據(jù)的字符串才能轉(zhuǎn)換成整數(shù)。
print(int(12.9))
print(int(False))
print(int('+12'))
2.其他的數(shù)據(jù)類型轉(zhuǎn)換成浮點(diǎn)型: float()
整型:在整數(shù)后面加一個(gè)'.0'
布爾類型: True -> 1.0 False -> 0.0
字符串:去掉字符串的引號(hào)后离钝,剩下的部分本身就是一個(gè)整型或者浮點(diǎn)型數(shù)據(jù)的字符串才能轉(zhuǎn)換成浮點(diǎn)型數(shù)據(jù)
print(float(123))
print(float(False))
print(float('+100.23'))
3.其他類型的數(shù)據(jù)轉(zhuǎn)換成布爾類型:bool()
不管什么類型的數(shù)據(jù)都可以轉(zhuǎn)換成布爾值
整數(shù)中票编,除了0會(huì)轉(zhuǎn)換成False其他的都會(huì)轉(zhuǎn)換成True
總結(jié):所有為0為空的值都會(huì)轉(zhuǎn)換成False,其他的值都是True
print(bool({}))
if 0:
print('====')
else:
print('!!!')
判斷一個(gè)字符串是否是空串(字符串長(zhǎng)度是0)
空串就是:'',""
str1 = '12'
方法1
if str1 == '':
print('空串')
else:
print('不是空串')
方法2
if len(str1) == 0:
print('空串')
else:
print('不是空串')
方法3
if str1:
print('不是空串')
else:
print('空串')
# 判斷一個(gè)數(shù)字是否是0
number = 10
# 方法1
if number == 0:
print('是零')
else:
print('非零')
# 方法2
if number:
print('非零')
else:
print('零')
4.其他類型的數(shù)據(jù)轉(zhuǎn)換成字符串:str()
"""
不管什么類型的數(shù)都可以轉(zhuǎn)換成字符串
其他數(shù)據(jù)轉(zhuǎn)換成字符串的時(shí)候,就是直接在數(shù)據(jù)的外層加引號(hào)
"""
print(str(120))
#03-for循環(huán)
需要重復(fù)執(zhí)行某個(gè)過(guò)程奈辰,就可以使用循環(huán)栏妖。
python中的循環(huán)有for循環(huán)和while
1.for循環(huán):
"""
for 變量名 in 序列:
循環(huán)體
for: 關(guān)鍵字
變量名: 和聲明變量時(shí)的變量名要求是一樣的,功能是存儲(chǔ)值
in: 關(guān)鍵字奖恰,在吊趾。。瑟啃。里的意思
序列: 容器類型的數(shù)據(jù)论泛。字符串、列表蛹屿、字典屁奏、元祖、集合等
循環(huán)體: 會(huì)重復(fù)執(zhí)行的代碼塊
執(zhí)行過(guò)程:使用變量去序列中取數(shù)據(jù)错负,一個(gè)一個(gè)的取坟瓢,取完為止勇边。每取一個(gè)值,執(zhí)行依次循環(huán)體
"""
for char in 'abcd123':
print(char)
print('!')
print('=====')
打印20次‘a(chǎn)bc’
2.range函數(shù)
"""
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):從m開始,每次加step產(chǎn)生下一個(gè)數(shù)字清笨,直到n前面那一個(gè)為止
"""
range(10):產(chǎn)生數(shù)字0月杉,1,2抠艾,3苛萎,4,5跌帐,6首懈,7,8谨敛,9
for x in range(10):
print(x)
print('=======')
range(10,20):產(chǎn)生數(shù)字:10~19
for x in range(10,20):
print(x)
print('+++++++')
range(0,10,2):產(chǎn)生數(shù)字:0究履,2,4脸狸,6最仑,8
for x in range(0,10,2):
print(x)
練習(xí):計(jì)算1+2+3+...+100
sum1 = 0 # 聲明一個(gè)變量來(lái)存和
for x in range(1,101):
sum1 += x
print(sum1)
"""
sum1 = 0
x 在 (1-100)
x = 1 sum1 += 1 = 0+1
x = 2 sum1 += 2 = 1+2
x = 3 sum1 += 3 = 1+2+3
...
x = 100 sum1 += 100 = 1+2+3+..+99 + 100
練習(xí):只使用一個(gè)循環(huán)
計(jì)算123..10
計(jì)算246...10
mul1 = 1 # 聲明一個(gè)變量來(lái)存乘積
mul2 = 1
# 遍歷取出1-10中所有的數(shù)字
for x in range(1,11):
mul1 *= x # mul1 = mul1*x
# 判斷x是否是偶數(shù)
if x % 2 == 0:
mul2 *= x
print(mul1)
print(mul2)
練習(xí)2:有一個(gè)字符串‘a(chǎn)bcdef’,依次取出字符串中偶數(shù)位(下標(biāo)值是偶數(shù))上的字符
# 0 ~ len-1
str1 = 'abcdef'
# 方法一:
# 循環(huán)取出字符串所有的偶數(shù)下標(biāo)
# index = 0,2,4
for index in range(0,len(str1),2):
print(str1[index])
# 方法二:
# 循環(huán)取出字符串中每個(gè)字符的下標(biāo)
for index in range(0,len(str1)):
# 判斷下標(biāo)是否是偶數(shù)
if index % 2 == 0:
print(str1[index])
print('======')
# 方法三:
index = 0
for char in str1:
if index % 2 ==0:
print(char)
index += 1
"""
index = 0
char = (abcdef)
char = a index = 0 print('a') index = 1
char = b index = 1 index = 2
char = c index = 2 print('c') index = 3
04-while循環(huán)
while循環(huán)
"""
while 條件語(yǔ)句:
循環(huán)體
其他語(yǔ)句
while: 關(guān)鍵字
條件語(yǔ)句:結(jié)果是True,或者False
循環(huán)體: 重復(fù)執(zhí)行的代碼段
執(zhí)行過(guò)程:判斷條件語(yǔ)句是否為True,如果為True就執(zhí)行循環(huán)體。
執(zhí)行完循環(huán)體炊甲,再判斷條件語(yǔ)句是否為True,如果為True就再執(zhí)行循環(huán)體....
直到條件語(yǔ)句的值為False,循環(huán)結(jié)束泥彤,直接執(zhí)行while循環(huán)后面的語(yǔ)句
注意:如果條件語(yǔ)句的結(jié)果一直都是True,就會(huì)造成死循環(huán)卿啡。所以在循環(huán)體要有讓循環(huán)可以結(jié)束的操作
python中沒(méi)有do-while循環(huán)
"""
# 死循環(huán)
# while True:
# print('aaa')
# 循環(huán)只執(zhí)行一次
flag = True
while flag:
print('aaa')
flag = False
# 使用while循環(huán)計(jì)算1+2+3+...+100
number = 1 # 保存數(shù)字1-100
sum1 = 0 # 保存和
while number <= 100:
print(number)
sum1 += number
# 每次循環(huán)讓number值加1
number += 1
print(sum1)
練習(xí):計(jì)算2+4+6+...100
number = 2
sum2 = 0
while number <= 100:
sum2 += number
number += 2
print(sum2,number)
05-continue和break
"""
break和continue兩個(gè)關(guān)鍵字吟吝,都是作用域循環(huán)當(dāng)中,用來(lái)結(jié)束循環(huán)的颈娜。
continue: 關(guān)鍵字剑逃,在循環(huán)體中遇到continue,就結(jié)束當(dāng)次循環(huán)官辽,直接進(jìn)入下次循環(huán)的判斷
(如果是for循環(huán)蛹磺,就讓變量去取下一個(gè)值。如果是while循環(huán)就去判斷while后邊的條件語(yǔ)句是否為True)
"""
for x in range(10):
print(x)
continue # 不執(zhí)行continue后面的語(yǔ)句同仆,直接讓x取下一個(gè)值
print('====')
print('=====')
for x in range(10):
if x % 2:
continue
print(x)
"""
break:關(guān)鍵字萤捆,在循環(huán)體中遇到break,就直接結(jié)束整個(gè)循環(huán)。直接執(zhí)行循環(huán)后邊的其他語(yǔ)句
"""
for x in range(10):
print(x)
break
print('======')
print('!!!!')
# 通過(guò)改變條件語(yǔ)句的值,來(lái)結(jié)束循環(huán)
numer = 1
while numer <= 100:
print(numer)
numer += 1
# 使用break結(jié)束死循環(huán)
numer = 1
while True:
if numer > 100:
break
print('==:',numer)
numer += 1
練習(xí):找出100-1000以內(nèi)第一個(gè)能夠被3整除同時(shí)能夠被17整除的數(shù)
for x in range(100,1001):
if x%3==0 and x%17==0:
print(x)
# 找到第一個(gè)就不用再往下找了
break
#06-for和while的選擇以及循環(huán)嵌套
# 1.for和while的選擇
"""
for循環(huán)的循環(huán)次數(shù)是確定的俗或,white循環(huán)的循環(huán)次數(shù)可以不確定
1.循環(huán)次數(shù)不確定的時(shí)候市怎,選擇while循環(huán)。次數(shù)確定一般使用for循環(huán)
2.通過(guò)循環(huán)遍歷一個(gè)序列中的值蕴侣,使用for循環(huán)
"""
# 2.input()
"""
input():接收從控制臺(tái)輸入數(shù)據(jù)的數(shù)據(jù)(輸入的數(shù)據(jù)以回車結(jié)束)
程序中遇到input()函數(shù)焰轻,程序會(huì)阻塞臭觉,等待用戶輸入完成后昆雀,才會(huì)接著執(zhí)行后面的代碼
"""
# 使用value去保存從控制臺(tái)輸入的數(shù)據(jù)
# value = input()
# print('=====')
# 3.產(chǎn)生隨機(jī)數(shù)
# python中有一個(gè)內(nèi)置模塊,可以產(chǎn)生隨機(jī)數(shù):random
"""
randint(m,n):產(chǎn)生一個(gè)m~n的隨機(jī)數(shù)(整數(shù))
"""
# 導(dǎo)入random模塊
import random
# 產(chǎn)生100-200的隨機(jī)數(shù)
number = random.randint(100,200)
print(number)