5道Python函數練習題


1、編寫函數f(n),實現輸入n的值,求出n的階乘。然后調用此函數計算1! +2!+3!+……10!的結果,輸出到屏幕上。

def f(n):
    count = 1;
    for i in range(1,n+1):
       count =count*i
    return count

def main():
    sum = 0
    n = int(input("請輸入一個整數n,以求1-n的階乘之和"))
    for i in range(1,n+1):
        sum = sum + f(i)
    print(sum)

main()

2、定義一個函數is_prime(n),判斷輸入的n是不是素數,是的話返回True,否則返回False。通過鍵盤輸入兩個整數X和Y,調用此函數輸出兩數范圍之內素數的個數(包括X和Y)。

 import math
 def isprime(n):
     m = int(math.sqrt(n)+1)
     for i in range(2,m):
         if n%i==0:
            return False
            break
     else:
            return True
 def main():
     n,m =eval(input("請輸入兩個數,來求這兩個數之間素數的個數,逗號作為分隔符:"))
     count = 0
     for i in range (n,m+1):
         if isprime(i) == True:
             count=count+1
     print(count)               
 
 main()

3、一個數如果從左往右讀和從右往左讀數字是相同的,則稱這個數是回文數,如121,1221,15651都是回文數。

現在請寫出一個函數h(n),判斷n是否為回文數,是的話返回True,否則返回False。利用上面的判斷素數函數,找出所有既是回文數又是素數的3位十進制數。

#Python學習交流群:531509025
 import math
 def isprime(n):
     m = int(math.sqrt(n)+1)
     for i in range(2,m):
         if n%i==0:
            return False
            break
     else:
            return True
 
 def h(n):
     a = n//100
     b = n%10
     if a == b:
        return True
     else:
        return False
 
 def main():
     print("既是素數又是回文數的3位十進制數:")   
     for i in range (100,1000):
         if isprime(i) == True:
                if h(i) == True:
                       print(i)               
 
 main()

4.輸入要過生日的人的名字,唱生日歌給他聽

def happy():
    print("Happy Birthday to you!")
def sing(person):
       '''person must be string'''#注釋
       happy()
       happy()
       print("Happy Birthday, dear",person,"!")
       happy()
person = input("請輸入人名")
sing(person)

5.編寫函數,接收整數參數t,返回斐波那契數列中大於t的第一個數。

def demo(t):
    a, b = 1, 1
    while b<t:
         a, b = b, a+b
    else:
         return b
def main():
    n=int(input("請輸入一個整數"))
    print(demo(n))
main()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM