python 函数的习题

目录

1、定义函数,无参无返,可求出200以内所有包含7的数字。

2、定义函数,无参有返,可返回200-300所有偶数组成的数列。

 3、定义函数,有参无返,可接收任意一个字符串,并计算该字符串有几个字符。

 4、定义函数,有参有返,可接收任意一个字符串,对其进行去重,返回去重后的集合。

5、定义函数,可接收个数字列表,并返回其中的最大和最小值。

6、输出1-n的阶乘。

7、求 sum = 1! + 2! + 3! + …… + 10!

8、求正整数2和100之间的完全数。


1、定义函数,无参无返,可求出200以内所有包含7的数字。

# 【运行结果】:
 ['7', '17', '27', '37', '47', '57', '67', '70', '71', '72', '73', '74', '75', '76',
'77', '78', '79', '87', '97', '107', '117', '127', '137', '147', '157', '167', '170',
'171', '172', '173', '174', '175', '176', '177', '178', '179', '187', '197']

def num():
    num_list = []
    list_7 = []
    # 把0-199的数字赋给num_list列表
    for i in range(200):
        num_list.append(str(i))
    # 判断数字7是否包含在列表当中
    for j in num_list:
        if "7" in j:    #注意要把整型转换为字符串类型
            list_7.append(j)
    print(list_7)

# 调用
num()

2、定义函数,无参有返,可返回200-300所有偶数组成的数列。

# 【运行结果】:
[200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 230,
232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256, 258, 260, 262,
264, 266, 268, 270, 272, 274, 276, 278, 280, 282, 284, 286, 288, 290, 292, 294, 296, 298, 300]

def num_2():
    list_23 = []
    for i in range(200, 300 + 1):
        if i % 2 == 0:
            list_23.append(i)

    print(list_23)

num_2()

 3、定义函数,有参无返,可接收任意一个字符串,并计算该字符串有几个字符。

【运行结果】:
请输入一个字符串:abcdefghijklmnopqrstuvwxyz
你输入的字符串总计 26 个字符。

def num_3(s):
    print(f"你输入的字符串总计 {len(s)} 个字符。")

len_str = input("请输入一个字符串:")
num_3(len_str)


## 不用函数等同于:
len_str = input("请输入一个字符串:")
print(f"你输入的字符串总计 {len(len_str)} 个字符。")

 4、定义函数,有参有返,可接收任意一个字符串,对其进行去重,返回去重后的集合。

【运行结果】:
请输入一个字符串:hello world i am adrian!
{' ', 'e', 'n', 'm', 'r', 'i', 'h', 'l', 'd', '!', 'w', 'a', 'o'}

def set_str(s):
    set_s = set(s)   #set函数集合,直接去重
    print(set_s)

st = input("请输入一个字符串:")
set_str(st)

5、定义函数,可接收个数字列表,并返回其中的最大和最小值。

【运行结果】:
最大值为:74
最小值为:1

def fun6(l):
    max_i = l[0]
    min_i = l[0]
    for i in l:
        if max_i < i:
            max_i = i
        if min_i > i:
            min_i = i

    return max_i, min_i

list_6 = [8, 5, 9, 74, 23, 15, 1, 3, 6]
ls_max, ls_min = fun6(list_6)
print(f"最大值为:{ls_max}")
print(f"最小值为:{ls_min}")

6、输出1-n的阶乘。

# 方法一:
n = int(input())
answer = 1
if n == 0:
    print(answer)
else:
    for i in range(1, n+1):
        answer *= i
    print(answer)
# 不完美程序:没有0的阶乘,但是可以正确输出1-n的阶乘
n=int(input())
cheng=1
for i in range(1,n+1):
    cheng *= i
print(cheng)

7、求 sum = 1! + 2! + 3! + …… + 10!

# 求阶乘
def a(n):
    answer = 1
    if n == 0:
        print(answer)     # 或return answer
    else:
        for i in range(1, n+1):
            answer *= i
    return answer

sum = 0 # 记录总和

for i in range(1, 10+1): # 循环调用函数,参数1~10
    sum +=a(i)
    
print(sum)

8、求正整数2和100之间的完全数。

def k(n):
    sum = 0
    for i in range(1,n):
        if n%i==0:
            sum += i
    return sum
for i in range(2,101):
    if i==k(i):
        print(i)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值