恢復內容開始 目錄 1. 分支結構 1.1 初步介紹 1.2 使用案例 1.3 練習 2.迴圈結構 1.1 初步介紹 1.2 使用案例 目錄 1. 分支結構 1.1 初步介紹 1.2 使用案例 1.3 練習 2.迴圈結構 1.1 初步介紹 1.2 使用案例 1. 分支結構 1.1 初步介紹 1.2 ...
---恢復內容開始---
目錄
1. 分支結構
1.1 初步介紹
至今,我們所寫的Python代碼都是順序執行,但是有時候在代碼中是需要進行邏輯判斷的,比如用戶 輸入用戶名和密碼,輸入正確則驗證通過,否則即驗證失敗。這個時候就會產生兩個分支,而且兩個分支只會有一條分支會走下去。當然,還有很多類似的場景,我們將這種結果稱為 "分支結構" 或 “選擇結構”。小編整理一套Python資料和PDF,有需要Python學習資料可以加學習群:631441315 ,反正閑著也是閑著呢,不如學點東西啦~~
語法格式:
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()
---恢復內容結束---