今天剛進行完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函...