Python語(yǔ)言程序設(shè)計(jì)實(shí)訓(xùn)題目及答案_第1頁(yè)
Python語(yǔ)言程序設(shè)計(jì)實(shí)訓(xùn)題目及答案_第2頁(yè)
Python語(yǔ)言程序設(shè)計(jì)實(shí)訓(xùn)題目及答案_第3頁(yè)
Python語(yǔ)言程序設(shè)計(jì)實(shí)訓(xùn)題目及答案_第4頁(yè)
Python語(yǔ)言程序設(shè)計(jì)實(shí)訓(xùn)題目及答案_第5頁(yè)
已閱讀5頁(yè),還剩56頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1.5實(shí)訓(xùn)I

1.5.1實(shí)訓(xùn)1

一、實(shí)訓(xùn)目的

1.了解Python運(yùn)行原理、注釋的使用

2.掌握Python的編碼規(guī)范

3.掌握Python的輸入與輸出的寫(xiě)法

4.掌握Python變量與標(biāo)識(shí)符的運(yùn)用

5.能夠利用Python語(yǔ)言基礎(chǔ)編寫(xiě)簡(jiǎn)單的Python代碼

二、單元練習(xí)

(一)選擇題

1.下列用戶標(biāo)識(shí)符中合法的是(C)

A.2name、length!>_elB.m_a>name>#int

C.m_Narne>length1._nameD._nanie、Gcn$2、length1

2.關(guān)于標(biāo)識(shí)符,下列說(shuō)明錯(cuò)誤的是(B)

A.標(biāo)識(shí)符可以由字母、數(shù)字、下劃線組成

B.標(biāo)識(shí)符必須由字母、下劃線、數(shù)字開(kāi)始

C.標(biāo)識(shí)符大小寫(xiě)敏感(不同)

D.標(biāo)識(shí)符不可以使用Python的關(guān)鍵字

3.將python中的.py文件轉(zhuǎn)換為.pyc文件的組件為(B)

A.編輯器B,編譯器C.虛擬機(jī)D.連接器

(二)填空題

1.Python由解釋器、編譯器和虛擬機(jī)三個(gè)主要部分組成。

2.Python程序設(shè)計(jì)中一行可以寫(xiě)條語(yǔ)句,每條語(yǔ)句以換行結(jié)束。

3.Python程序設(shè)計(jì)的注釋是以2開(kāi)頭,也可以用(三個(gè)引號(hào))符號(hào)代替注釋,注

釋對(duì)程序的執(zhí)行不起任何作用。

4.編寫(xiě)Python語(yǔ)言,其擴(kuò)展名為.py,編譯后生成的文件擴(kuò)展名為rye.

5.Python3的數(shù)字類型分為int、long、float、complex等子類型。

6.可以使用八—符號(hào)把一行過(guò)長(zhǎng)的Python語(yǔ)句分解成幾行。

7.Python2中使用#coding:utf-8支持中文編碼。

(三)名詞解釋

1.解釋器:用來(lái)運(yùn)行語(yǔ)句O

2.編譯器:將.py文件轉(zhuǎn)換成.pyc文件o

3.虛擬機(jī):用來(lái)運(yùn)行.pyc文件o

三、實(shí)訓(xùn)任務(wù)

任務(wù)1:【安裝Python】

1.Python官方網(wǎng)站下載并安裝python3.6msi包。

2.安裝pycharmGUI開(kāi)發(fā)環(huán)境。

3.配置Python環(huán)境變量,并能成功在cmd命令下進(jìn)行Python的代碼運(yùn)行。

任務(wù)2:【打印】

編寫(xiě)一個(gè)簡(jiǎn)短的程序,打印下面內(nèi)容:你的姓名、生日以及你最喜歡的顏色。具體格式

如卜所示:

?Je????*?

你的姓名

生日

你最喜歡的顏色

sjc5^Csjc5^C?J?5^

程序編寫(xiě)于下方

name=,張三'

birthday='20(X)-l-r

color=,藍(lán)色,

prinl('********************************')

print('姓名:{}'.format(name))

print,生日:{}'.format(birthday))

prints最喜歡的顏色:{},.formai(81or))

任務(wù)3:【求直角三角形的面積】

輸入直角三角形的三條邊,三條邊為整型,計(jì)算其面積,結(jié)果以浮點(diǎn)型輸出。

程序編寫(xiě)于下方

frommathimportsqrl

a=int(input('請(qǐng)輸入三角形邊a:'))

b=int(input(,請(qǐng)輸入三角形邊b:')i

c=int(input(,請(qǐng)輸入三角形邊c:'))

p=(a+b+c)/2

ifa+b>canda-b<c:

s=sqrt(p*(p-a)*(p-b)*(p-c))

printC三角形的面積為:{『.format(s))

else:

print。無(wú)法構(gòu)成三角形,)

任務(wù)4:【圓形的周長(zhǎng)】

輸入圓的直徑,計(jì)算其面積(pi=3.14)

程序編寫(xiě)于下方

1=int(inputC請(qǐng)輸入圓形直徑))

pi=3.14s=pi*(1/2)**2

print,圓形的面積為:{}〔format(s))

四、拓展任務(wù)

任務(wù)1:【梯形的面積】

輸入梯形的上底,下底和高,計(jì)算梯形(trapezoid)面積。

程序編寫(xiě)于下方

top=int(inputC請(qǐng)輸入梯形上底1))

base=int(input(,請(qǐng)輸入梯形下底:))

h=int(input('請(qǐng)輸入梯形高:1))

s=(top+base)*h/2

printC梯形的面積為:{F.format(s))

任務(wù)2:【菱形的面積】

輸入菱形的高和底,計(jì)算其面積(公式:菱形二底義高)

程療編寫(xiě)于下方

base=int(input('請(qǐng)輸入菱形底:'))

h=int(inputC請(qǐng)輸入菱形高

s=base*h

printC梯形的面積為:{『.fonnat(s))

1.5.2實(shí)訓(xùn)2

一、實(shí)訓(xùn)目的

1.了解值與類型、運(yùn)算符和不同類型的混合計(jì)算

2.掌握字符串的連接與倍增

3.掌握將數(shù)值轉(zhuǎn)換成字符串

4.掌握Python模塊的導(dǎo)入

5.能夠利用Python語(yǔ)言基礎(chǔ)編寫(xiě)簡(jiǎn)單的Python代碼

二、單元練習(xí)

(一)選擇題

1.下列選項(xiàng)中,不是int整型數(shù)據(jù)的是(D)

A.160B.010C.-78D.0x234

2.下列選項(xiàng)中,不是實(shí)型數(shù)據(jù)的是(D)

A.0.0B.20.12C.2O.le+18D.0x234

3.下面哪個(gè)不是Python合法的變量名(B)

A.int32B.40XLC.selfD._name.

4.Python不支持的數(shù)據(jù)類型有(A)

A.charB.intC.floatD.list

5.1*50*2.54,結(jié)果為(C)

A.整型B.布爾型C.浮點(diǎn)型D.復(fù)數(shù)

(二)填空題

1.若定義a=1(),執(zhí)行printtype(a)后,結(jié)果為ini

2.若定義a=10.(),執(zhí)行printtype(a)后,結(jié)果為float->

3.三種基本的程序設(shè)計(jì)結(jié)構(gòu)為順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)

S__

4.圓的面積公式s=pi*F,寫(xiě)成Python語(yǔ)言表達(dá)式為s=pi*rA2

5.若定義a=97,執(zhí)行print(n+8+3)后,結(jié)果為a83。

6.若定義a=97,執(zhí)行print(a+8+3)后,結(jié)果為報(bào)錯(cuò)。

7.若定義a=97,執(zhí)行print(str(a)+8+3)后,結(jié)果為9783。

8.若定義a=,D1執(zhí)行print(a*10)后,結(jié)果為DDDDDDDDDD。

(三)名詞解釋

1.ASCII編碼:是基于拉丁字母的一套電腦編碼系統(tǒng),主要用于顯示現(xiàn)代英君和其他西

歐語(yǔ)言。它是現(xiàn)今最通用的信息交換標(biāo)準(zhǔn),并等同于國(guó)際標(biāo)準(zhǔn)ISO/IEC646o

2.程序調(diào)試:將編制的程序投入實(shí)際運(yùn)行前,用手工或編譯程序等方法進(jìn)行測(cè)試,修正

語(yǔ)法錯(cuò)誤和邏輯錯(cuò)誤的過(guò)程。

3.軟件測(cè)試:描述一種用來(lái)促進(jìn)鑒定軟件的正確性、完整性、安全性和質(zhì)量的過(guò)程。

4.導(dǎo)入模塊:把pylhon文件解釋一遍。

三、實(shí)訓(xùn)任務(wù)

任務(wù)1:[PyCharm中Python版本的切換】

請(qǐng)參考1213章節(jié)的兩種方法。

任務(wù)2:【換字游戲】

編寫(xiě)一個(gè)換字游戲,要求將兩個(gè)整數(shù)a和b進(jìn)行交換,然后打印出來(lái)。

程序編寫(xiě)于下方

a=int(input('請(qǐng)輸入整數(shù)a:'))

b=int(input(,請(qǐng)輸入整數(shù)b:'))

a,b=b,a

printfa:{}'.format(a))

print('b:{}'.foi~mat(b))

任務(wù)3:【數(shù)字合并】

編寫(xiě)程序,將兩個(gè)整數(shù)a和b合并成一個(gè)整數(shù)放到c里面,并打印出來(lái)。

程序編寫(xiě)于下方

a=input。請(qǐng)輸入整數(shù)a:')

b=input('請(qǐng)輸入整數(shù)b:')

c=a+b

print('c:{}'.format(c))

任務(wù)4:【隨機(jī)數(shù)的倍增】

用隨機(jī)數(shù)包產(chǎn)生一個(gè)。?20的隨機(jī)數(shù)(包括小數(shù)),在產(chǎn)生一個(gè)10~30的隨機(jī)整數(shù)作為

前面隨機(jī)數(shù)的倍增的量。

程序編寫(xiě)于下方

importrandom

a=random.unifbrm(0,20)

b=random.randint(10,30)

c=a*b

print('a={}\nb={}\nc={}'.format(a.b,c))

四、拓展任務(wù)

1:【數(shù)字合并提高】

編寫(xiě)程序,將兩個(gè)的兩位數(shù)整數(shù)a和b合并成一個(gè)整數(shù)放到c里面,合并的方式為:將a

數(shù)的十位和個(gè)位數(shù)依次放到c數(shù)的個(gè)位和百位上,將b數(shù)的十位和個(gè)位數(shù)依次放到c數(shù)的十位

和千位上。并將c打印出來(lái)。

程序編寫(xiě)于下方

a=int(inpul('請(qǐng)輸入兩位整數(shù)a:'))

b=int(input('請(qǐng)輸入兩位整數(shù)b:'))

al=a//)0

a2=a%1()

bl=b//1()

b2=b%1()

c=b2*IO(X)+a2*100+bl*10+al

print('c:{}'.format(c))

2:【求除數(shù)】

導(dǎo)入隨機(jī)數(shù)庫(kù)包random,生成隨機(jī)三個(gè)1-20的整數(shù),將三個(gè)數(shù)相除,以字符串格式輸

出,

程序編寫(xiě)于下方

importrandom

a=random.randint(1,20)

b=random.randint(l,20)

c=random.randinl(I,20)

prinl(ra/b/c={}'.format(a/b/c))

3:【代碼版本轉(zhuǎn)換】

用Python2語(yǔ)言完成實(shí)訓(xùn)任務(wù)中的任務(wù)2和任務(wù)3。

(1)編寫(xiě)一個(gè)換字游戲,要求將兩個(gè)整數(shù)a和b進(jìn)行交換,然后打印出來(lái)。

程序編寫(xiě)于下方

#coding:utf-8

a=input(情輸入整數(shù)a:')

b=input,請(qǐng)輸入整數(shù)b:')

a,b=b,a

print'a:{}'.format(a)

piint'b:{format(b)

(2)編寫(xiě)程序,將兩個(gè)整數(shù)a和b合并成一個(gè)整數(shù)放到c里面,并打印出來(lái)。

程序編寫(xiě)于下方

#coding:utf-8

a=inpulC請(qǐng)輸入整數(shù)a:')

b=input('請(qǐng)輸入整數(shù)b:')

c=str(a)+str(b)

print'c:{}'.fbrniat(c)

2.5實(shí)訓(xùn)I

2.5.1實(shí)訓(xùn)1

一、實(shí)訓(xùn)目的

1.掌握函數(shù)的定義和調(diào)用

2.學(xué)會(huì)Python的縮進(jìn)格式

3.理解形參、實(shí)參、返P1值、局部變量與全局變量

4.掌握Python的常用運(yùn)算

5.掌握Python的格式化輸出

二、單元練習(xí)

(-)選擇題

1.關(guān)于函數(shù)的目的,以下說(shuō)明不正確的是(B)

A.提高程序的執(zhí)行效率B.減少程序文件所占用的內(nèi)存

C.提高程序的可讀性D.提高程序的開(kāi)發(fā)效率

2.Python中縮進(jìn)(B)個(gè)空格

A.1B.4C.6D.2

3.Q為局部變量的是(B)

A.ReturnQB.deffun():Q=1C.Q=1D.printQ

4.關(guān)于函數(shù)名,下列說(shuō)法正確的是(B)

A.函數(shù)名必須以下劃線和數(shù)字開(kāi)頭

B.函數(shù)名可以包含任意字母、數(shù)字或下劃線的組合

C.函數(shù)名能使用任何的標(biāo)點(diǎn)符號(hào)

D.函數(shù)名不區(qū)分大小寫(xiě)

(二)填空題

1.以下程序輸出結(jié)果為(3.2)(2、3)

deffun(x,y):

x=x+y

y=x-y

x=x-y

print(x,y)

x=2

y=3

fun(x,y)

print(x,y)

2.以下程序輸出結(jié)果為(39)

deffun2():

a=10

b=20

a=3

b=9

fun2()

print(a,b)

3.以下程序輸出結(jié)果為aisLbis3,cis9

aisl,bis5,cis9

aisLbis3,cis10

ais30.bis3,cis20

deffunc(a,b=3,c=9):

print("ais%s,bis%s,cis%s"%(a,b,c))

func(l)

func(1,5)

func(l,c=10)

func(c=20,a=30)

(三)名詞解釋

1.值傳遞:_______________________________________________________

2.地址傳遞:_____________________________________________________

3.實(shí)參:_________________________________________________________

4.形參:_________________________________________________________

三、實(shí)訓(xùn)任務(wù)

任務(wù)1:【求圓形的面積】

編寫(xiě)一個(gè)函數(shù)。輸入圓形的半徑,計(jì)算其面積。

程序編寫(xiě)于下方

defcalc_circular(r):

area=3.14*r**2

returnarea

任務(wù)2:【自編一個(gè)函數(shù)包,計(jì)算正方形】

輸入正方形的邊長(zhǎng),利用函數(shù)包計(jì)算,打印出結(jié)果,

程序編寫(xiě)于下方

defcalc_rectangle(l):

area=1**2

long=1*2

returnprint('正方形的面積是:{0},周長(zhǎng)是:{1},.format(area,long))

任務(wù)3:【自編一個(gè)函數(shù)包,完成下面圖形的面積】

圖1

程序編寫(xiě)于下方

defcalc_area(r):

area=3.14*r+(2*r)**2

returnarea

圖2

程序編寫(xiě)于下方

defcalc_area(r):

area=(2*r)**2-3.14*r**2

returnarea

圖3

程序編寫(xiě)于下方

defcalc_area(r):

area=3.14*r**2-(r*2**0.5)

returnarea

四、拓展任務(wù)

任務(wù)1:【利用海倫公式求三角形面積】

編寫(xiě)一個(gè)程序,利用海倫公式求三角形面積。

海倫公式如下:

s="(p-a)(p-S)(p-c)

程序編寫(xiě)于下方

defcalc_triangle(a,b,c):

ifa+b>uanda-b<c:

p=(a+b+c)/2

s=(p*(p-a)*(p-b)*(p-c))**0.5

returns

else:

relunT無(wú)法構(gòu)成三角形’

a=im(input('請(qǐng)輸入三角形邊1:'))

b=inl(inpul('請(qǐng)輸入三角形邊2:'))

c=inl(input('請(qǐng)輸入三角形邊3:'))

print(calc_triangle(a,b,c))

3.5實(shí)訓(xùn)I

3.5.1實(shí)訓(xùn)1【分支】

一、實(shí)訓(xùn)目的

1.熟練使用Python的常用運(yùn)算

2.利用if分支語(yǔ)句編寫(xiě)Python代碼

二、單元練習(xí)

(-)選擇題

1.下列選項(xiàng)中,當(dāng)x為大于1的奇數(shù)時(shí),運(yùn)算結(jié)果為。的表達(dá)式是(C)

A.x%2==lB.x/2

C.x%2!=0D.x%2=0

2.在嵌套使用if語(yǔ)句時(shí),Python語(yǔ)言規(guī)定else總是(A)

A.和之前與其具有相同縮進(jìn)位置的if相匹配;

B.和之前與其最近的if相匹配;

C.和之前的第一個(gè)if配對(duì);

D.和之前與其最近且不帶else的if配對(duì)。

3.下列Python語(yǔ)句正確的是(D)

A.min=xifx<yelsey

B.max=x>y?x:y

C.if(x>y)printx

D.if1>2:print(uhello")

(-)填空題

1.寫(xiě)出下列表達(dá)式的值,設(shè)a=3,b=4,c=5:

表達(dá)式值

a+b>c&&b==cFalse

!(a>b)&&!c||lFalse

a<c&&c<bFalse

a<c<bFalse

a<b||c<bTrue

2.在算術(shù)運(yùn)算符(+、-、*、/、%)、關(guān)系運(yùn)算符(二二、!=、>、<、>=、<二)、邏輯運(yùn)

算符(and、or、not)和賦值運(yùn)算符(=、+=、-+、*二、/二、%二、**=、//=)中,運(yùn)算優(yōu)先級(jí)

最高的運(yùn)算符是**指數(shù),最低的運(yùn)算符not、or、and。

3.判斷一個(gè)字符是數(shù)字字符的條件表達(dá)式isdigil。

4.判斷一個(gè)字符是字母的條件表達(dá)式isalnum°

5.在Python語(yǔ)言中,用true表示邏輯“真",用false表示邏輯“假

三、實(shí)訓(xùn)任務(wù)

任務(wù)1:【猜字游戲】

編寫(xiě)一個(gè)猜字游戲,要求隨機(jī)輸入一個(gè)0-10的數(shù)字,提供1次猜字機(jī)會(huì)。

程序編寫(xiě)于下方

importrandom

secret=random.randint(0,10)

print("請(qǐng)你猜一猜從1到10的數(shù)字”)

print("你只有一次機(jī)會(huì)”)

guess=eval(input("請(qǐng)輸入你猜的數(shù)字:"))

ifguess<secret:

prim('太小了')

elifguess>secret:

printC太大了)

else:

print。答對(duì)了)

prinl('正確答案是:'+str(secret))

任務(wù)2:【學(xué)生成績(jī)等級(jí)評(píng)定】

根據(jù)學(xué)生考試成績(jī),確定成績(jī)等級(jí),成績(jī)與等級(jí)的對(duì)應(yīng)關(guān)系如下表所示。

成績(jī)(score)等級(jí)(level)

score>=90A

80<=score<90B

70<=score<80C

60<=score<70D

Scorc<60F

程序編寫(xiě)于下方

score=eval(inputC請(qǐng)輸入你的考試成績(jī):'))

ifscore>=90:

level='A'

print(你的考試等級(jí)為:Tlevel)

elif(score>=80)and(score<90):

level=B

printC你的考試等級(jí)為:,+level)

elif(score>=70)and(score<80):

level='C

prini('你的考試等級(jí)為:'+level)

elif(score>=60)and(score<70):

level='D'

printC你的考試等級(jí)為:,+level)

else:

level='E'

print(你的考試等級(jí)為:,+level)

任務(wù)3:【輸入字符判斷】

鍵盤(pán)輸入一個(gè)字符,判斷該字符是數(shù)字、字母、空格還是其他。

程序編寫(xiě)于下方

word=input,請(qǐng)輸入你的字符:,)

ifword.isdigit():

printC你輸入的是數(shù)字

elifword.isalpha():

printC你輸入的是字母)

elifword.isspace():

prim,你輸入的是空格)

else:

print('你輸入的是其他')

任務(wù)4:【身體質(zhì)量指數(shù)判斷】

身體質(zhì)量指數(shù)(BMI)是指用體重除以身高的平方得出的數(shù)字,它是目前國(guó)際常用的衡量

人體胖瘦程度以及是否健康的一個(gè)標(biāo)準(zhǔn),具體如下。

BMI值<18.518.5-24.925.0?27.9>27.9

身體情況消瘦正常超重肥胖

程序編寫(xiě)于下方

high=eval(input(,請(qǐng)輸入你的身高:))

wight=eval(inpul(,請(qǐng)輸入你的體重:))

bmi=wight/(high**2)

ifbmi<18.5:

print('bmi='+str(bmi))

print。偏瘦)

elif(bmi>=18.5)and(bmi<=24.9):

print('bmi='+str(bmi))

print。正常)

elif(bmi>=25)and(bmi<=27.9):

print('bmi='+str(bmi))

prime偏胖)

else:

print('bmi='+str(bmi))

printC肥胖,)

任務(wù)5:【企業(yè)發(fā)放獎(jiǎng)金判斷】

企業(yè)發(fā)放的獎(jiǎng)金根據(jù)利潤(rùn)提成。利潤(rùn)⑴低于或等于10萬(wàn)元時(shí),獎(jiǎng)金可提10%;利潤(rùn)高于

1()萬(wàn)元,低于2()萬(wàn)元時(shí),低于1()萬(wàn)元的部分按10%提成,高于10萬(wàn)元的部分,可提成7.5%;

2()萬(wàn)到4()萬(wàn)之間時(shí),高于20萬(wàn)元的部分,可提成5%;40萬(wàn)到60萬(wàn)之間時(shí)高于4()萬(wàn)元的

部分,可提成3%;6()萬(wàn)到10()萬(wàn)之間時(shí),高于60萬(wàn)元的部分,可提成1.5%,高于10()萬(wàn)元

時(shí),超過(guò)100萬(wàn)元的部分按1%提成,從鍵盤(pán)輸入當(dāng)月利潤(rùn)L求應(yīng)發(fā)放獎(jiǎng)金總數(shù)?

程序編寫(xiě)于下方

i=eval(input('Pleaseinputprofitsofthemonth:*))

ifi<=100000:

money=i*0.1

elif(i>100000)and(i<=200000):

money=100000*0.1+(i-100000)*0.075

elif(i>200000)and(i<=400000):

money=100000*0.1+100000*0.075+(i-200000)*0.05

elif(i>400000)and(i<=600000):

money=100000*0.1+100000*0.075+200000*0.05+(i-400000)*0.03

elif(i>600000)and(i<=1000000):

money=100000*0.1+100000*0.075+200000*0.05+200000*0.03+(i-600000)*

0.015

else:

money=100000*0.1+100000*0.075+200000*0.05+200000*0.03+400000*0.015

+(i-1000000)*0.001

print('Thebonusis:'+str(money))

任務(wù)5:【月份判斷】

使用if結(jié)構(gòu)寫(xiě)一個(gè)程序,判斷輸入的月份應(yīng)該有多少天。(2月定為28天)。

程序編寫(xiě)于下方

month=input('請(qǐng)輸入月份(例:一月):,)

if(month==1一月'):

print(str(month)+'應(yīng)該有31天')

elif(month=="二月'):

print(str(month)+'應(yīng)該有28天)

elif(month=='三月'):

print(str(month)+,應(yīng)該有31天)

elif(month二二‘四月'):

prinl(str(month)+應(yīng)該有30天)

elif(month=='五月'):

print(str(month)+'應(yīng)該有31天)

elif(month=='六月'):

print(str(month)+'應(yīng)該有30天)

elif(month=='七月)

print(str(month)+'應(yīng)該有31天)

elif(month二二'八月'):

print(str(month)+'應(yīng)該有31天)

elif(month=='九月'):

print(str(month)+'應(yīng)該有30天')

elif(month==,十月)

print(str(month)+'應(yīng)該有31天)

elif(month==H—月'):

print(str(month)+'應(yīng)該有3()天')

elif(month=='十二月'):

print(str(month)+'應(yīng)該有31天')

四、拓展任務(wù)

拓展任務(wù)1:【驗(yàn)證碼】

一般網(wǎng)站在登錄時(shí),都會(huì)進(jìn)行“驗(yàn)證碼”輸入。在輸入驗(yàn)證碼字符時(shí),無(wú)論用戶輸入的

是大寫(xiě)字母還是小寫(xiě)字母,驗(yàn)證時(shí)都會(huì)忽略大小寫(xiě)的差異,認(rèn)為是相同的字符。這說(shuō)明系統(tǒng)已

經(jīng)對(duì)驗(yàn)證碼中的字符和用戶輸入的字符進(jìn)行了大小寫(xiě)轉(zhuǎn)換,然后進(jìn)行匹配。那么這種轉(zhuǎn)換是如

何實(shí)現(xiàn)的?請(qǐng)編程實(shí)現(xiàn)“從鍵盤(pán)輸入一組字符,無(wú)論大小寫(xiě),都轉(zhuǎn)換成小寫(xiě)形式輸出”。

程序編寫(xiě)于下方

string=input('Plcascinputyourtext:*)

print(string.lower())

拓展任務(wù)2:【商品促銷】

某淘寶商場(chǎng)采用購(gòu)物打折的方式進(jìn)行促銷。具體促銷方式如下:

購(gòu)買金額折扣

1000元及以上九折

2000元及以上八折

3000元及以上七折

請(qǐng)編寫(xiě)程序,當(dāng)輸入顧客實(shí)際購(gòu)物金額,計(jì)算并輸出優(yōu)惠價(jià)。

程序編寫(xiě)于下方

money=eval(input,請(qǐng)輸入你的購(gòu)物金額

if(money>=1000)and(money<2000):

level=0.9

cash=money*level

print。折后金額為:'+str(cash))

elif(money>=2000)and(money<3000):

level=0.8

cash=money*level

print('折后金額為:'+str(cash))

else:

level=0.7

cash=money*level

printC折后金額為:'+str(cash))

拓展任務(wù)3:【閏年】

輸入一個(gè)年份,求它是否是閏年?閏年的條件是:能被4整除不能被100整除或者能被

400整除(y%4==0andy%100!=0ory%400==0)

程序編寫(xiě)于下方

year=eval(input('請(qǐng)輸入年份:'))

while(l):

ifyear>=1000andyear<=9999:

if(year%4==0rndyear%100!=0)or(ycar%100==0):

prime該年為閏年)

else:

printC該年不是閏年)

break

else:

year=eval(inputC請(qǐng)輸入正確年份:,))

拓展任務(wù)4:【月份判斷】

使用if結(jié)構(gòu)寫(xiě)一個(gè)程序,判斷輸入的月份應(yīng)該有多少天。(2月根據(jù)是否是閏年判斷是否

28天還是29天)。

程序編寫(xiě)于下方

defJudgeYear(year):

flag=False

if(year%4==0andyear%100!=0)or(year%100==0):

flag=True

prinlC該年為閏年,)

returnflag

defrestr(string,p,c):

new=[]

forsinstring:

new.appcnd(s)

newfp]=c

returnH.join(new)

Month={,011:31/02':28,'03':31/04':30,'05,:31,'O6':30,'071:31,

'08':31/09':30,'10':31JI-30/121:31)

date=input('請(qǐng)輸入年月(例2018.01):,)

iflen(date)==6anddate[5J!="0":

date+=date[5]

date=restr(date,5,'O')

ifJudgeYear(eval(date[0:4])):

Month['()2']=29

printC本月應(yīng)該有%d天'%Month[date[5:7]])

3.5.2實(shí)訓(xùn)2【循環(huán)】

一、知識(shí)點(diǎn)清單

1、掌握while循環(huán)語(yǔ)句使用方法

2、掌握f(shuō)or循環(huán)語(yǔ)句使用方法

3.能夠利用流程控制語(yǔ)句解決實(shí)際編程問(wèn)題

二、單元練習(xí)

(-)填空題

1.如果循環(huán)無(wú)休止的進(jìn)行下去,這種狀態(tài)稱為死循環(huán).

2.使用循環(huán)輸出1234568910,補(bǔ)充下面的填空

count=l

Whilecount<=10:

ifcount!=7:

pass

print(count)

count+=l

3.循環(huán)可以嵌套3-5層。

三、實(shí)訓(xùn)任務(wù)

任務(wù)1:【猜字游戲】

編寫(xiě)一個(gè)猜字游戲,要求隨機(jī)輸入一個(gè)0-100的數(shù)字,提供6次猜字機(jī)會(huì)。

程序編寫(xiě)于下方

importrandom

key=random.randint(l,10)

c=0

c2=6

whilec<3:

word=eval(inputC猜一猜1-10的數(shù)字,請(qǐng)輸入答案,還剩{}次機(jī)會(huì):'.format(c2-c)))

c+=1

ifkey>word:

print('太小了’)

elifkey<word:

printC太大了)

else:

printC你在第{}次答對(duì)了次rmat(c))

break

ifkey!=word:

print.很遺憾你猜錯(cuò)了)

print。正確答案是:,+str(key)i

任務(wù)2:【統(tǒng)計(jì)字符分類】

輸入一行字符,統(tǒng)計(jì)出其中英文字母、空格、數(shù)字以及其他字符的個(gè)數(shù),并打印出來(lái)。

程序編寫(xiě)于下方

word=inputC請(qǐng)輸入你的文本:,)

num_alpha=0

num_digit=0

num_space=0

num_other=0

foriinword:

ifi.isalpha():

num_alpha+=1

elifi.isdigit():

num_digit+=1

elifi.isspace():

num_space+=1

else:

numother+=1

printC該字符串共有{0}個(gè)字母,{1}個(gè)數(shù)字,{2}個(gè)空格,{3}個(gè)其他字符

,.format(num_alpha,num_digit,num_space,num_other))

任務(wù)3:【水仙花數(shù)】

輸出所有的“水仙花數(shù)”。“水仙花數(shù)”是指一個(gè)三位數(shù),其各位數(shù)字立方和等于該數(shù)

本身。例如:153=13+53+33,該數(shù)即為水仙花數(shù)。

程序編寫(xiě)于卜方

num=0

foriinrange(100,1000):

c=i%10

b=i//10%10

a=i//100

ifa**3+b**3+c**3==

print(sgi))

num+=1

print('共{M、'.format(num))

任務(wù)4:【用數(shù)字組數(shù)】

用數(shù)字1、2、3、4進(jìn)行組數(shù),能組出多少個(gè)互不相同且不重復(fù)數(shù)字的三位數(shù)?并打印出

來(lái),

程序編寫(xiě)于下方

num=0

foriinrange(1,5):

fbrjinrange(1,5):

forkinrange(1,5):

if(i!=j)and(j!=k)and(i!=k):

print(i.j,k)

num+=1

print。共{}j'.format(num))

任務(wù)5:【評(píng)委評(píng)分】

分別利用while語(yǔ)句和for語(yǔ)句完成如下功能。

某比賽有7個(gè)評(píng)委,選手的得分為這7個(gè)評(píng)委的評(píng)分總和,請(qǐng)編程實(shí)現(xiàn)統(tǒng)計(jì)功能。

程序編寫(xiě)于下方

while方式:

Ssum=0

c=0

whilec<7:

score=eval(input('{}號(hào)評(píng)委請(qǐng)輸入評(píng)分:’.format(c+1)))

Ssum=Ssum+score

c+=1

print('該選手得分為:{}'.fonnat(Ssum))

程序編寫(xiě)于下方

for方式:

Ssum=0

foreinrange(l,8):

score=cval(input(']}號(hào)評(píng)委請(qǐng)輸入評(píng)分:’.format(c)))

Ssum=Ssum+score

print('該選手得分為:(}\fonnat(Ssum))

任務(wù)6:[break語(yǔ)句和continue語(yǔ)句的使用】

輸入若干字符,對(duì)輸入的英文字母原樣輸出,其他字符不輸出,直到輸入回車鍵時(shí)結(jié)束。

程序編寫(xiě)于下方

text="

word="

while1:

word二inputC請(qǐng)輸入文本:1)

foriinword:

ifi.isalpha():

text=text+i

print(text)

text="

ifword==

break

四、拓展任務(wù)

任務(wù)1:【韓信點(diǎn)兵】

淮安民間傳說(shuō)著一則故事一一“韓信點(diǎn)兵”。話說(shuō)韓信帶1500名兵士打仗,戰(zhàn)死四五百

人,于是韓信要求士兵們先后站3人一排,多出2人;站5人一排,多出4人;站7人一排,

多出6人。韓信很快說(shuō)出人數(shù):1049。

現(xiàn)在給你3個(gè)隊(duì)伍的多出人數(shù),分別為非負(fù)整數(shù)a,b,c,請(qǐng)計(jì)算軍隊(duì)的總?cè)藬?shù)?

程序編寫(xiě)于下方

a=eval(input(,請(qǐng)輸入3人一排多出幾人:,))

b=eval(input(,請(qǐng)輸入5人一排多出幾人:’))

c=eval(input(,請(qǐng)輸入7人一排多出幾人:1))

flag=True

foriinrange(100,1000):

if(i%3==a)and(i%5==b)and(i%7==c):

printC共有{}人:format(i))

flag=False

ifflag:

prinlC無(wú)符合人數(shù)》

任務(wù)2:【數(shù)數(shù)游戲】

有n個(gè)人圍成一圈,順序排號(hào)。從第一個(gè)人開(kāi)始報(bào)數(shù),凡報(bào)到5的人退出圈子,問(wèn)最后

留下的是原來(lái)第幾號(hào)。

程序編寫(xiě)于下方

defJudgePeople(x):

fbriinstr(x):

ifi=='5':

returnTrue

break

returnFalse

“'判斷傳入?yún)?shù)是否包含5,若包含5則返回True,否則返回False"

people二eval(input。請(qǐng)輸入人數(shù):,))

num=people

listP=[0]

foriinrange(pcoplc-1):

listP.append(O)

word=1

j=0

whilepeople>1:

j=j%num

iflistP[j]!=u:

listP[j]=word

ifJudgePeople(listP|j]):

listPU]二”

people-=1

word=0

word+=1

j+=1

print(listP)

print,最后一個(gè)人的編號(hào)是:{}1fonnat((listP.index(4)+l)))

4.5實(shí)訓(xùn)I

4.5.1實(shí)訓(xùn)1【列表】

一、實(shí)訓(xùn)目的

1.了解列表基本操作

2.掌握列表的截取與拼接

3.掌握列表的賦值機(jī)制

4.學(xué)會(huì)列表推導(dǎo)式的應(yīng)用

二、單元練習(xí)

(-)選擇題

1.Python列表不包含了以下哪個(gè)內(nèi)置函數(shù)(D)

A.len()B.max()C.min()D.tuple()E.list()

2.列表中可以放多少個(gè)字符串(C)

A.lB.255C.無(wú)限個(gè)D.由用戶自己定義

(二)填空題

1.已知tmp二rDeris?Weng:2018,2019],請(qǐng)?zhí)顚?xiě)下面的結(jié)果。

tmp[1]=Weng

tmp[-11=2019

tmp[:2]二['Deris?Weng']

tmpl::2]二['Deris,2018|

2.請(qǐng)?zhí)顚?xiě)Pyihon表達(dá)式對(duì)應(yīng)的結(jié)果。

Python表達(dá)式結(jié)果

lend1,2,3,4,5])5

[1,2,3]+[4,5,6,7][1,2,3,4,55,7]

['123']*4[123,123,123,123]

3in[1,2,33,4,5]false

forxin[1,2,3,4]:1

pnnt(x)2

3

4

三、實(shí)訓(xùn)任務(wù)

任務(wù)1:【列表創(chuàng)建的基本操作】

I、創(chuàng)建1個(gè)空列表alisi(用兩種方法實(shí)現(xiàn))

程序編寫(xiě)于下方

alist=[]

blist=list()

print(alist)

print(blist)

2、創(chuàng)建一個(gè)長(zhǎng)10000的列表blist(列表元素內(nèi)容為1開(kāi)始的整數(shù))

程序編寫(xiě)于下方

alist=[i+Iforiinrange(10(X)())]

print(alist)

print(len(alist))

3、創(chuàng)建一個(gè)長(zhǎng)10000的列表clist(列表元素內(nèi)容均為1)

程序編寫(xiě)于下方

alist=[1foriinrange(1()()()())]

print(alist)

print(len(alist))

4、編寫(xiě)程序,用戶輸入一個(gè)列表和2個(gè)整數(shù)作為下標(biāo),然后使用切片獲取并輸出列表中

介于2個(gè)下標(biāo)之間的元素組成的子列表。例如用戶輸入[1.2.3.4.5.6]和2,5,程序輸出[3.4.5.

6]c

程序編寫(xiě)于下方

alist=[1,2,3,4,5,6,7,8]

a=eval(input('Ffe1:'))

b=eval(input(,下標(biāo)2:,))

print(alist)

print(alist[a:h+I])

任務(wù)2:【列表截取與拼接】

編寫(xiě)下列代碼,觀察結(jié)果,并說(shuō)明原因。

I1=[iforiinrange(0,15)J

2print(U:⑵)

結(jié)果:

1()2441

I1=[iforiinrange(0,15)l

2print。[::-2])

結(jié)果:

[14,12JO,&6,4,2.01

說(shuō)明原因:

第一個(gè)是從0到15間隔“2”取值,第二個(gè)是從15到0間隔“2”取值

任務(wù)3:【二維列表】

編寫(xiě)下列代碼,觀察結(jié)果。

list_2d=[[0foriinrange(5)]foriinrange(5)]

2list_2d[0].append(3)

3list_2d[0].append(5)

4list_2d⑵.append⑺

5print(list2d)

結(jié)果:

[[Q0,Q0,0、3,5]JO,0、0,0,0]JO,0a0,0、0,7]JO.0,0.0a0]JO,0、0,0a0]]

任務(wù)4:【列表的賦值機(jī)制】

寫(xiě)出下列語(yǔ)句執(zhí)行后的垢果。

結(jié)果為:LL2A31rl.2.3ML2,3U1.2.3]______________________________________________________

繼續(xù)執(zhí)行如下語(yǔ)句:

Ib[0]='b'

2print(a,b,c,d)

結(jié)果為:「b;2、3]「b:2,3]r,b',2,3]11,2、3]_____________________________________________

繼續(xù)執(zhí)行如下語(yǔ)句:

print(id(a),id(b),id(c),id(d))

結(jié)果為:1517100229256151710022925615171002292561517100229320_________________

繼續(xù)執(zhí)行如下語(yǔ)句:

Ic[0]=1'

2print(a,b,c,d)

結(jié)果為:[匕2、3]I'c;2,31I'c',2,3]11,2.31______________________________________________

繼續(xù)執(zhí)行如下語(yǔ)句:

Id[0]='d'

2print(a,b,c,d)

結(jié)果為:「柴2,3]「U2,3]「c',2、31「U2,31_____________________________________________

繼續(xù)執(zhí)行如下語(yǔ)句:

Iprint(id(a),id(b),id(c),id(d))

結(jié)果為:2440527569544244052756954424405275695442440527569608_________________

請(qǐng)對(duì)上述的實(shí)驗(yàn)過(guò)程進(jìn)行總結(jié):

總結(jié):可以看到a,b,c三個(gè)是同一個(gè)id值,當(dāng)改變當(dāng)中任意一列表元素的值后,三者會(huì)

同步改變。

任務(wù)5:【列表與循環(huán)的混合使用】

1輸出結(jié)果:[1lovepython,2lovepython,3lovepython,10lovepython]

程序編寫(xiě)于下方

alist=[*{:<1)lovepython'.fbrmat(i+1)foriinrange(1())]

print(alist)

2、輸出結(jié)果:[(0,0),(0,2),(2,0),(2,2)]

程序編寫(xiě)于下方

aList=[]

foriinrange(0,3,2):

fbrjinrange((),3,2):

aList.append((i,j))

print(aList)

四、拓展任務(wù)

任務(wù)1:【列表推導(dǎo)式應(yīng)用】

使用列表推導(dǎo)式生成100以內(nèi)的所有偶數(shù)。

程序編寫(xiě)于下方

aList=[iforiinrange(2,101,2)]

print(aList)

任務(wù)2:【列表推導(dǎo)式應(yīng)用2】

使用列表推導(dǎo)式實(shí)現(xiàn)矩嶼轉(zhuǎn)置。

程序編寫(xiě)于下方

aList=[[1,2,3],[1,2,3],[1,2,3]]

bList=[]

xList=[]

foriinrange(0

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論