2020年3月18日 第三章 程序控制結(jié)構(gòu)-1

第三章 程序控制結(jié)構(gòu)-1

1.程序基礎(chǔ)

2.順序結(jié)構(gòu)

3.分支結(jié)構(gòu)

4.循環(huán)結(jié)構(gòu)

5.嵌套程序

6.程序的異常處理(選講)

7.random庫

1.程序基礎(chǔ)

Python程序文件一般包括注釋、模塊導(dǎo)入、函數(shù)定義和程序主體等幾個(gè)部分
Python程序由三種基本結(jié)構(gòu)組成:順序結(jié)構(gòu)、分支結(jié)構(gòu)(選擇結(jié)構(gòu))、循環(huán)結(jié)構(gòu)

2.順序結(jié)構(gòu)

程序按照語句順序依次執(zhí)行的一種運(yùn)行方式

#E1-1.py
‘’’已知圓的半徑
輸出圓的周長(zhǎng)和面積’’’
r=2.5
c=2*3.14*r
s=3.14*r*r
print("c=",c,end=‘ ‘)
print("s=",s)

#E1-2.py
#繪制正方形
import turtle
turtle.forward(100)
turtle.left(90)
turtle.forward(100)
turtle.left(90)
turtle.forward(100)
turtle.left(90)
turtle.forward(100)

3.分支結(jié)構(gòu)

分支結(jié)構(gòu)(選擇結(jié)構(gòu))是根據(jù)條件判斷的結(jié)果控制不同分支執(zhí)行的結(jié)構(gòu)

  • 單分支結(jié)構(gòu)
  • 雙分支結(jié)構(gòu)
  • 多分支結(jié)構(gòu)

3.1單路分支結(jié)構(gòu)

單分支結(jié)構(gòu)是一種取舍結(jié)構(gòu),就是只有 一種選擇,要么選,要么不選,即符合某一條件就單獨(dú)處理,不符合就不做處理

if <條件表達(dá)式>:
  <語句塊>

語法格式

  • 當(dāng)<條件表達(dá)式>為True時(shí),執(zhí)行<語句塊>中若干語句,否則不執(zhí)行任何操作。
  • <條件表達(dá)式>可以是關(guān)系表達(dá)式、邏輯表達(dá)式、算術(shù)表達(dá)式等。
  • <語句塊>前有縮進(jìn),冒號(hào)“:”不能缺省。

【例3-1】輸入一個(gè)整數(shù),如果是偶數(shù)則輸出“這是個(gè)偶數(shù)”,否則什么也不輸出

#E3-1-1.py
N=int(input("請(qǐng)輸入一個(gè)整數(shù):"))
if N%2==0:
  print("這是個(gè)偶數(shù)")

#E3-1-2.py
N=eval(input("請(qǐng)輸入一個(gè)整數(shù):"))
if N%2==0:
  print("這是個(gè)偶數(shù)")

注意print()前要有縮進(jìn) 4個(gè)空格

【例3-2】任意輸入兩個(gè)數(shù)x、y,請(qǐng)將這兩個(gè)數(shù)由小到大輸出

分析:
(1)輸入x、y
(2)如果x>y,則交換x和y,否則不交換
(3)最后輸出x、y

#E3-2-1.py
x=int(input("請(qǐng)輸入x:"))
y=int(input("請(qǐng)輸入y:"))
if x>y:
  x,y=y,x
print(x,y)

#E3-2-2.py
x,y=eval(input("請(qǐng)輸入x、y:"))
if x>y:
  x,y=y,x
print(x,y)

【例3-3】任意輸入三個(gè)數(shù)x、y、z,請(qǐng)將這三個(gè)數(shù)由小到大輸出

分析:
(1)輸入x、y 、z
(2)如果x>y,則交換x和y,否則不交換
(3)如果x>z,則交換x和z,否則不交換
(4)如果y>z,則交換y和z,否則不交換。
(5)最后輸出x、y、z

#E3-3-1.py
x,y,z=eval(input("輸入3個(gè)數(shù)(用逗號(hào)分隔):"))
if x>y:
  x,y=y,x
if x>z:
  x,z=z,x
if y>z:
  y,z=z,y
print(x,y,z)

#E3-3-2.py
x,y,z=eval(input("輸入3個(gè)數(shù)(用逗號(hào)分隔):"))
if x>y:
  x,y=y,x
if y>z:
  y,z=z,y
if x>y:
  x,y=y,x
print(x,y,z)

程序運(yùn)行結(jié)果
輸入3個(gè)數(shù)(用逗號(hào)分隔):5,3,7
3 5 7

【例3-4】輸入腋下體溫值t,根據(jù)如下情況分別輸出:

t<36.1輸出:您的體溫偏低
36.1<=t<=37.2 輸出:您的體溫正常
37.3<t輸出:您的體溫偏高

#E3-4.py
t=eval(input("請(qǐng)輸入體溫值:"))
if t<36.1:
  print("您的體溫偏低")
if 36.1<=t<=37.2:
  print("您的體溫正常")
if 37.3<t:
  print("您的體溫偏高")

程序運(yùn)行結(jié)果
請(qǐng)輸入體溫值:35
您的體溫偏低
請(qǐng)輸入體溫值:36.7
您的體溫正常
請(qǐng)輸入體溫值:38.5
您的體溫偏高

3.2 random庫

random庫

  • 是Python的一個(gè)標(biāo)準(zhǔn)庫,包含多種生成偽隨機(jī)數(shù)的函數(shù)
  • 該庫中的大部分函數(shù)都基于random.random( )函數(shù)
  • prandom.random( )函數(shù)使用梅森旋轉(zhuǎn)算法(Mersenne twister)生成偽隨機(jī)數(shù)。
  • 使用random庫的功能前,需要先導(dǎo)入random庫

為什么是偽隨機(jī)數(shù)?

隨機(jī)數(shù)隨機(jī)事件是不確定性的產(chǎn)物,其結(jié)果是不可預(yù)測(cè)、產(chǎn)生之前不可預(yù)見
無論計(jì)算機(jī)產(chǎn)生的隨機(jī)數(shù)看起來多么“隨機(jī)”,它們也不是真正意義上的隨機(jī)數(shù)
因?yàn)橛?jì)算機(jī)是按照一定算法產(chǎn)生隨機(jī)數(shù)的,其結(jié)果是確定的、可預(yù)見的、稱為“偽隨機(jī)數(shù)”。

random庫的常用函數(shù)

函數(shù) 說明
random() 生成一個(gè)[0.0,1.0)之間的隨機(jī)小數(shù)
randint(a,b) 生成一個(gè)[a,b]之間的整數(shù)
uniform(a,b) 生成一個(gè)[a,b]之間的隨機(jī)小數(shù)
randrange(start,stop[,step]) 生成一個(gè)[start,stop]之間以step為步數(shù)的隨機(jī)整數(shù)
seed(a=None) 初始化隨機(jī)數(shù)種子,默認(rèn)值為當(dāng)前系統(tǒng)時(shí)間,一般用一個(gè)整數(shù)作為隨機(jī)數(shù)種子,如seed(125),seed(200)等

只要種子相同,每次生成的隨機(jī)數(shù)也相同,這樣便于測(cè)試和同步數(shù)據(jù)

>>> import random
>>> random.random()
0.5849568047225475
>>> random.uniform(10,20)
15.996127922390558
>>> random.randint(0,10)
8
>>> random.seed(100)
>>> random.randint(0,10)
2
>>> random.randint(0,10)
7

>>> from random import *
>>> random()
0.45492700451402135
>>> uniform(10,20)
17.70783805659022
>>> randint(0,10)
6
>>> seed(100)
>>> randint(0,10)
2
>>> randint(0,10)
7

【例3-5】游戲猜數(shù)字:隨機(jī)產(chǎn)生一個(gè)0-10間的整數(shù),玩家通過鍵盤輸入一個(gè)數(shù)競(jìng)猜,若猜中,則提示“恭喜你猜對(duì)啦”,否則什么也不提示

分析:
(1)隨機(jī)產(chǎn)生0-10間的整數(shù)賦給變量num
(2)通過鍵盤輸入一個(gè)數(shù)賦給變量x
(3)如果 x== num,輸出“恭喜你猜對(duì)啦”

#E3-5.py
from random import *
num=randint(0,10)
x=int(input("請(qǐng)輸入一個(gè)數(shù):"))
if num==x:
  print("恭喜你猜對(duì)啦!")
#print("隨機(jī)數(shù)是:",num)

【例3-6】登錄程序:用戶通過鍵盤輸入用戶名和密碼,如果輸入的用戶名為空,輸出“用戶名不能為空”;如果輸入的密碼為空,輸出“密碼不能為空”;如果輸入的用戶名為“abc”,并且密碼為”123”,輸出“歡迎進(jìn)入本系統(tǒng)”,否則什么也提示

分析:
(1)通過鍵盤輸入用戶名賦給userName,輸入密碼賦給passWord
(2)如果輸入的用戶名為空,輸出“用戶名不能為空”
(3)如果輸入的密碼為空,輸出“密碼不能為空”
(4)如果輸入的用戶名為“abc”,并且密碼為“123”,輸出“歡迎進(jìn)入本 系統(tǒng)”

#E3-6.py
#登錄程序
userName=input("請(qǐng)輸入用戶名:")
passWord=input("請(qǐng)輸入密碼:")
if userName=="":
  print("用戶名不能為空")
if passWord=="":
  print("密碼不能為空")
if userName=="abc" and  \ 
passWord=="123":  # \ 為續(xù)行符
  print("歡迎進(jìn)入本系統(tǒng)")
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、前言 學(xué)習(xí)就是一個(gè)不斷的自下而上,自上而下的過程。 前段時(shí)間,學(xué)著用python實(shí)現(xiàn)網(wǎng)站的數(shù)據(jù)爬取,隱約get...
    Hobbit的理查德閱讀 4,989評(píng)論 0 3
  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,715評(píng)論 0 5
  • 在C語言中,五種基本數(shù)據(jù)類型存儲(chǔ)空間長(zhǎng)度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來閱讀 4,044評(píng)論 0 2
  • 程序的流程圖 a程序的基本結(jié)構(gòu) 程序由三種基本結(jié)構(gòu)組成: 順序結(jié)構(gòu) 分支結(jié)構(gòu) 循環(huán)結(jié)構(gòu) 這些基本結(jié)構(gòu)都有一個(gè)入口和...
    井上皓閱讀 2,324評(píng)論 0 0
  • 一、程序的分支結(jié)構(gòu) 1、單分支結(jié)構(gòu) 根據(jù)判斷條件結(jié)果而選擇不同向前路徑的運(yùn)行方式 if <條件>: <...
    墨小涼閱讀 521評(píng)論 0 0

友情鏈接更多精彩內(nèi)容