分支結(jié)構(gòu)
1.if-elif-else結(jié)構(gòu)
1)語法:
if 條件1:
代碼1
elif 條件2:
代碼2
elif 條件3:
代碼3
...
else:
代碼N
2)執(zhí)行過程:
判斷1是否為True,如果是則執(zhí)行1,整個if-elif-else結(jié)構(gòu)結(jié)束:
如果1為False,判斷2,依次類推
如果所有elif都不成立,執(zhí)行else
根據(jù)年齡范圍打印:少年(-14)、青年(14-25)派撕、壯年(26-35)婉弹、中年(36-50)、老年(50-)
age = 26
if age < 14:
print('少年')
elif age <= 25: # 因?yàn)樯霞墬l件沒執(zhí)行终吼,所以可以省略上級條件
print('青年')
elif age <= 35:
print('壯年')
elif age <= 50:
print('中年')
elif age > 50:
print('老年')
2. if嵌套
if結(jié)構(gòu)中可以再出現(xiàn)其他if語句
判斷一個數(shù)是否為偶數(shù),并且再判斷這個數(shù)是否是4的倍數(shù);并打印結(jié)論
num = 13
if num & 1 == 0:
print('偶數(shù)')
if num % 4 == 0:
print('4的倍數(shù)')
else:
print('奇數(shù)')
if num % 10 == 3:
print('個位數(shù)是3')
for循環(huán)
循環(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保持一個縮進(jìn)的一條或者多條語句;需要重復(fù)執(zhí)行的語句
3)執(zhí)行過程:
讓變量取序列中取值歇盼,一個一個取舔痕,取完為止;每取一個值评抚,執(zhí)行一次循環(huán)體
(for循環(huán)通過控制序列中元素個數(shù)來控制循環(huán)次數(shù))
for x in 'abc12':
print(x)
print('hello')
2.range函數(shù) - 為了讓for更加方便的控制次數(shù)
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ù)字學(xué)列
作用:
1.產(chǎn)生指定的數(shù)字序列
2.控制循環(huán)次數(shù)
如果只是為了控制循環(huán)次數(shù)豹缀,不需要變量的時候可以用_命名
for x in range(4):
print(x)
print('-----------------')
for x in range(3,10):
print(x)
print('-----------------')
for x in range(0,10,2):
print(x)
print('-----------------')
練習(xí)1:統(tǒng)計0~100中能被3整除的個數(shù)
# 方法一:
num_1 = 0
for i in range(101):
if i % 3 == 0:
num_1 += 1
print(i)
print(num_1)
print('-----------------')
# 方法二:
for i in range(0,101,3):
print(i)
練習(xí)2:統(tǒng)計1~100中能被4整除的并且個位數(shù)是2的數(shù)字的個數(shù)
num_2 = 0
for i in range(1, 101):
if i % 4 == 0 and i % 10 == 2:
print(i)
num_2 += 1
print(num_2)
練習(xí)3:計算1+2+3+.....+100
num_3 = 0
for i in range(1,101):
num_3 += i
print(num_3)
while循環(huán)
1.while循環(huán)
1)語法
while 條件:
循環(huán)體
2)說明
while - 關(guān)鍵字;固定寫法
條件語句 - 任何有結(jié)果的表達(dá)式都可以慨代;數(shù)據(jù)邢笙、已經(jīng)聲明過的變量、運(yùn)算表達(dá)式(賦值語句除外)
: - 固定寫法
循環(huán)體 - 和while保持一個縮進(jìn)的一條或者多條語句侍匙;(需要重復(fù)執(zhí)行的語句)
3)執(zhí)行過程:
先判斷條件語句是否為True氮惯,為True就執(zhí)行循環(huán)體,然后再判斷條件是否為True...依次類推想暗,
直到條件為False循環(huán)結(jié)束
num = 0
while num < 5:
print('====')
num += 1
2.for循環(huán)和while的選擇
1)什么時候用for循環(huán)
a.循環(huán)次數(shù)確定的時候
b.遍歷序列
2)什么時候使用while循環(huán)
a.死循環(huán)
b.循環(huán)次數(shù)不確定的時候
# 不斷輸入數(shù)字妇汗,直到輸入的值是0為止
value = 1
while value != '0':
value = input('請輸入數(shù)字:')
1練習(xí):猜數(shù)字游戲
2游戲開始的時候隨機(jī)產(chǎn)生一個100以內(nèi)的數(shù)字,直到猜對結(jié)束
3沒猜對給出相應(yīng)提示
number = randint(0, 100)
answer = -1
while answer != number:
answer = int(input('請輸入你的答案:'))
if answer > number:
print('大了')
elif answer < number:
print('小了')
elif answer == number:
print('對了说莫,答案就是', number)
循環(huán)關(guān)鍵字
1.continue
continue是循環(huán)體中的關(guān)鍵字
當(dāng)執(zhí)行循環(huán)體的時候杨箭,如果遇到continue,結(jié)束當(dāng)次循環(huán)储狭,直接進(jìn)入下一次
for x in range(4):
print('hello')
if x % 2 == 0:
continue
print('Hi')
2.break
break是循環(huán)體中的關(guān)鍵字
當(dāng)執(zhí)行循環(huán)體的時候互婿,如果遇到break,整個循環(huán)直接結(jié)束
for x in range(4):
print('===')
break
print('+++')
# 功能:不斷輸入數(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中的代碼段:當(dāng)循環(huán)自然結(jié)束的時候就執(zhí)行慈参,如果是break強(qiáng)制打斷則不執(zhí)行
else的意義:可以通過判斷else中的代碼有沒有執(zhí)行來判斷有沒有遇到break
for x in range(4):
print(x)
if x == 2:
break
else:
print('else')
循環(huán)嵌套
循環(huán)嵌套:外面的循環(huán)執(zhí)行一次,里面的循環(huán)要執(zhí)行完畢
練習(xí):計算1刮萌!+2驮配!+3!+....10!=
方法一:
num = 0
for i in range(1, 11):
num1 = 1
for j in range(1, i+1):
num1 *= j
num += num1
print(num1, num)
print(num)
方法二:
sum1 = 0
sum2 = 1
for num in range(1,11):
sum2 *= num
sum1 += sum2
print(sum1)