目錄
-
1. 分支結(jié)構(gòu)
- 1.1 初步介紹
- 1.2 使用案例
- 1.3 練習(xí)
-
2.循環(huán)結(jié)構(gòu)
- 1.1 初步介紹
- 1.2 使用案例
1. 分支結(jié)構(gòu)
1.1 初步介紹
至今,我們所寫(xiě)的Python代碼都是順序執(zhí)行,但是有時(shí)候在代碼中是需要進(jìn)行邏輯判斷的,比如用戶 輸入用戶名和密碼,輸入正確則驗(yàn)證通過(guò),否則即驗(yàn)證失敗。這個(gè)時(shí)候就會(huì)產(chǎn)生兩個(gè)分支,而且兩個(gè)分支只會(huì)有一條分支會(huì)走下去。當(dāng)然,還有很多類(lèi)似的場(chǎng)景,我們將這種結(jié)果稱(chēng)為 "分支結(jié)構(gòu)" 或 “選擇結(jié)構(gòu)”。
語(yǔ)法格式:
if xxx1:
事情1
elif xxx2:
事情2
elif xxx3:
事情3
else:
事情4
??
1.2 使用案例
1、用戶身份驗(yàn)證
# -*- coding:utf-8 -*-
"""
用戶身份驗(yàn)證
version: 0.1
author: coke
"""
username = input("請(qǐng)輸入用戶名:")
password = input("請(qǐng)輸入密碼:")
if username == 'admin' and password == '123456':
print("身份驗(yàn)證成功")
else:
print("身份驗(yàn)證失敗")
?
2、分段函數(shù)求值
"""
分段函數(shù)求值
3x - 5 (x > 1)
f(x) = x + 2 (-1 < x < 1)
5x + 3 (x <= -1)
version: 0.1
Author: coke
"""
x = float(input("請(qǐng)輸入一個(gè)數(shù)字:"))
if x > 1:
y = 3 * x - 5
elif x > -1 and x < 1:
y = x + 2
else:
y = 5 * x +3
print("f(%.2f)=%.2f"%(x,y))
輸出結(jié)果
?
1.3 練習(xí)
1、猜拳游戲
# -*- coding:utf-8 -*-
"""
猜拳游戲
version: 0.1
author: coke
"""
import random
num = int(input("剪刀(0) 石頭(1) 布(2):"))
computer = random.randint(0,2)
print("電腦出拳:%d"%computer)
if (num == 0 and computer == 2) or (num == 1 and computer == 0) or (num == 2 and computer == 1):
print("哈哈,你贏了")
elif num == computer:
print("平局,要不要再來(lái)一局")
else:
print("洗洗手,決戰(zhàn)都天亮")
?
2、成績(jī)等級(jí)轉(zhuǎn)換
"""
百分制成績(jī)轉(zhuǎn)等級(jí)制成績(jī)
90分以上 --> A
80分~89分 --> B
70分~79分 --> C
60分~69分 --> D
60分以下 --> E
Version: 0.1
Author: coke
"""
score = float(input('請(qǐng)輸入成績(jī): '))
if score >= 90:
grade = 'A'
elif score >= 80:
grade = 'B'
elif score >= 70:
grade = 'C'
elif score >= 60:
grade = 'D'
else:
grade = 'E'
print('對(duì)應(yīng)的等級(jí)是:', grade)
?
2.循環(huán)結(jié)構(gòu)
1.1 初步介紹
如果在程序中我們將執(zhí)行一系列的重復(fù)指令,比如我想計(jì)算1 - 100的和 或者 我想輸出99次 helloWorld,難道要一個(gè)個(gè)去寫(xiě)么,如果真是這樣,那么編程的工作就太不合理了,所以,我們還需要了解一下循環(huán)結(jié)構(gòu),如果我們學(xué)會(huì)了循環(huán)結(jié)構(gòu),就可以重復(fù)的執(zhí)行某些操作指令。
在Python中構(gòu)造循環(huán)結(jié)構(gòu)有兩種做法,一種是
for-in
循環(huán),一種是
while
循環(huán)。
for - in 循環(huán)
如果我們可以知道循環(huán)的次數(shù)或者是對(duì)容器的迭代(容器后面會(huì)涉及),我們會(huì)推薦for-in循環(huán)
for 臨時(shí)變量 in 列表或者字符串等:
循環(huán)滿足條件時(shí)執(zhí)行的代碼
?
while 循環(huán)
如果要構(gòu)造不知道具體循環(huán)次數(shù)的循環(huán)結(jié)構(gòu),我們推薦使用
while
循環(huán)。
while
循環(huán)通過(guò)一個(gè)能夠產(chǎn)生或轉(zhuǎn)換出
bool
值的表達(dá)式來(lái)控制循環(huán),表達(dá)式的值為
True
循環(huán)繼續(xù),表達(dá)式的值為
False
循環(huán)結(jié)束。
while 條件:
條件滿足時(shí),做的事情1
條件滿足時(shí),做的事情2
條件滿足時(shí),做的事情3
...(省略)...
?
break
:結(jié)束當(dāng)前循環(huán)
continue
:用來(lái)結(jié)束本次循環(huán),緊接著執(zhí)行下一次的循環(huán)
注: break/continue只能用在循環(huán)中,除此以外不能單獨(dú)使用
?
1.2 使用案例
1、用for循環(huán) 計(jì)算1-100 之間偶數(shù)的和
"""
用 for循環(huán)實(shí)現(xiàn)1-100之間的求和
version: 1.0
Author: coke
"""
#-*- coding=utf-8 -*-
sum = 0
for x in range(1,101):
if x % 2 == 0:
sum += x
print(sum)
輸出結(jié)果
需要說(shuō)明的是上面代碼中的
range
類(lèi)型,
range
可以用來(lái)產(chǎn)生一個(gè)不變的數(shù)值序列,而且這個(gè)序列通常都是用在循環(huán)中的,例如:
-
range(101)
可以產(chǎn)生一個(gè)0到100的整數(shù)序列。 -
range(1, 100)
可以產(chǎn)生一個(gè)1到99的整數(shù)序列。 -
range(1, 100, 2)
可以產(chǎn)生一個(gè)1到99的奇數(shù)序列,其中的2是步長(zhǎng),即數(shù)值序列的增量
?
2、不用判斷 計(jì)算 1-100 之間偶數(shù)的和
"""
用 for循環(huán)實(shí)現(xiàn)1-100之間的求和
version: 1.0
Author: coke
"""
#-*- coding=utf-8 -*-
sum = 0
for x in range(2,101,2):
sum += x
print(sum)
?
3、猜數(shù)字游戲
"""
猜數(shù)字游戲
計(jì)算機(jī)出一個(gè) 1~100之間的隨機(jī)數(shù)由人猜
計(jì)算機(jī)分別根據(jù)人猜的數(shù)字分別給出提示大一點(diǎn)/小一點(diǎn)/猜對(duì)了
version: 0.1
admin: coke
"""
import random
answer = random.randint(1,100)
counter = 0
while True:
counter += 1
result = int(input("請(qǐng)輸入一個(gè)數(shù)字:"))
if answer > result:
print("大一點(diǎn)")
elif answer < result:
print("小一點(diǎn)")
else:
print("猜對(duì)了")
break
if counter > 7:
print("智商余額不足")
?
4、continue和break 的使用
"""
continue的使用
version: 0.1
author: coke
"""
name = "cokehaha"
for x in name:
print("----")
if x == "k":
continue
if x == "a":
break
print(x)
?
1.3 練習(xí)
1、輸入兩個(gè)正整數(shù),計(jì)算最大公約數(shù)和最小公倍數(shù)
"""
輸入兩個(gè)正整數(shù)計(jì)算最大公約數(shù)和最小公倍數(shù)
version: 0.1
author: coke
"""
x = int(input('x = '))
y = int(input('y = '))
if x > y:
x, y = y, x
for factor in range(x, 0, -1):
if x % factor == 0 and y % factor == 0:
print('%d和%d的最大公約數(shù)是%d' % (x, y, factor))
print('%d和%d的最小公倍數(shù)是%d' % (x, y, x * y // factor))
break
?
2、打印三角形圖案
"""
打印各種三角形圖案
*
**
***
****
*****
*
**
***
****
*****
*
***
*****
*******
*********
version: 0.1
author: coke
"""
row = int(input('請(qǐng)輸入行數(shù): '))
for i in range(row):
for _ in range(i + 1):
print('*', end='')
print()
for i in range(row):
for j in range(row):
if j < row - i - 1:
print(' ', end='')
else:
print('*', end='')
print()
for i in range(row):
for _ in range(row - i - 1):
print(' ', end='')
for _ in range(2 * i + 1):
print('*', end='')
print()
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
