关于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.封装函数,可以判断一个整数是否为质数
对正整数n,如果用2到x之间的所有整数去除,均无法整除,则n为质数
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("
")
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("请输入三位数")