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

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