天天看點

關于Python封裝函數的幾道練習題

1.封裝函數,可以判斷一個數字是否為偶數

def func(n):
    if n%2==0:
        print("%d是偶數"%n)
    else:
        print("%d是奇數"%n)

func(11)
# 11是奇數      

2.封裝函數,可以實作1-n之間所有偶數的列印

def func(n):
    for i in range(1,n+1):
        if i%2==0:
            print(i)

func(10)
# 2
# 4
# 6
# 8
# 10      

3.封裝函數,可以找出整型清單中的最大值

lst = [2,7,3,9,1,4]
def func(n):
    x = n[0]
    for i in n:
        if i>x:
            x=i
    return x
print(func(lst))
# 9      

4.封裝函數,可以完成清單的倒序,不使用内置函數

lst = [2,7,3,9,1,4]
# print(sorted(lst,reverse=True))
# print(lst.sort())
# print(lst)

def func(n):
    for i in range(len(n)-1):
        for j in range(len(n)-i-1):
            if n[j]<n[j+1]:
                n[j],n[j+1]=n[j+1],n[j]
    return n
print(func(lst))
# [9, 7, 4, 3, 2, 1]

# 或者

lst1 = [2,7,3,9,1,4]
print(lst1[::-1])
# [4, 1, 9, 3, 7, 2]      

5.封裝函數,可以判斷一個整數是否為質數

from math import sqrt
def func(n):
    if n==1:
        return '是質數'
    else:
        for i in range(2,int(sqrt(n))+1):
            if n%i==0:
                return '不是質數'
    return '是質數'
print(func(2))
# 是質數      

6.封裝函數,可以列印1-a之間所有的質數,每4個進行一次換行

def func(n):
    count=0
    for i in range(1,n+1):
        for j in range(2,int(sqrt(i)+1)):
            if i%j==0:
                break
        else:
            count=count+1
            print(i,end=' ')
            if count%4==0:
                print("\n")


print(func(100))
# 1 2 3 5
#
# 7 11 13 17
#
# 19 23 29 31
#
# 37 41 43 47
#
# 53 59 61 67
#
# 71 73 79 83
#
# 89 97 None      

7.封裝函數,可以列印2-a之間所有的質數,使用遞歸函數

'''
學習中遇到問題沒人解答?小編建立了一個Python學習交流群:711312441
尋找有志同道合的小夥伴,互幫互助,群裡還有不錯的視訊學習教程和PDF電子書!
'''
def func(n):
    if n==2:
        return 2
    for i in range(2,int(sqrt(n)+1)):
        if n%i==0:
           return func(n-1)
    else:
        print(n)
        return func(n-1)

print(func(100))

# 97
# 89
# 83
# 79
# 73
# 71
# 67
# 61
# 59
# 53
# 47
# 43
# 41
# 37
# 31
# 29
# 23
# 19
# 17
# 13
# 11
# 7
# 5
# 3
# 2      

8.封裝函數,查出傳入清單奇數索引的元素并插入到新的清單中

def func(n):
    newlist=[]
    for i in range(0,len(n)+1,2):
        newlist.append(n[i])
    return newlist

list =['a','b','c','d','e','f','g','h','i','j','k']
print(func(list))
# ['a', 'c', 'e', 'g', 'i', 'k']      

9.封裝函數,判斷一個數字是否為水仙花數(水仙花數是一個三位數,并且每一位數字的三次方的和還等于這個數字。)

s = input("請輸入一個數字:")
if len(s)==3:
   result = int(s[0])**3 + int(s[1])**3 + int(s[2])**3
   if int(s) == result:
       print("是水仙花數字")
   else:
       print("不是水仙花數字")
else:
   print("請輸入三位數")