分享幾道Python基礎題目

2021-10-07 10:26:21 字數 3472 閱讀 2483

今天剛進行完python期末考試,然後分享一下題目。也分享一下**,供大家學習交流。(最近有些忙,所以質量可能有點差,但是結果應該沒錯,程式效率可能差點。)

問題1:編寫函式,判斷乙個數字是否為素數,是則返回字串yes,否則返回字串no。並寫程式呼叫該函式。

#問題1

n =int

(input

("請輸入乙個正整數:"))

#輸入乙個整數

if n ==1:

#首先判斷是不是1

print

('no'

)#若等於1,列印no

else

:#其餘不等於1,進行別的程式

for i in

range(2

, n)

:#這裡考慮到2為特殊數字,會導致break,直接輸出yes,當大於2的數字就正常進行下面操作

if n % i ==0:

#若 乙個數字能整除除了1和它本身之外,那麼他就是不是素數

print

("no"

)#列印no

break

# 若有餘數等於 0的情況下,則停止程式,不是素數

else

:print

("yes"

)#列印yes

問題2:編寫程式,求1!+2!+……+20!。並將結果輸出到d盤根目錄下文字檔案test.txt中,輸出格式為:1!+2!+……+20!= 結果
#問題2

b =0

# b為開始的求和結果,之後的程式進行累加操作

c =1

# 設定數字,不斷加值,方便後面計算

for a in

range(1

,21):

#做迴圈,從1到20

c *= a #計算1*1 1*2*3 1*2*3*4 方便之後不斷累加

b += c #將計算值加到最後的累積結果

print

('1!+2!+……+20!= {}'

.format

(b))

#利用格式化輸出將其輸出

import os #導入庫

os.chdir(

'd:/'

)#將工作路徑轉到d盤根目錄

with

open

('test.txt'

,"w"

)as f:

#開啟test.txt,w:以只寫的方式開啟文字檔案,檔案若存在則清空檔案內容從檔案頭部開始寫,若不存在則根據檔名建立新檔案並只寫開啟

f.write(

'1!+2!+……+20!= {}'

.format

(b))

#寫入字串

f.close(

)#關閉檔案

問題 3:求出1000以內的所有完數(乙個數恰好等於它的因子之和,這個數就稱為「完數」),並按示例格式輸出其因子。(7分)輸出格式示例: 完數6的因子為:[ 1,2,3],完數……
for i in

range(1

,1001):

#從1到1000做迴圈

lb =

#建立空列表,等待之後放因子

for j in

range(1

,i):

#對1到 i的數字進行遍歷

if i%j==0:

#首先滿足第乙個條件 i能夠整除j

#把所有能整除的因子放入列表

ifsum

(lb)

==i:

#將列表求和結果若等於i,就說明滿足完數的定義

print

('完數{}的因子為:{}'

.format

(i,lb)

)

#問題4

import random #匯入隨機數模組a=[

]#生成裝隨機數的列表

for i in

range(20

):#產生20個隨機數

-10000

,10000))

#向列表中新增隨機整數元素

print

(a)#生成原始列表

b=a[::

2]#採用切片將偶數下標元素提取出來

b.sort(reverse =

true

)#將列表進行降序排列a[:

:2]=b #將b中每乙個元素分別對應分配到 座標0 2 4 6……

print

(a)#列印題目要求的列表

問題 5:編寫2個函式,分別採用遞迴和遞推(迴圈)方法計算斐波那契數列的前n項,函式返回列表,該列表中存放快斐波那契數列。並寫出程式呼叫這2個函式,輸出斐波那契數列。
#問題5

defxl

(n):

#定義函式

if n <=1:

#若n小於等於1直接返回1

return n #這裡表示xl(0)為0 ,xl(1)為1

return xl(n-1)

+ xl(n-2)

#直接返回利用公式進行遞迴:即 xl(2) = xl(1)+xl(0)

defdy

(n):

# 呼叫函式

lt =

#建立空列表,裝載序列

for i in

range(1

, n+1)

:#進行迴圈

)#向列表中插入遞迴產生的值

print

(lt)

#遞推生成

defxll

(n):

#定義遞推函式

a,b=1,

1#定義a =1,b=1

while n>0:

#當n 大於0時

a,b =b,a+b #不斷進行遞推做迴圈

n -=

1#進行判斷,使得n不斷減少1,當n =0停止迴圈

return a #返回a

defdt

(n):

#構造序列

lbb =

#建立序列

for i in

range(0

,n):

)#向列表中加入斐波那契數列

print

(lbb)

#列印列表

#呼叫a =

int(

input

("請輸入需要斐波那契數列個數(要求正整數):"))

print

('遞迴生成的{}項斐波那契數列'

.format

(a))

dy(a)

print

('遞推生成的{}項斐波那契數列'

幾道C語言題目

下面 的輸出結果是?int main int ptr 3 a printf d,d n ptr 1 ptr 2 ptr printf d,d n ptr 1 ptr 2 system pause return 0 2,3 5,6 ptr的型別是int 3 那麼 ptr的型別便是int 3 也就是in...

幾道關於面試的題目

實現乙個演算法,確定乙個字串的所有字元是否全部相同?最想想到的方法是通過比較該字串的每乙個字元,演算法的時間複雜度為0 n2 次。另一種辦法是可以利用set資料結構來實現,因為在set中不允許存在重複的字元。有乙個有意思的地方是在進行判斷前可以先判斷字串的長度,如果字串的長度大於256,那麼我們可以...

幾道JS閉包題目

function fun n,o 問 三個fun函式是一樣的嗎?答 第乙個fun是具名函式,可通過fun.name得到 fun 即函式名 返回值是乙個物件字面量表示式,屬於乙個新的object 物件字面量裡有乙個叫fun的屬性,該屬性是乙個匿名函式表示式,屬於新建立的函式,所以第乙個和第二個fun函...