【MOOC】《Python語言程序設(shè)計(jì)》(東北大學(xué))中國大學(xué)慕課答案_第1頁
【MOOC】《Python語言程序設(shè)計(jì)》(東北大學(xué))中國大學(xué)慕課答案_第2頁
【MOOC】《Python語言程序設(shè)計(jì)》(東北大學(xué))中國大學(xué)慕課答案_第3頁
【MOOC】《Python語言程序設(shè)計(jì)》(東北大學(xué))中國大學(xué)慕課答案_第4頁
【MOOC】《Python語言程序設(shè)計(jì)》(東北大學(xué))中國大學(xué)慕課答案_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

【MOOC】《Python語言程序設(shè)計(jì)》(東北大學(xué))中國大學(xué)慕課答案

有些題目順序不一致,下載后按鍵盤ctrl+F進(jìn)行搜索第一周:計(jì)算機(jī)和Python程序第1周單元作業(yè)1.顯示三個(gè)不同的消息題目?jī)?nèi)容:編寫程序顯示三條消息:“WelcometoPython”、“WelcometoComputerScience”和“Programmingisfun”。輸入格式:無輸出格式:無輸入樣例:無輸出樣例:WelcometoPythonWelcometoComputerScienceProgrammingisfun

答案:【print("WelcometoPython")

print("WelcometoComputerScience")

print("Programmingisfun")】單元測(cè)驗(yàn)一1.單選題:print("1",1)的輸出是()

選項(xiàng):

A、11

B、11

C、1,1

D、輸出錯(cuò)誤

答案:【11】2.單選題:計(jì)算機(jī)中信息處理和信息儲(chǔ)存用()

選項(xiàng):

A、二進(jìn)制代碼

B、十進(jìn)制代碼

C、十六進(jìn)制代碼

D、ASCII代碼

答案:【二進(jìn)制代碼】3.單選題:python源程序執(zhí)行的方式:()

選項(xiàng):

A、編譯執(zhí)行

B、包含了提前編譯的解釋執(zhí)行

C、直接執(zhí)行

D、邊編譯邊執(zhí)行

答案:【包含了提前編譯的解釋執(zhí)行】4.單選題:關(guān)于import引用,以下選項(xiàng)中描述錯(cuò)誤的是:()

選項(xiàng):

A、使用importturtle引入turtle庫

B、importturtle之后直接執(zhí)行showturtle()就可以顯示畫筆形狀

C、不引入turtle庫是無法使用庫中的函數(shù)的

D、import保留字用于導(dǎo)入模塊或者模塊中的對(duì)象

答案:【importturtle之后直接執(zhí)行showturtle()就可以顯示畫筆形狀】5.單選題:以下關(guān)于程序設(shè)計(jì)語言的描述,錯(cuò)誤的選項(xiàng)是:()

選項(xiàng):

A、Python語言是開源的

B、匯編語言是可以直接操作計(jì)算機(jī)硬件的編程語言

C、程序設(shè)計(jì)語言經(jīng)歷了機(jī)器語言、匯編語言和腳本語言三個(gè)階段

D、編譯和解釋的區(qū)別是一次性翻譯程序還是每次執(zhí)行時(shí)翻譯程序

答案:【程序設(shè)計(jì)語言經(jīng)歷了機(jī)器語言、匯編語言和腳本語言三個(gè)階段】第二周:Python程序基礎(chǔ)單元測(cè)驗(yàn)二1.單選題:以下哪個(gè)不是python中的關(guān)鍵字(保留字)()

選項(xiàng):

A、if

B、else

C、import

D、print

答案:【print】2.單選題:Python語言語句塊的標(biāo)記是()

選項(xiàng):

A、分號(hào)

B、逗號(hào)

C、縮進(jìn)

D、/

答案:【縮進(jìn)】3.單選題:下面哪個(gè)不是Python合法的標(biāo)識(shí)符()

選項(xiàng):

A、int32

B、40XL

C、self

D、__name__

答案:【40XL】4.單選題:下面代碼的輸出結(jié)果是()x=10y=3print(x%y,x**y)

選項(xiàng):

A、31000

B、130

C、330

D、11000

答案:【11000】5.單選題:下列哪個(gè)語句在Python中是非法的?

選項(xiàng):

A、x=y=z=1

B、x=(y=z+1)

C、x,y=y,x

D、x+=y

答案:【x=(y=z+1)】6.單選題:關(guān)于eval函數(shù),以下選項(xiàng)中描述錯(cuò)誤的是()

選項(xiàng):

A、eval函數(shù)的作用是將輸入的字符串轉(zhuǎn)為Python語句,并執(zhí)行該語句

B、如果用戶希望輸入一個(gè)數(shù)字,并用程序?qū)@個(gè)數(shù)字進(jìn)行計(jì)算,可以采用?eval(input(<輸入提示字符串>))?組合

C、執(zhí)行?eval("Hello")?和執(zhí)行?eval("?'Hello'?")?得到相同的結(jié)果

D、eval?函數(shù)的定義為:eval(source,?globals=None,?locals=None,?/)

答案:【執(zhí)行?eval("Hello")?和執(zhí)行?eval("?'Hello'?")?得到相同的結(jié)果】7.單選題:表達(dá)式?eval('500/10')?的結(jié)果是:()

選項(xiàng):

A、'500/10'

B、500/10

C、50

D、50.0

答案:【50.0】8.單選題:以下選項(xiàng)中符合Python語言變量命名規(guī)則的是()

選項(xiàng):

A、*i

B、3_1

C、AI!

D、Templist

答案:【Templist】9.單選題:關(guān)于賦值語句,以下選項(xiàng)中描述錯(cuò)誤的是()

選項(xiàng):

A、在Python語言中,有一種賦值語句,可以同時(shí)給多個(gè)變量賦值

B、設(shè)x="alice";y="kate",執(zhí)行x,y=y,x可以實(shí)現(xiàn)變量x和y值的互換

C、設(shè)a=10;b=20,執(zhí)行a,b=a,a+bprint(a,b)和a=bb=a+bprint(a,b)之后,得到同樣的輸出結(jié)果:1030

D、在Python語言中,“=”表示賦值,即將“=”右側(cè)的計(jì)算結(jié)果賦值給左側(cè)變量,包含“=”的語句稱為賦值語句

答案:【設(shè)a=10;b=20,執(zhí)行a,b=a,a+bprint(a,b)和a=bb=a+bprint(a,b)之后,得到同樣的輸出結(jié)果:1030】10.單選題:關(guān)于Python語言的注釋,以下選項(xiàng)中描述錯(cuò)誤的是()

選項(xiàng):

A、Python語言的單行注釋以#開頭

B、Python語言的單行注釋以單引號(hào)’開頭

C、Python語言的多行注釋可以用’’'(三個(gè)單引號(hào))開頭和結(jié)尾

D、Python語言有兩種注釋方式:?jiǎn)涡凶⑨尯投嘈凶⑨?/p>

答案:【Python語言的單行注釋以單引號(hào)’開頭】第2周單元作業(yè)1.投資額題目?jī)?nèi)容:假如你想將一筆錢以固定年利率存入賬戶。如果你希望三年之后賬戶中有5000元,你現(xiàn)在需要存入多少錢?使用下面的公式可以算出初始存款:編寫一個(gè)程序,分3行分別輸入最終金額值、百分比表示的年利率以及年數(shù),然后輸出最初存款額。輸入格式:最終金額值、百分比表示的年利率以及年數(shù),輸入下一項(xiàng)需換行輸出格式:最初存款額(注意:計(jì)算后保持原樣輸出,不要保留小數(shù)位數(shù))輸入樣例:10004.255輸出樣例:808.8639197424636

答案:【final_amount=float(input())

annual_interest_rate=float(input())/100

years=int(input())

monthly_interest_rate=annual_interest_rate/12

months=years*12

initial_deposit=final_amount/((1+monthly_interest_rate)**months)

print(initial_deposit)】2.分割數(shù)字題目?jī)?nèi)容:編寫一個(gè)程序,提示用戶輸入四位整數(shù)并以反向順序顯示。輸入格式:一個(gè)四位的整數(shù)輸出格式:四個(gè)一位整數(shù),在同一行輸出,空格分隔,結(jié)尾無空格輸入樣例:1234輸出樣例:4321

答案:【num=int(input())

digit1=num%10

digit2=(num//10)%10

digit3=(num//100)%10

digit4=num//1000

print(digit1,digit2,digit3,digit4)】第三周:數(shù)字與字符串第3周單元作業(yè)1.計(jì)算能量題目?jī)?nèi)容:編寫一個(gè)程序,計(jì)算將水從初始溫度加熱到最終溫度所需的能量。提示用戶輸入以千克計(jì)算的水量以及水的初始溫度和最終溫度。計(jì)算能量的公式是:Q=M*(finalTemperature-initialTemperature)*4184。M是按千克計(jì)的水量,溫度為攝氏溫度,熱量Q以焦耳計(jì)。輸入格式:以千克計(jì)算的水量以及水的初始溫度和最終溫度(攝氏溫度),輸入下一項(xiàng)需換行輸出格式:以焦耳計(jì)算的能量(小數(shù)點(diǎn)后保留一位)輸入樣例:55.53.510.5輸出樣例:1625484.0

答案:【M=float(input())

initialTemperature=float(input())

finalTemperature=float(input())

Q=M*(finalTemperature-initialTemperature)*4184

print("{:.1f}".format(Q))】2.找出ASCII碼的字符題目?jī)?nèi)容:編寫一個(gè)程序,接收一個(gè)ASCII碼值(一個(gè)0~127之間的整數(shù)),然后顯示它對(duì)應(yīng)的字符。輸入格式:一個(gè)0~127之間的整數(shù)輸出格式:一個(gè)字符輸入樣例:97輸出樣例:a

答案:【ascii_value=int(input())

print(chr(ascii_value))】單元測(cè)驗(yàn)三1.單選題:關(guān)于Python語言數(shù)值操作符,以下選項(xiàng)中描述錯(cuò)誤的是()

選項(xiàng):

A、x//y表示x與y之整數(shù)商,即不大于x與y之商的最大整數(shù)

B、x**y表示x的y次冪,其中,y必須是整數(shù)

C、x%y表示x與y之商的余數(shù),也稱為模運(yùn)算

D、x/y表示x與y之商

答案:【x**y表示x的y次冪,其中,y必須是整數(shù)】2.單選題:關(guān)于Python語言的變量,以下選項(xiàng)中說法正確的是()

選項(xiàng):

A、隨時(shí)聲明、隨時(shí)使用、隨時(shí)釋放

B、隨時(shí)命名、隨時(shí)賦值、隨時(shí)使用

C、隨時(shí)聲明、隨時(shí)賦值、隨時(shí)變換類型

D、隨時(shí)命名、隨時(shí)賦值、隨時(shí)變換類型

答案:【隨時(shí)命名、隨時(shí)賦值、隨時(shí)使用】3.單選題:下列哪個(gè)語句輸出浮點(diǎn)數(shù)類型變量x保留顯示2位小數(shù)的結(jié)果是錯(cuò)誤的:()

選項(xiàng):

A、print("{%.2f}".format(x))

B、print("%.2f"%x)

C、print("{:.2f}".format(x))?

D、print(format(x,".2f"))

答案:【print("{%.2f}".format(x))】4.單選題:下面代碼的輸出結(jié)果是()x=10y=3print(divmod(x,y))

選項(xiàng):

A、(1,3)

B、3,1

C、1,3

D、(3,1)

答案:【(3,1)】5.單選題:Python?語言中,以下表達(dá)式輸出結(jié)果為11的選項(xiàng)是:()

選項(xiàng):

A、print(eval("1+1"))?

B、print(eval("1"?+?"1"))?

C、print("1+1")

D、print("1","1")

答案:【print(eval("1"?+?"1"))?】6.單選題:下列哪個(gè)不是Python支持的數(shù)據(jù)類型()

選項(xiàng):

A、char

B、int

C、float

D、str

答案:【char】7.單選題:下面代碼的輸出結(jié)果是()x=12.34print(type(x))

選項(xiàng):

A.<plex.>

B.<.>

C.<class.float.>

D.<class.bool.>

答案:【<class.float.>】8.單選題:以下選項(xiàng)中,修改turtle畫筆顏色的函數(shù)是()

選項(xiàng):

A、seth()

B、colormode()

C、bk()

D、pencolor()

答案:【pencolor()】9.單選題:以下對(duì)數(shù)值運(yùn)算操作符描述錯(cuò)誤的選項(xiàng)是:()

選項(xiàng):

A、Python提供了9個(gè)基本的數(shù)值運(yùn)算操作符

B、Python數(shù)值運(yùn)算操作符也叫做內(nèi)置操作符

C、Python數(shù)值運(yùn)算操作符需要引用第三方庫math

D、Python二元數(shù)學(xué)操作符都有與之對(duì)應(yīng)的增強(qiáng)賦值操作符

答案:【Python數(shù)值運(yùn)算操作符需要引用第三方庫math】[vk-content]10.單選題:下面代碼的執(zhí)行后x值是()x=2x*=3+5**2

選項(xiàng):

A、15

B、56

C、8192

D、13

答案:【56】第四周:分支結(jié)構(gòu)第四周單元作業(yè)1.回文數(shù)題目?jī)?nèi)容:編寫程序提示用戶輸入一個(gè)三位整數(shù),然后決定它是否是一個(gè)回文數(shù)。如果一個(gè)數(shù)從左向右和從右向左讀取是一樣的,那么這個(gè)數(shù)是回文數(shù)。輸入格式:一個(gè)三位整數(shù)輸出格式:一個(gè)字符串(輸入三位整數(shù)是否為回文數(shù)),如下xxxisapalindrome或xxxisnotapalindrome輸入樣例:321輸出樣例:321isnotapalindrome

答案:【num=int(input())

#提取百位數(shù)字

hundreds=num//100

#提取個(gè)位數(shù)字

units=num%10

ifhundreds==units:

print(f"{num}isapalindrome")

else:

print(f"{num}isnotapalindrome")】2.解線性方程題目?jī)?nèi)容:你可以使用克萊姆法則解下面的線性方程2x2系統(tǒng):編寫程序,用戶輸入a、b、c、d、e和f,然后顯示x和y的結(jié)果。如果ad-bc為零,呈現(xiàn)“Theequationhasnosolution”。輸入格式:a、b、c、d、e和f的值(逗號(hào)分隔)輸出格式:x和y的值(空格分隔,小數(shù)點(diǎn)后保留1位)輸入樣例:1.0,2.0,2.0,4.0,4.0,5.0輸出樣例:Theequationhasnosolution

答案:【importmath

a,b,c,d,e,f=map(float,input().split(','))

denominator=a*d-b*c

ifdenominator==0:

print("Theequationhasnosolution")

else:

x=(e*d-b*f)/denominator

y=(a*f-e*c)/denominator

print("{:.1f}{:.1f}".format(x,y))】單元測(cè)驗(yàn)四1.單選題:以下語句執(zhí)行后a、b、c的值是:()a="watermelon"b="strawberry"c="cherry"ifa>b:c=aa=bb=c

選項(xiàng):

A、watermelonstrawberrycherry

B、watermeloncherrystrawberry

C、strawberrycherrywatermelon

D、strawberrywatermelonwatermelon

答案:【strawberrywatermelonwatermelon】2.單選題:以下關(guān)于Python的控制結(jié)構(gòu),正確的是:()

選項(xiàng):

A、每個(gè)if條件后要使用冒號(hào):

B、在Python中,有switch-case語句

C、Python中的break表示退出分支

D、elif可以單獨(dú)使用

答案:【每個(gè)if條件后要使用冒號(hào):】3.單選題:關(guān)于Python字符編碼,以下選項(xiàng)中描述錯(cuò)誤的是()

選項(xiàng):

A、chr(x)和ord(x)函數(shù)用于在單字符和Unicode編碼值之間進(jìn)行轉(zhuǎn)換

B、print(chr(65))輸出A

C、print(ord('a'))輸出97

D、Python字符編碼使用ASCII編碼

答案:【Python字符編碼使用ASCII編碼】4.單選題:關(guān)于Python的分支結(jié)構(gòu),以下選項(xiàng)中描述錯(cuò)誤的是()

選項(xiàng):

A、分支結(jié)構(gòu)使用if保留字

B、分支結(jié)構(gòu)可以向已經(jīng)執(zhí)行過的語句部分跳轉(zhuǎn)

C、Python中if-elif-else語句描述多分支結(jié)構(gòu)

D、Python中if-else語句用來形成二分支結(jié)構(gòu)

答案:【分支結(jié)構(gòu)可以向已經(jīng)執(zhí)行過的語句部分跳轉(zhuǎn)】5.單選題:以下程序的輸出結(jié)果是:()a=30b=1ifa>=10:a=20elifa>=20:a=30elifa>=30:b=aelse:b=0print('a={},b={}'.format(a,b))

選項(xiàng):

A、a=20,b=1

B、a=30,b=30

C、a=20,b=20

D、a=30,b=1

答案:【a=20,b=1】6.單選題:以下程序的輸出結(jié)果是:()t="Python"ift>="python":t="python"else:t="None"print(t)

選項(xiàng):

A、Python

B、python

C、None

D、t

答案:【None】7.單選題:以下關(guān)于程序控制結(jié)構(gòu)描述錯(cuò)誤的是:()

選項(xiàng):

A、分支結(jié)構(gòu)中有單分支結(jié)構(gòu)和雙分支結(jié)構(gòu)

B、Python里,能用分支結(jié)構(gòu)寫出循環(huán)的算法

C、分支是三種基本結(jié)構(gòu)的一種

D、多分支也可以由分支的嵌套實(shí)現(xiàn)

答案:【Python里,能用分支結(jié)構(gòu)寫出循環(huán)的算法】8.單選題:設(shè)x=10;y=20,下列語句能正確運(yùn)行結(jié)束的是:()

選項(xiàng):

A、max=x>y?x:y

B、if(x>y)print(x)

C、ifx>ymax=x

D、ifxelse:min=y

答案:【ifxelse:min=y】9.單選題:以下關(guān)于Python的控制結(jié)構(gòu),錯(cuò)誤的是:()

選項(xiàng):

A、elif可以單獨(dú)使用

B、在Python中,沒有switch-case語句

C、每個(gè)else后要使用冒號(hào)(:)

D、每個(gè)if條件后要使用冒號(hào)(:)

答案:【elif可以單獨(dú)使用】10.單選題:下列表達(dá)式的運(yùn)算結(jié)果是:()a=100b=Falsea*b>-1

選項(xiàng):

A、False

B、1

C、0

D、True

答案:【True】第五周:循環(huán)結(jié)構(gòu)單元測(cè)驗(yàn)五1.單選題:執(zhí)行如下代碼importturtleforiinrange(1,5):turtle.forward(50)turtle.left(90)在PythonTurtleGraphics中,繪制的是()

選項(xiàng):

A、五邊形

B、三角形

C、五角星

D、正方形

答案:【正方形】2.單選題:以下程序的輸出結(jié)果是:()x=10whilex:x-=1ifnotx%2:print(x,end='')

選項(xiàng):

A、86420

B、975311

C、97531

D、864200

答案:【86420】3.單選題:關(guān)于Python循環(huán)結(jié)構(gòu),以下選項(xiàng)中描述錯(cuò)誤的是()

選項(xiàng):

A、遍歷循環(huán)中的遍歷結(jié)構(gòu)可以是字符串、range()函數(shù)等

B、break用來跳出for或者while循環(huán),脫離該循環(huán)后程序從循環(huán)代碼后繼續(xù)執(zhí)行

C、每個(gè)continue語句有能力跳出當(dāng)前層次的循環(huán)

D、Python通過for、while等保留字提供遍歷循環(huán)和無限循環(huán)結(jié)構(gòu)

答案:【每個(gè)continue語句有能力跳出當(dāng)前層次的循環(huán)】4.單選題:下面代碼的輸出結(jié)果是()forsin"HelloWorld":ifs=="W":continueprint(s,end="")

選項(xiàng):

A、Hello

B、World

C、HelloWorld

D、Helloorld

答案:【Helloorld】5.單選題:以下關(guān)于random庫的描述,正確的是:()

選項(xiàng):

A、設(shè)定相同種子,每次調(diào)用隨機(jī)函數(shù)生成的隨機(jī)數(shù)不相同

B、通過fromrandomimport*引入random隨機(jī)庫的部分函數(shù)

C、uniform(0,1)與uniform(0.0,1.0)的輸出結(jié)果不同,前者輸出隨機(jī)整數(shù),后者輸出隨機(jī)小數(shù)

D、randint(a,b)是生成一個(gè)[a,b]之間的整數(shù)

答案:【randint(a,b)是生成一個(gè)[a,b]之間的整數(shù)】6.單選題:以下程序的輸出結(jié)果是:()fornuminrange(1,4):sum*=numprint(sum)

選項(xiàng):

A、6

B、7

C、7.0

D、TypeError出錯(cuò)

答案:【TypeError出錯(cuò)】7.單選題:下面代碼的輸出結(jié)果是()foriinrange(10):ifi%2==0:continueelse:print(i,end=",")

選項(xiàng):

A、2,4,6,8,

B、0,2,4,6,8,

C、0,2,4,6,8,10,

D、1,3,5,7,9,

答案:【1,3,5,7,9,】8.單選題:以下關(guān)于循環(huán)結(jié)構(gòu)的描述,錯(cuò)誤的是:()

選項(xiàng):

A、遍歷循環(huán)使用for<循環(huán)變量>in<循環(huán)結(jié)構(gòu)>語句,其中循環(huán)結(jié)構(gòu)不能是字符串

B、使用range()函數(shù)可以指定for循環(huán)的次數(shù)

C、foriinrange(5)表示循環(huán)5次,i的值是從0到4

D、用字符串做循環(huán)結(jié)構(gòu)的時(shí)候,循環(huán)的次數(shù)是字符串的長(zhǎng)度

答案:【遍歷循環(huán)使用for<循環(huán)變量>in<循環(huán)結(jié)構(gòu)>語句,其中循環(huán)結(jié)構(gòu)不能是字符串】9.單選題:下面代碼的輸出結(jié)果是()forsin"abc":foriinrange(3):print(s,end="")ifs=="c":break

選項(xiàng):

A、aaabccc

B、aaabbbc

C、abbbccc

D、aaabbbccc

答案:【aaabbbc】10.單選題:下面代碼的輸出結(jié)果是()sum=1.0fornuminrange(1,4):sum+=numprint(sum)

選項(xiàng):

A、6

B、7.0

C、1.0

D、7

答案:【7.0】第五周單元作業(yè)1.數(shù)列求和題目?jī)?nèi)容:編寫程序求解Sn=a+aa+aaa+aaaa+...,其中a是1~9之間的一個(gè)數(shù)字,n為一正整數(shù),a和n均從鍵盤輸入。例如:輸入a為2,n為5,Sn=2+22+222+2222+22222(此時(shí)共有5個(gè)數(shù)相加)。輸入格式:a和n的值(逗號(hào)分隔)輸出格式:數(shù)列求和的結(jié)果輸入樣例:2,5輸出樣例:24690

答案:【a_str,n_str=input().split(',')

a=int(a_str)

n=int(n_str)

total=0

term=0

foriinrange(1,n+1):

term=term*10+a

total+=term

print(total)】2.找出一個(gè)整數(shù)的所有因子題目?jī)?nèi)容:編寫程序讀取一個(gè)整數(shù),然后按順序顯示它所有的最小因子,也稱之為素因子。例如:如果輸入整數(shù)120,那么輸出應(yīng)該如下所示:2,2,2,3,5。輸入格式:一個(gè)整數(shù)輸出格式:所有的最小因子(逗號(hào)分隔)輸入樣例:120輸出樣例:2,2,2,3,5

答案:【defprime_factors(n):

i=2

factors=[]

whilei*i<=n:

ifn%i:

i+=1

else:

n//=i

factors.append(i)

ifn>1:

factors.append(n)

returnfactors

num=int(input())

result=prime_factors(num)

print(','.join(str(factor)forfactorinresult))】第六周:函數(shù)單元測(cè)驗(yàn)六1.單選題:以下程序的輸出結(jié)果是:()>>>deff(x,y=0,z=0):pass>>>f(1,,3)

選項(xiàng):

A、pass

B、None

C、not

D、出錯(cuò)

答案:【出錯(cuò)】2.單選題:以下關(guān)于函數(shù)選項(xiàng)中描述錯(cuò)誤的是()

選項(xiàng):

A、函數(shù)能完成特定的功能,對(duì)函數(shù)的使用不需要了解函數(shù)內(nèi)部實(shí)現(xiàn)原理,只要了解函數(shù)的輸入輸出方式即可。

B、使用函數(shù)的主要目的是減低編程難度和代碼重用。

C、Python使用del保留字定義一個(gè)函數(shù)。

D、函數(shù)是一段具有特定功能的、可重用的語句組。

答案:【Python使用del保留字定義一個(gè)函數(shù)。】3.單選題:以下程序的輸出結(jié)果是:()defcalu(x=3,y=2,z=10):return(x**y*z)h=2w=3print(calu(h,w))

選項(xiàng):

A、90

B、70

C、60

D、80

答案:【80】4.單選題:以下關(guān)于函數(shù)參數(shù)和返回值的描述,正確的是:()

選項(xiàng):

A、采用名稱傳參的時(shí)候,實(shí)參的順序需要和形參的順序一致

B、默認(rèn)參數(shù)傳遞指的是沒有傳入對(duì)應(yīng)參數(shù)值的時(shí)候,就不使用該參數(shù)

C、函數(shù)能同時(shí)返回多個(gè)參數(shù)值,需要形成一個(gè)列表來返回

D、Python支持按照位置傳參也支持名稱傳參,但不支持地址傳參

答案:【Python支持按照位置傳參也支持名稱傳參,但不支持地址傳參】5.單選題:以下程序的輸出結(jié)果是:()ab=4defmyab(ab,xy):ab=pow(ab,xy)print(ab,end="")myab(ab,2)print(ab)

選項(xiàng):

A、44

B、1616

C、416

D、164

答案:【164】6.單選題:以下關(guān)于python內(nèi)置函數(shù)的描述,錯(cuò)誤的是:()

選項(xiàng):

A、id()返回一個(gè)數(shù)據(jù)的一個(gè)編號(hào),跟其在內(nèi)存中的地址無關(guān)

B、type()返回一個(gè)數(shù)據(jù)對(duì)應(yīng)的類型

C、int()能把整數(shù)數(shù)字字符串轉(zhuǎn)換成整數(shù)

D、max()可以返回眾多參數(shù)中的最大值

答案:【id()返回一個(gè)數(shù)據(jù)的一個(gè)編號(hào),跟其在內(nèi)存中的地址無關(guān)】7.單選題:以下程序的輸出結(jié)果是:()deffunc(num):num*=2x=20func(x)print(x)

選項(xiàng):

A、40

B、出錯(cuò)

C、無輸出

D、20

答案:【20】8.單選題:Python中,函數(shù)定義可以不包括以下:()

選項(xiàng):

A、函數(shù)名

B、可選參數(shù)列表

C、關(guān)鍵字def

D、一對(duì)圓括號(hào)

答案:【可選參數(shù)列表】9.單選題:Python中函數(shù)不包括()

選項(xiàng):

A、標(biāo)準(zhǔn)庫函數(shù)

B、第三方庫函數(shù)

C、參數(shù)函數(shù)

D、內(nèi)建函數(shù)

答案:【參數(shù)函數(shù)】10.單選題:以下關(guān)于Python函數(shù)對(duì)變量的作用,錯(cuò)誤的是:()

選項(xiàng):

A、簡(jiǎn)單數(shù)據(jù)類型在函數(shù)內(nèi)部用global保留字聲明后,函數(shù)退出后該變量保留

B、全局變量指在函數(shù)之外定義的變量,在程序執(zhí)行全過程有效

C、簡(jiǎn)單數(shù)據(jù)類型變量?jī)H在函數(shù)內(nèi)部創(chuàng)建和使用,函數(shù)退出后變量被釋放

D、函數(shù)里不允許有和函數(shù)外同名的變量

答案:【函數(shù)里不允許有和函數(shù)外同名的變量】第六周單元作業(yè)1.反素?cái)?shù)題目?jī)?nèi)容:反素?cái)?shù)(逆向拼寫的素?cái)?shù))是指一個(gè)將其逆向拼寫后也是一個(gè)素?cái)?shù)的非回文數(shù)。例如:17和71都是素?cái)?shù),所以,17和71都是反素?cái)?shù)。編寫程序,輸入一個(gè)正整數(shù),顯示大于該數(shù)的前10個(gè)反素?cái)?shù)。輸入格式:一個(gè)正整數(shù)輸出格式:顯示前10個(gè)反素?cái)?shù),在同一行輸出,空格分隔,結(jié)尾無空格。輸入樣例:12輸出樣例:1317313771737997107113

答案:【defis_prime(n):

"""

判斷一個(gè)數(shù)是否為素?cái)?shù)

"""

ifn<=1:

returnFalse

ifn<=3:

returnTrue

ifn%2==0orn%3==0:

returnFalse

i=5

whilei*i<=n:

ifn%i==0orn%(i+2)==0:

returnFalse

i+=6

returnTrue

defis_palindrome(n):

"""

判斷一個(gè)數(shù)是否為回文數(shù)

"""

num_str=str(n)

returnnum_str==num_str[::-1]

defreverse_num(n):

"""

反轉(zhuǎn)一個(gè)數(shù)

"""

num_str=str(n)

reversed_str=num_str[::-1]

returnint(reversed_str)

defmain():

"""

主函數(shù),用于處理輸入和輸出

"""

num=int(input())#獲取用戶輸入的正整數(shù)

count=0#用于計(jì)數(shù)找到的反素?cái)?shù)的個(gè)數(shù)

result=[]#存儲(chǔ)找到的反素?cái)?shù)

whilecount<10:

num+=1

reversed_num=reverse_num(num)

ifis_prime(num)andis_prime(reversed_num)andnotis_palindrome(num):

result.append(num)

count+=1

print("".join(str(x)forxinresult))

if__name__=="__main__":

main()

】2.求一個(gè)整數(shù)各個(gè)數(shù)字之和題目?jī)?nèi)容:編寫一個(gè)函數(shù),計(jì)算一個(gè)整數(shù)各個(gè)數(shù)字的和。使用下面的函數(shù)頭:defsumDigits(n):例如:sumDigits(234)返回9(2+3+4)。提示:使用求余運(yùn)算符%提取數(shù)字,而使用除號(hào)//去掉提取出來的數(shù)字。使用一個(gè)循環(huán)來反復(fù)提取和去掉每個(gè)數(shù)字,直到所有數(shù)字被提取完為止。編寫程序提示用戶輸入一個(gè)整數(shù),然后顯示這個(gè)整數(shù)所有數(shù)字的和。輸入格式:一個(gè)正整數(shù)輸出格式:這個(gè)正整數(shù)所有數(shù)字之和輸入樣例:123輸出樣例:6

答案:【defsumDigits(n):

"""

此函數(shù)用于計(jì)算一個(gè)整數(shù)n各個(gè)數(shù)字的和

:paramn:輸入的整數(shù)

:return:整數(shù)各個(gè)數(shù)字的和

"""

total=0

whilen>0:

total+=n%10#取n的最后一位數(shù)字并累加到total中

n=n//10#去掉n的最后一位數(shù)字

returntotal

defmain():

"""

主函數(shù),處理輸入和輸出

"""

num=int(input())#獲取用戶輸入的正整數(shù)

print(sumDigits(num))#調(diào)用sumDigits函數(shù)并輸出結(jié)果

if__name__=="__main__":

main()

】第七周:列表和元組第七周單元作業(yè)1.合并兩個(gè)有序列表題目?jī)?nèi)容:編寫下面的函數(shù)合并兩個(gè)有序列表構(gòu)成一個(gè)新的有序列表:defmerge(list1,list2):編寫測(cè)試程序提示用戶輸入兩個(gè)有序列表,然后顯式合并后的有序列表。要求:不允許使用系統(tǒng)提供的sort方法。輸入格式:兩個(gè)有序列表(列表元素之間空格分隔,結(jié)尾無空格,回車換行輸入下一個(gè)有序列表)提示:從鍵盤以字符串形式讀取一行數(shù)值,以空格分割字符串成列表,轉(zhuǎn)換列表元素為數(shù)值。輸出格式:合并后的有序列表(列表格式)輸入樣例:1516611112456輸出樣例:[1,2,4,5,5,6,16,61,111]

答案:【defmerge(list1,list2):

"""

合并兩個(gè)有序列表為一個(gè)新的有序列表

:paramlist1:第一個(gè)有序列表

:paramlist2:第二個(gè)有序列表

:return:合并后的有序列表

"""

result=[]

i=0#列表1的指針

j=0#列表2的指針

whilei<len(list1)andj<len(list2):

iflist1[i]<list2[j]:

result.append(list1[i])

i+=1

else:

result.append(list2[j])

j+=1

#將剩余元素添加到結(jié)果列表中

whilei<len(list1):

result.append(list1[i])

i+=1

whilej<len(list2):

result.append(list2[j])

j+=1

returnresult

defmain():

"""

主函數(shù),處理輸入和輸出

"""

defparse_input():

"""

解析輸入,將輸入的字符串轉(zhuǎn)換為有序列表

"""

sequence=input().split()#將輸入的字符串按空格分割

sequence=[int(num)fornuminsequence]#將元素轉(zhuǎn)換為整數(shù)

returnsequence

list1=parse_input()#獲取第一個(gè)有序列表

list2=parse_input()#獲取第二個(gè)有序列表

merged_list=merge(list1,list2)#合并兩個(gè)有序列表

print(merged_list)

if__name__=="__main__":

main()】2.刪除字符串中連續(xù)的重復(fù)字符題目?jī)?nèi)容:通過鍵盤輸入一串小寫字母(a~z)組成的字符串,編寫一個(gè)測(cè)試程序,將字符串中連續(xù)出現(xiàn)的重復(fù)字符刪去(即在一個(gè)字符串中,如果遇到連續(xù)重復(fù)的字符只出現(xiàn)一次),然后輸出處理后的字符串。例如:str1="aabbccddaabbccdd",輸出結(jié)果為:"abcdabcd"。輸入格式:一個(gè)字符串輸出格式:刪除連續(xù)的重復(fù)字符后得到的新字符串輸入樣例:aabcccccaaa輸出樣例:abca

答案:【defmain():

str_input=input()#獲取用戶輸入的字符串

result=""

iflen(str_input)==0:#處理輸入字符串為空的情況

print(result)

return

result+=str_input[0]#先添加第一個(gè)字符

foriinrange(1,len(str_input)):

ifstr_input[i]!=str_input[i-1]:#比較當(dāng)前字符和前一個(gè)字符

result+=str_input[i]#不重復(fù)則添加

print(result)

if__name__=="__main__":

main()

】單元測(cè)驗(yàn)七1.單選題:以下關(guān)于列表操作的描述,錯(cuò)誤的是:()

選項(xiàng):

A、通過append方法可以向列表添加元素

B、通過extend方法可以將另一個(gè)列表中的元素逐一添加到列表中

C、通過insert(index,object)方法在指定位置index前插入元素object

D、通過add方法可以向列表添加元素

答案:【通過add方法可以向列表添加元素】2.單選題:運(yùn)行以下程序,輸出結(jié)果的是:str1="DongbeiUniversity"str2=str1[:7]+"Normal"+str1[-10:]print(str2)

選項(xiàng):

A、NormalU

B、DongbeiNormal

C、NormalUniversity

D、DongbeiNormalUniversity

答案:【DongbeiNormalUniversity】3.單選題:以下程序的輸出結(jié)果是:()lcat=["獅子","獵豹","虎貓","花豹","孟加拉虎","美洲豹","雪豹"]forsinlcat:if"豹"ins:print(s,end="")continue

選項(xiàng):

A、獵豹花豹美洲豹雪豹

B、獵豹

C、雪豹

D、獵豹花豹美洲豹雪豹

答案:【獵豹花豹美洲豹雪豹】4.單選題:以下程序的輸出結(jié)果是:()ls=["浣熊","豪豬","艾草松雞","棉尾兔","叉角羚"]x="豪豬"print(ls.index(x,0))

選項(xiàng):

A、0

B、-4

C、-3

D、1

答案:【1】5.單選題:以下關(guān)于列表和字符串的描述,錯(cuò)誤的是:()

選項(xiàng):

A、列表使用正向遞增序號(hào)和反向遞減序號(hào)的索引體系

B、列表是一個(gè)可以修改數(shù)據(jù)項(xiàng)的序列類型

C、字符和列表均支持成員關(guān)系操作符(in)和長(zhǎng)度計(jì)算函數(shù)(len())

D、字符串是單一字符的無序組合

答案:【字符串是單一字符的無序組合】6.單選題:下面代碼的輸出結(jié)果是()vlist=list(range(5))print(vlist)

選項(xiàng):

A、01234

B、0,1,2,3,4,

C、0;1;2;3;4;

D、[0,1,2,3,4]

答案:【[0,1,2,3,4]】7.單選題:給出如下代碼:TempStr="HelloWorld"以下選項(xiàng)中可以輸出“World”子串的是()

選項(xiàng):

A、print(TempStr[–5:–1])

B、print(TempStr[–5:0])

C、print(TempStr[–4:–1])

D、print(TempStr[–5:])

答案:【print(TempStr[–5:])】8.單選題:給出如下代碼importrandomasranlistV=[]ran.seed(100)foriinrange(10):i=ran.randint(100,999)listV.append(i)以下選項(xiàng)中能輸出隨機(jī)列表元素最大值的是()

選項(xiàng):

A、print(listV.max())

B、print(listV.pop(i))

C、print(max(listV))

D、print(listV.reverse(i))

答案:【print(max(listV))】9.單選題:下面代碼的輸出結(jié)果是()listV=list(range(5))print(2inlistV)

選項(xiàng):

A、False

B、0

C、-1

D、True

答案:【True】10.單選題:對(duì)于列表ls的操作,以下選項(xiàng)中描述錯(cuò)誤的是()

選項(xiàng):

A、ls.clear():刪除ls的最后一個(gè)元素

B、ls.copy():生成一個(gè)新列表,復(fù)制ls的所有元素

C、ls.reverse():列表ls的所有元素反轉(zhuǎn)

D、ls.append(x):在ls最后增加一個(gè)元素

答案:【ls.clear():刪除ls的最后一個(gè)元素】第八周:文件和異常單元測(cè)驗(yàn)八1.單選題:運(yùn)行以下程序:try:num=eval(input("請(qǐng)輸入一個(gè)列表:"))num.reverse()print(num)except:print("輸入的不是列表")從鍵盤上輸入1,2,3,則輸出的結(jié)果是:()

選項(xiàng):

A、[1,2,3]

B、[3,2,1]

C、運(yùn)算錯(cuò)誤

D、輸入的不是列表

答案:【輸入的不是列表】2.單選題:關(guān)于Python對(duì)文件的處理,以下選項(xiàng)中描述錯(cuò)誤的是()

選項(xiàng):

A、Python通過解釋器內(nèi)置的open()函數(shù)打開一個(gè)文件

B、當(dāng)文件以文本方式打開時(shí),讀寫按照字節(jié)流方式

C、文件使用結(jié)束后要用close()方法關(guān)閉,釋放文件的使用授權(quán)

D、Python能夠以文本和二進(jìn)制兩種方式處理文件

答案:【當(dāng)文件以文本方式打開時(shí),讀寫按照字節(jié)流方式】3.單選題:關(guān)于程序的異常處理,以下選項(xiàng)中描述錯(cuò)誤的是()

選項(xiàng):

A、程序異常發(fā)生經(jīng)過妥善處理可以繼續(xù)執(zhí)行

B、異常語句可以與else和finally保留字配合使用

C、編程語言中的異常和錯(cuò)誤是完全相同的概念

D、Python通過try、except等保留字提供異常處理功能

答案:【編程語言中的異常和錯(cuò)誤是完全相同的概念】4.單選題:執(zhí)行以下程序,輸入la,輸出結(jié)果是:()la='python'try:s=eval(input('請(qǐng)輸入整數(shù):'))ls=s*2print(ls)except:print('請(qǐng)輸入整數(shù)')

選項(xiàng):

A、la

B、請(qǐng)輸入整數(shù)

C、pythonpython

D、python

答案:【pythonpython】5.單選題:以下程序的輸出結(jié)果是:()fo=open("text.txt",'w+')x,y='thisisatest','hello'fo.write('{}+{}\n'.format(x,y))print(fo.read())fo.close()

選項(xiàng):

A、thisisatesthello

B、thisisatest

C、thisisatest,hello.

D、thisisatest+hello

答案:【thisisatest+hello】6.單選題:用戶輸入整數(shù)的時(shí)候不合規(guī)導(dǎo)致程序出錯(cuò),為了不讓程序異常中斷,需要用到的語句是:()

選項(xiàng):

A、if語句

B、eval語句

C、循環(huán)語句

D、try-except語句

答案:【try-except語句】7.單選題:以下關(guān)于Python文件的描述,錯(cuò)誤的是:()

選項(xiàng):

A、open函數(shù)的參數(shù)處理模式'b’表示以二進(jìn)制數(shù)據(jù)處理文件

B、open函數(shù)的參數(shù)處理模式'w'表示可以對(duì)文件進(jìn)行寫操作

C、readline函數(shù)表示讀取文件的下一行,返回一個(gè)字符串

D、open函數(shù)的參數(shù)處理模式'r'表示追加方式打開文件,刪除已有內(nèi)容

答案:【open函數(shù)的參數(shù)處理模式'r'表示追加方式打開文件,刪除已有內(nèi)容】8.單選題:Python文件只讀打開模式是()

選項(xiàng):

A、w

B、x

C、b

D、r

答案:【r】9.單選題:以下關(guān)于文件的描述錯(cuò)誤的選項(xiàng)是:()

選項(xiàng):

A、readlines()函數(shù)讀入文件內(nèi)容后返回一個(gè)列表,元素劃分依據(jù)是文本文件中的換行符

B、read()一次性讀入文本文件的全部?jī)?nèi)容后,返回一個(gè)字符串

C、readline()函數(shù)讀入文本文件的一行,返回一個(gè)字符串

D、二進(jìn)制文件和文本文件都是可以用文本編輯器編輯的文件

答案:【二進(jìn)制文件和文本文件都是可以用文本編輯器編輯的文件】10.單選題:以下程序的輸出結(jié)果是:()s=''try:foriinrange(1,10,2):s.append(i)except:print('error')print(s)

選項(xiàng):

A、13579

B、[1,3,5,7,9]

C、2,4,6,8,10

D、error

答案:【error】第八周單元作業(yè)1.處理輸入錯(cuò)誤題目?jī)?nèi)容:要求用戶從鍵盤輸入一系列數(shù)據(jù),預(yù)期是包含整型數(shù)值的。第一次輸入的是數(shù)值總數(shù)量,如果數(shù)據(jù)項(xiàng)比預(yù)期的多或者少,拋出一個(gè)包含合適信息的RuntimeError異常;如果數(shù)據(jù)不是整型數(shù)值,拋出valueError異常。輸入格式:一系列數(shù)據(jù),第一個(gè)數(shù)據(jù)表示數(shù)值總數(shù)量,回車換行輸入下一個(gè)數(shù)據(jù),直接回車換行表示輸入結(jié)束。輸出格式:輸入正確時(shí)輸出數(shù)據(jù)求和結(jié)果,例如:"Thesumis6."數(shù)據(jù)項(xiàng)比預(yù)期的多或者少,輸出"Error:dataquatityinvalid."數(shù)據(jù)不是整型數(shù)值,輸出"Error:inputcontentsinvalid."輸入樣例:31234輸出樣例:Error:dataquatityinvalid.

答案:【defmain():

try:

num_count=int(input())#獲取用戶輸入的數(shù)據(jù)項(xiàng)數(shù)量

input_data=[]

whileTrue:

data=input()

ifdata=="":

break

input_data.append(int(data))#將輸入的數(shù)據(jù)轉(zhuǎn)換為整數(shù)添加到列表中

iflen(input_data)!=num_count:#檢查輸入的數(shù)據(jù)項(xiàng)數(shù)量是否與預(yù)期相符

raiseRuntimeError("Error:dataquatityinvalid.")

total=sum(input_data)#計(jì)算輸入數(shù)據(jù)的總和

print(f"Thesumis{total}.")

exceptValueError:

print("Error:inputcontentsinvalid.")

exceptRuntimeErrorase:

print(e)

if__name__=="__main__":

main()

】第九周:集合與字典單元測(cè)驗(yàn)九1.單選題:下面代碼的輸出結(jié)果是()d={"大海":"藍(lán)色","天空":"灰色","大地":"黑色"}print(d["大地"],d.get("大地","黃色"))

選項(xiàng):

A、黑的灰色

B、黑色黑色

C、黑色藍(lán)色

D、黑色黃色

答案:【黑色黑色】2.單選題:以下表達(dá)式,正確定義了一個(gè)集合數(shù)據(jù)對(duì)象的是:()

選項(xiàng):

A、x={200,’flg’,20.3}

B、x=(200,’flg’,20.3)

C、x=[200,’flg’,20.3]

D、x={‘flg’:20.3}

答案:【x={200,’flg’,20.3}】3.單選題:字典d={'Name':'Kate','No':'1001','Age':'20'},表達(dá)式len(d)的值為()

選項(xiàng):

A、12

B、9

C、6

D、3

答案:【3】4.單選題:給出如下代碼MonthandFlower={"1月":"梅花","2月":"杏花","3月":"桃花","4月":"牡丹花",\"5月":"石榴花","6月":"蓮花","7月":"玉簪花","8月":"桂花",\"9月":"菊花","10月":"芙蓉花","11月":"山茶花","12月":"水仙花"}n=input("請(qǐng)輸入1-12的月份:")print(n+"月份之代表花:"+MonthandFlower.get(str(n)+"月"))以下選項(xiàng)中描述正確的是()

選項(xiàng):

A、代碼實(shí)現(xiàn)了獲取一個(gè)整數(shù)(1-12)來表示月份,輸出該月份對(duì)應(yīng)的代表花名

B、MonthandFlower是列表類型變量

C、MonthandFlower是一個(gè)元組

D、MonthandFlower是集合類型變量

答案:【代碼實(shí)現(xiàn)了獲取一個(gè)整數(shù)(1-12)來表示月份,輸出該月份對(duì)應(yīng)的代表花名】5.單選題:以下關(guān)于字典類型的描述,正確的是:()

選項(xiàng):

A、字典類型可迭代,即字典的值還可以是字典類型的對(duì)象

B、表達(dá)式forxind:中,假設(shè)d是字典,則x是字典中的鍵值對(duì)

C、字典類型的鍵可以是列表和其他數(shù)據(jù)類型

D、字典類型的值可以是任意數(shù)據(jù)類型的對(duì)象

答案:【字典類型的值可以是任意數(shù)據(jù)類型的對(duì)象】6.單選題:以下描述錯(cuò)誤的是:()

選項(xiàng):

A、集合類型是一種具體的數(shù)據(jù)類型

B、序列類型和映射類型都是一類數(shù)據(jù)類型的總稱

C、python的集合類型跟數(shù)學(xué)中的集合概念一致,都是多個(gè)數(shù)據(jù)項(xiàng)的無序組合

D、字典類型的鍵可以用的數(shù)據(jù)類型包括字符串,元組,以及列表

答案:【字典類型的鍵可以用的數(shù)據(jù)類型包括字符串,元組,以及列表】7.單選題:以下程序的輸出結(jié)果是:()dict={'Name':'baby','Age':7}print(dict.items())

選項(xiàng):

A、[('Age',7),('Name','baby')]

B、('Age',7),('Name','baby')

C、'Age':7,'Name':'baby'

D、dict_items([('Age',7),('Name','baby')])

答案:【dict_items([('Age',7),('Name','baby')])】8.單選題:以下關(guān)于字典類型的描述,錯(cuò)誤的是:()

選項(xiàng):

A、字典類型是一種無序的對(duì)象集合,通過鍵來存取

B、字典類型可以在原來的變量上增加或縮短

C、字典類型可以包含列表和其他數(shù)據(jù)類型,支持嵌套的字典

D、字典類型中的數(shù)據(jù)可以進(jìn)行分片和合并操作

答案:【字典類型中的數(shù)據(jù)可以進(jìn)行分片和合并操作】9.單選題:以下關(guān)于字典操作的描述,錯(cuò)誤的是:()

選項(xiàng):

A、del用于刪除字典或者元素

B、clear用于清空字典中的數(shù)據(jù)

C、len方法可以計(jì)算字典中鍵值對(duì)的個(gè)數(shù)

D、keys方法可以獲取字典的值視圖

答案:【keys方法可以獲取字典的值視圖】10.單選題:以下關(guān)于字典的描述,錯(cuò)誤的是:()

選項(xiàng):

A、字典中元素以鍵信息為索引訪問

B、字典長(zhǎng)度是可變的

C、字典是鍵值對(duì)的集合

D、字典中的鍵可以對(duì)應(yīng)多個(gè)值信息

答案:【字典中的鍵可以對(duì)應(yīng)多個(gè)值信息】第九周單元作業(yè)1.稀疏矩陣存儲(chǔ)題目?jī)?nèi)容:稀疏矩陣是一系列數(shù)字,其中大部分項(xiàng)是0。存儲(chǔ)稀疏矩陣的一個(gè)高效方式是字典,其中鍵是非0值的位置,值是序列中該位置對(duì)應(yīng)的值。例如,序列0000040029可以表示為字典{5:4,8:2,9:9}。編寫函數(shù)sparseArraySum,參數(shù)是兩個(gè)這樣的字典a和b,得到一個(gè)表示向量和的稀疏矩陣。也就是說,結(jié)果中位置i的值是a和b中位置i上值的和。假設(shè)稀疏矩陣數(shù)字序列長(zhǎng)度為10。輸入格式:兩個(gè)表示稀疏矩陣的數(shù)字序列,數(shù)字之間空格分隔,結(jié)尾無空格,回車換行輸入下一個(gè)數(shù)字序列輸出格式:一個(gè)表示稀疏矩陣求和結(jié)果的數(shù)字序列,數(shù)字之間空格分隔,結(jié)尾無空格輸入樣例:10300400266000120003輸出樣例:7030160029

答案:【defsparseArraySum(a,b):

"""

此函數(shù)用于計(jì)算兩個(gè)稀疏矩陣表示的字典a和b的和

:parama:第一個(gè)稀疏矩陣的字典表示

:paramb:第二個(gè)稀疏矩陣的字典表示

:return:求和后的稀疏矩陣的字典表示

"""

result={}

all_keys=set(a.keys())|set(b.keys())#合并兩個(gè)字典的鍵

forkeyinall_keys:

val_a=a.get(key,0)#獲取字典a中鍵對(duì)應(yīng)的值,如果鍵不存在則默認(rèn)為0

val_b=b.get(key,0)#獲取字典b中鍵對(duì)應(yīng)的值,如果鍵不存在則默認(rèn)為0

total=val_a+val_b#求和

iftotal!=0:#僅存儲(chǔ)不為0的結(jié)果

result[key]=total

returnresult

defmain():

"""

主函數(shù),處理輸入和輸出

"""

defparse_input():

"""

解析輸入的函數(shù),將輸入的數(shù)字序列轉(zhuǎn)換為稀疏矩陣的字典表示

"""

sequence=input().split()#將輸入的數(shù)字序列分割成列表

matrix_dict={}

fori,numinenumerate(sequence):

num=int(num)

ifnum!=0:#僅存儲(chǔ)非零元素

matrix_dict[i]=num

returnmatrix_dict

a=parse_input()#獲取第一個(gè)稀疏矩陣的字典表示

b=parse_input()#獲取第二個(gè)稀疏矩陣的字典表示

result_dict=sparseArraySum(a,b)#計(jì)算稀疏矩陣的和

result_sequence=[0]*10#初始化結(jié)果序列,長(zhǎng)度為10

forkey,valueinresult_dict.items():

result_sequence[key]=value#將字典中的非零元素填入結(jié)果序列

print("".join(str(num)fornuminresult_sequence))#將結(jié)果序列元素轉(zhuǎn)換為字符串并使用空格連接輸出

if__name__=="__main__":

main()】2.密碼校驗(yàn)題目?jī)?nèi)容:校驗(yàn)密碼是否合法:編寫程序提示用戶輸入一個(gè)密碼,要求長(zhǎng)度在5-10位,密碼里必須包含大寫字母、小寫字母和數(shù)字。根據(jù)用戶輸入會(huì)返回相應(yīng)提示信息:如果密碼長(zhǎng)度不合法,返回“Thelengthofpasswordmustinrangeof5-10”;如果密碼內(nèi)容不合法,返回"Passwordmustincludeuppercase,lowercaseanddigit",否則返回“Passwordinputsuccess”。提示:可利用S.isdisjoint(T)方法,如果集合S與T沒有相同元素,返回True。輸入格式:一個(gè)字符串輸出格式:一個(gè)字符串輸入樣例:asdQEWr123輸出樣例:Passwordinputsuccess

答案:【defcheck_password():

"""

此函數(shù)用于檢查用戶輸入的密碼是否合法

"""

password=input()#獲取用戶輸入的密碼

ifnot(5<=len(password)<=10):#檢查密碼長(zhǎng)度是否在5到10之間

return"Thelengthofpasswordmustinrangeof5-10"

upper_set=set('ABCDEFGHIJKLMNOPQRSTUVWXYZ')#存儲(chǔ)大寫字母的集合

lower_set=set('abcdefghijklmnopqrstuvwxyz')#存儲(chǔ)小寫字母的集合

digit_set=set('0123456789')#存儲(chǔ)數(shù)字的集合

password_set=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論