python代碼默認情況下是從第一行開始從上往下依次執(zhí)行的关拒,每一條語句都會執(zhí)行
分支結(jié)構(gòu):某段代碼是否執(zhí)行看條件(if語句)
1. if結(jié)構(gòu)(縮進為4個空格或者tab鍵)- 滿足條件就執(zhí)行某個操作圆凰,不滿足就不執(zhí)行
- 1)語法:
if 條件語句:
代碼段
其他代碼
2)說明
- if - 關(guān)鍵字,固定寫法
- 條件語句 - 任何有結(jié)果的表達式都可以躁愿,例如:數(shù)據(jù),已經(jīng)聲明過的變量缤沦、運算表達式(不能是賦值語句)等等
- : - 固定寫法胃碾;(一般出現(xiàn):的位置,后面都會換行產(chǎn)生縮進)
- 代碼段 - 和if保持一個縮進的一條或者多條語句脐帝;需要滿足條件才執(zhí)行的代碼3)執(zhí)行過程
先判斷條件語句的結(jié)果是否為True(如果條件語句的結(jié)果不是布爾值同云,就先轉(zhuǎn)換成布爾再看);
如果為True堵腹,就執(zhí)行if語句里的代碼段炸站,否則代碼段不執(zhí)行
num = 10
if num & 1 == 0:
print('偶數(shù)')
print('你好')
2.if - else 結(jié)構(gòu) - 滿足條件執(zhí)行某個操作,不滿足條件的時候執(zhí)行另外一個操作
- 1)語法
if 條件語句:
代碼段1(滿足條件要執(zhí)行的代碼)
else:
代碼段2(不滿足條件要執(zhí)行的代碼)
- 2)執(zhí)行過程:
先判斷條件語句是否為True疚顷,如果為True就執(zhí)行代碼段1旱易,否則執(zhí)行代碼段2
age = 20
# 根據(jù)年齡值的范圍打印“成年”或者“未成年”
if age >= 18:
print('成年')
else:
print('未成年')
立ち入り禁止
1. if - elif - else結(jié)構(gòu)
- 1)語法:
if 條件語句1:
代碼段1
elif 條件語句2:
代碼段2
elif 條件語句3:
代碼段3
……
else:
代碼段N
其他語句
- 2)執(zhí)行過程:
- 先判斷條件語句1是否為True,為True就執(zhí)行代碼段1腿堤,然后整個if-elif-else結(jié)構(gòu)結(jié)束阀坏;
- if為False,就判斷條件語句2是否為True笆檀,為True就執(zhí)行代碼段2忌堂,然后整個if-elif-else結(jié)構(gòu)結(jié)束;
- if為False酗洒,就判斷條件語句3是否為True士修,為True就執(zhí)行代碼段3妄迁,然后整個if-elif-else結(jié)構(gòu)結(jié)束;
以此類推
- 如果所有的條件語句都不成了李命,執(zhí)行else后面的代碼段
# 根據(jù)年齡范圍打印:少年(14以下)箫老、青年(14-25)封字、壯年(26-35)、中年(36-50)耍鬓、老年(50以上)
age = 30
if age < 14:
print('少年')
if 14 <= age <= 25:
print('青年')
if 25 < age <= 35:
print('壯年')
if 35 < age <= 50:
print('中年')
if age > 50:
print('老年')
age = int(input('請輸入你的年齡:'))
if age < 14:
print('少年')
elif age <= 25:
print('青年')
elif age <= 35:
print('壯年')
elif age <= 50:
print('中年')
else:
print('老年')
2. if嵌套
if結(jié)構(gòu)中的代碼塊中可以再出現(xiàn)其他的if語句
# 判斷一個數(shù)是否是偶阔籽,并且再判斷這個數(shù)是否是4的倍數(shù),并打印出結(jié)論
# 方法一:
num = 9
if num & 1 == 0:
print('偶數(shù)')
else:
print('奇數(shù)')
if num % 4 ==0:
print('是4的倍數(shù)牲蜀!')
# 方法二:
if num & 1 == 0:
print('偶數(shù)')
if num % 4 == 0:
print('是4的倍數(shù)')
else:
print('奇數(shù)')
if num % 10 == 3:
print('個位數(shù)是3')
立ち入り禁止
循環(huán)結(jié)構(gòu):for循環(huán)和while循環(huán)
1.for循環(huán)
- 1)語法:
for 變量 in 序列:
循環(huán)體
2)說明:
- for - 關(guān)鍵字笆制,固定寫法
- 變量名 - 和聲明變量的時候的要求一樣
- in - 關(guān)鍵字,固定寫法
- 序列 - 容器型數(shù)據(jù)涣达;字符串在辆、列表、字典度苔、元組匆篓、集合、迭代器寇窑、生成器鸦概、range
- : - 固定寫法
- 循環(huán)體 - 和for保持一個縮進的一條或者多條語句;需要重復執(zhí)行的語句3)執(zhí)行過程:
讓變量去序列中取值甩骏,一個一個的取窗市,取完為止,每取一個值會執(zhí)行一次循環(huán)體饮笛。
(for循環(huán)可以通過控制序列中元素的個數(shù)來控制循環(huán)的次數(shù))
for x in 'abc12':
print('x=:', x)
print('+++++')
"""
x = 'a'; print('x=:', x); print('+++++')
x = 'b'; print('x=:', x); print('+++++')
x = 'c'; print('x=:', x); print('+++++')
x = '1'; print('x=:', x); print('+++++')
x = '2'; print('x=:', x); print('+++++')
"""
2.range函數(shù) - 為了讓for循環(huán)更加方便的控制次數(shù)
- 1)range(N) - 產(chǎn)生0~N-1的數(shù)字序列
例如:range(4) -> 0,1,2,3 - 2)range(M, N) - 產(chǎn)生M~N-1的數(shù)字序列
例如:range(3咨察, 10) -> 3,4,5,6,7,8,9 - 3)range(M, N, step) - 從M開始,每隔step的值產(chǎn)生下一個數(shù)字缎浇,到N前的一個數(shù)為止
例如:range(0, 10, 2) -> 0,2,4,6,8
作用:1.產(chǎn)生指定的數(shù)字序列 2.控制循環(huán)次數(shù)
for x in range(4):
print(x)
for x in range(3, 10):
print(x)
for x in range(0, 10, 2):
print(x)
# 注意:如果for循環(huán)中變量取出來的值在循環(huán)體中無用扎拣,這個變量可以直接用_來命名
for _ in range(100):
print('+++++')
# 練習:打印0~100中,所有能被3整除的數(shù)
"""
# 方法一
for x in range(101):
if x % 3 == 0:
print(x)
# 方法二
for x in range(0, 101, 3):
print(x)
# 練習2:統(tǒng)計1~100中能被4整除并且個位數(shù)是2的數(shù)字的個數(shù)
count = 0
for x in range(0, 101, 4):
if x % 10 == 2:
# print(x)
count += 1
print('個數(shù):', count)
# 練習3: 計算1+2+3+……+100
sum1 = 0 # 保存所有的和
for x in range(1, 101):
sum1 += x
print('和:', sum1)
立ち入り禁止
1.while循環(huán)
- 1)語法:
while 條件語句:
循環(huán)體
2)說明
- while - 關(guān)鍵字素跺;固定寫法
- 條件語句 - 任何有結(jié)果的表達式二蓝;數(shù)據(jù)、已經(jīng)聲明過的變量指厌、運算表達式(賦值語句除外)等
- : - 固定寫法
- 循環(huán)體 - 和while保持一個縮進的一條或者多條語句刊愚;(需要重復執(zhí)行的語句)3)執(zhí)行過程:
先判斷條件語句是否為True,如果為True就執(zhí)行循環(huán)體踩验;執(zhí)行完循環(huán)體再判斷條件語句是否為True鸥诽,
為True又執(zhí)行循環(huán)體商玫,以此類推,直到條件語句的結(jié)果是False循環(huán)就結(jié)束
from random import randint
num = 0
while num < 5:
num += 1
print('====')
2.for循環(huán)和while循環(huán)的選擇
1)什么時候使用for循環(huán)
a.循環(huán)次數(shù)確定的時候
b.遍歷序列2)什么時候使用while循環(huán)
a.死循環(huán)
b.循環(huán)次數(shù)不確定的時候
# 不斷的輸入數(shù)字牡借,直到輸入的數(shù)字是0為止
value = input('請輸入數(shù)字:')
while value != '0':
value = input('請輸入數(shù)字:')
# 練習:猜數(shù)字游戲
# 游戲開始的時候隨機產(chǎn)生一個100以內(nèi)的數(shù)字拳昌,不斷輸入數(shù)字直到輸入的數(shù)字和產(chǎn)生的數(shù)字一致,游戲結(jié)束
# 在沒有猜對的時候給出‘大了’钠龙,或者‘小了’的提示
x = randint(0, 100) # 產(chǎn)生0到100的隨機數(shù)炬藤,并且保存到x中
value = int(input('請猜數(shù)字:'))
while value != x:
if value > x:
print('大了', '請猜數(shù)字')
elif value < x:
print('小了', '請猜數(shù)字')
value = int(input('請猜數(shù)字:'))
print('游戲結(jié)束', x, value)
立ち入り禁止
1.continue
continue是循環(huán)體中的關(guān)鍵字
當執(zhí)行循環(huán)體的時候,如果遇到continue碴里,那么當次循環(huán)結(jié)束沈矿,直接進入下次循環(huán)的判斷
for x in range(4):
print('====')
continue
print('++++')
2.break
break是循環(huán)體中的關(guān)鍵字
當執(zhí)行循環(huán)體的時候,如果遇到break咬腋,那么整個循環(huán)直接結(jié)束
# 功能:不斷輸入數(shù)字直到輸入的數(shù)字是0為止羹膳,然后再求輸入的所有的奇數(shù)的和
sum1 = 0
while True:
value = int(input('請輸入數(shù)字:'))
if value == 0:
break
if value % 2 == 0:
continue
sum1 += value
print(sum1)
3.else
- 1)完整的for循環(huán)
for 變量 in 序列:
循環(huán)體
else:
代碼段
- 2)完整的while循環(huán)
while 條件語句:
循環(huán)體
else:
代碼段
else中的代碼段:當循環(huán)自然死亡(for后的變量數(shù)據(jù)取完了;while后面的條件為False)根竿,
else后面的代碼段會在循環(huán)結(jié)束后執(zhí)行陵像;如果循環(huán)是因為遇到break而結(jié)束的,那么else
后面的代碼段就不會執(zhí)行犀填。
else的意義:可以通過判斷else中的代碼有沒有執(zhí)行來判斷循環(huán)有沒有遇到break蠢壹。
for x in range(4):
print(x)
else:
pass
4.while循環(huán)的用法
while True:
需要重復執(zhí)行的代碼段
if 退出循環(huán)的條件
break
立ち入り禁止
循環(huán)嵌套:外面的循環(huán)執(zhí)行一次,里面的循環(huán)要執(zhí)行完
for x in range(3):
for y in range(4):
print(x, y)
"""
x = 0:
y = 0: print(0, 0)
y = 1: print(0, 1)
y = 2: print(0, 2)
y = 3: print(0, 3)
x = 1:
y = 0:print(1, 0)
依次類推
"""
# 計算 1九巡!+2图贸!+3!+……10冕广!
# N疏日!= 1*2*3*4*……*N
# 方法一:
sum2 = 0
# 將1~10取出來
for x in range(1, 11):
sum1 = 1
# 計算取出來的數(shù)的階乘
for y in range(1, x+1):
sum1 *= y
# print(sum1)
sum2 += sum1
print(sum2)
# 方法二
sum1 = 0
sum2 = 1
for num in range(1, 11):
sum2 *= num
sum1 += sum2
print(sum1)