Python 函式實驗部分1

2021-10-09 01:56:07 字數 4746 閱讀 2099

題目:[python,演算法,函式]全數字問題

題目描述:

如果乙個n位數(n<10)剛好包含了1至n中所有數字各一次則稱它們是全數字(pandigital)的,例如四位數1324就是1至4全數字的。從鍵盤上輸入一組整數(不止乙個),輸出其中的全數字,若找不到則輸出「not found」。形如:

def pandigital(nums):

…return lst

ifname== 「main」:

lst = pandigital(eval(input()))

呼叫函式根據結果輸出

輸入樣例:

1243,322,321,1212,2354

輸出樣例:

1243

321題目:[python,函式]尋找第乙個n位的斐波那契數

題目描述:

斐波那契數列的定義如下:

f1 = 1

f2 = 1

fn = fn-1 + fn-2

根據斐波那契數列的遞迴定義可以很容易得知其前10位的數字分別是:1, 1, 2, 3, 5, 8, 13, 21, 34, 55,第一次出現的兩位數是第7項數字13,自定義函式fib_n(n)計算斐波那契數列中第一次出現n位數字的是哪一項,返回項的序號及該數。輸入待尋找的斐波那契數列中第一次出現的位數n,呼叫fib_n()函式計算並輸出滿足要求的項的序號及數。

輸入:[1,1000]範圍內的乙個整數

輸出:第一次出現的該數長度的斐波那契數

輸入樣例:

10輸出樣例:

fib(45)=1134903170

題目:[python,兩重迴圈,函式]測試尼克徹斯定理

題目描述:

尼克徹斯定理即任何乙個整數的立方都可以寫成一串連續奇數的和。例如:

13=1

23=3+5

33=7+9+11

43=13+15+17+19

53=21+23+25+27+29

……定義函式nicoqish(x)返回和為x的連續奇數的第乙個和最後乙個值,某乙個數可能可以寫成多組連續奇數和,只要求返回起始奇數最小的那一組資訊。在主模組中輸入資料n呼叫函式輸出前n個數相關的式子。

輸入:乙個[1,20]之間的整數n

輸出:[1,n]範圍內的整數相關的多行式子

輸入樣例:

5輸出樣例:

1^3=1

2^3=3+5

3^3=7+9+11

4^3=1+3+5+7+9+11+13+15

5^3=21+23+25+27+29

題目:[python,演算法,函式]默尼森數

題目描述:

編寫判斷素數的函式並找出前n個默尼森數。p是素數且m也是素數,並且滿足等式m=2p - 1,則稱m為默尼森數。例如,p=5, m=2p - 1 = 31,5和31都是素數,因此31是默尼森數。

輸入:前n個,n的範圍是[2, 8]

輸出:p和m,p和m之間用乙個空格隔開

輸入樣例:

2輸出樣例:

2 33 7

題目:[python,演算法,函式]兩數之和

題目描述:

自定義函式twonums_sum(n,lst),在列表lst中查詢是否有兩數之和等於n,若有則返回兩數的下標,否則返回-1。對於乙個不包括0和重複數字的有序列表[1,4,5,6,7,8,9,10,11,12,13,15,18,19,20,21,29,34,54,65],從鍵盤輸入n,呼叫函式twonums_sum(n,lst),輸出滿足條件的兩個數的下標(找到一組即可且要求其中的乙個數盡量小),若所有數均不滿足條件則輸出「not found」。

輸入:和n

輸出:滿足條件時輸出乙個包含兩個數的元組,否則輸出not found

輸入樣例:

17輸出樣例:

(1, 10)

1

.def

pandigital

(nums)

: lst=

for item in nums:

temp=

str(item)

lenth=

len(temp)

num=

set(temp)

nummax=

int(

max(num)

) numm=

len(num)

if numm==lenth and nummax==lenth:

#字串前後長度無變化;字串最大值對應個數

return lst

if __name__==

"__main__"

: lst=pandigital(

eval

(input()

)if lst:

#此處報錯

for item in lst:

print

(item)

else

:print

('no found)2.

deffenjie

(n):

#分解質因數的直接辦法,不過另乙個是判斷素數

lst=

k=2while k<=n:

if n%k==0:

n//=k#如果一直可以除就可以一直除下去

else

: k+=

1return lst

if __name__==

"__main__"

: n=

int(

input()

) result=fenjie(n)

print

('{}={}.format(n,'

*'.join(

map(

str,result)))

)3.def

fib_n

(n):

f1,f2=1,

1 f=f1+f2

f_index=

3while

len(

str(f)

)!=n:

#好好理解遞迴的精髓

f1=f2

f2=f

f=f2+f1

f_index+=

1return f_index,f

n=int

(input()

)f_index,f=fib_n(n)

print

('fib({})={}'

.format

(f_index,f))4

.5,import math

defmns

(x):

if x==1:

return

false

if x%2==

0:return x==

2 k=

int(math.sqrt(x)

)for j in

range(3

,k+1,2

):if x%j==0:

return

false

return

true

count=1p=

1n=int(

input()

)while count<=n:

p+=1if mns(p)

:if mns(

2**p-1)

:print

(p,2

**p-1)

count+=16

.def

made

(n,lst)

:for i in lst:

t=lst.index(i)

for j in lst[t:]:

if i+j==n:

return lst.index(i)

,lst.index(j)

else

:return

0lst1=[1

,4,5

,6,7

,8,9

,10,11

,12,13

,15,18

,19,20

,21,29

,34,54

,65]n=

int(

input()

)y=made(n,lst)

ifnot y:

print

('no found'

)else

:print

(y)#未發現錯誤 但是算的不對7.

defclean_list

(lst)

:for i in

range

(len

(lst)):

coffee=

''for j in lst[i]

:#通過索引直接定位,簡便太多

if j.isalpha():

#逐個字母進行判斷,判斷為1時將加入新的字串

coffee +=j

else

: lst[i]

=coffee

return lst

if __name__ ==

'__main__'

: nlist =

zip(

range(1

,len

(coffeelst)+1

),clean_list(coffeelst)

)for i,j in nlist:

print

(i,j)

是不是一次覺得比一次迷了啊~~?祝我明天考試穩過吧!

python部分函式 1

1 buckets 乙個桶指的是滿足乙個文件的集合 2 map map作為python的乙個高階函式,主要的作用在於接收乙個函式,通過函式處理後續的list並返回經過函式處理過後的list.3 shuffle 返回隨機排序後的序列 4 numpy和asarray都可以將結構化資料轉化為ndarrra...

python函式實驗 Python實驗函式

實驗8 函式 一 實驗目的 1 理解自定義函式過程的定義和呼叫方法 2 掌握自定義函式的定義和呼叫方法 3 理解函式中的引數的作用 實驗內容 1 編寫一函式fabonacci n 其中引數n代表第n 次的迭代。while迴圈 def fib n if n 1 or n 2 return 1 a 1b...

Python 函式部分

1 區域性變數 區域性變數名只存在於函式這一區域性,這被稱之為變數的作用域 scope 所有變數的作用域是它們被定義的塊,從定義它們的名字的定義點開始。2 全域性變數 可以使用定義於函式之外的變數的值 假設函式中沒有具有相同名字的變數 如果之外有變數,則更改後覆蓋原值。3 預設引數值 使一些引數可選...