python函数练习

1、编写函数,传入N,求1+2+3+…N的和

def s_sum(num):
    i = 1
    sum1 = 0
    while i <= num:
        sum1 += i
        i += 1
    return sum1


num = int(input('请输入一个整数:'))
print('和为:',s_sum(num))

2、编写一个函数,定义一个列表,求列表中的最大值

def n_max(nums):
    max_num = 0
    for x in nums:
        if max_num < x:
            max_num = x
    return max_num


nums = [12,23,12,34,55,65,43,23,78,1,89]
print('最大值为:',n_max(nums))

3、编写一个函数,实现摇骰子的功能,打印N个骰子的点数和

from random import randint
def s_sum(n):
    b = 0
    while n > 0:
        a = randint(1, 6)
        b += a
        n -= 1
    return b


n = int(input('请输入骰子个数:'))
print(s_sum(n))

4、编写一个函数,提取指定字符串中所有的字母,然后拼接在一起产生一个新的字符串

例如: 传入'12a&bc12d-+'   -->  'abcd'  
def zi_mu(str1):
    str2 = ''
    for x in str1:
        if 'a' <= x <= 'z' or 'A' <= x <= 'Z':
            str2 += x
    return str2   


str1 = '12a&bc12d-+'
print(zi_mu(str1))

5、写一个函数,求列表的平均值

def n_avg(nums):
    sum_num = 0
    for x in nums:
        sum_num += x
    return sum_num / len(nums)   


nums = [12,23,12,34,55,65,43,23,78,1,89]
print('平均值为:',n_avg(nums))

6、写一个函数,求10的阶乘

def factorial(n):
    x = 1
    while n > 0:
        x *= n
        n -= 1
    return x

print(factorial(10))

7、写一个函数实现自己in操作,判断指定序列中,指定的元素是否存在

例如: 序列: (12, 90, 'abc')   元素: '90'     结果: False
     序列: [12, 90, 'abc']   元素: 90     结果: True     
def str_in(s1,s2):
    flag = False
    for x in s1:
        if x == s2:
            flag = True
            break
    return flag

param1 = (12, 90, 'abc')
str1 = '90'
print(str_in(param1,str1))

8、写三个函数,分别实现求两个列表的交集、并集、差集的功能

def jiao_ji(list1, list2):
    jiao_ji = []
    for x in list1:
        if x in list2:
            jiao_ji.append(x)
    return jiao_ji


def bing_ji(list1, list2):
    bing_ji = []
    for x in list1:
        bing_ji.append(x)
    for y in list2:
        if y not in bing_ji:
            bing_ji.append(y)
    return bing_ji


def cha_ji(list1, list2):
    cha_ji = []
    for x in list1:
        if x not in list2:
            cha_ji.append(x)
    return cha_ji

list1 = [2, 4, 6, 8, 10, 12, 14, 16]
list2 = [2, 4, 6, 8]
print(jiao_ji(list1, list2))
print(bing_ji(list1, list2))
print(cha_ji(list1, list2))

9、输入一个数,判断这个数是否是质数(要求使用函数 + for循环)

def zhishu(num):
    for i in range(2, num//2+1):
        if num % i == 0:
            return (f"{num}不是质数")
    return (f"{num}是质数")

num = int(input('请输入一个数:'))
print(zhishu(num))

10、编写一个函数,输出50~150之间的质数?

def zhishu(num):
    for i in range(2, num//2+1):
        if num % i == 0:
            return False
    return True


for i in range(50, 151):
    if zhishu(i):
        print(f"{i}是质数")

11、编写一个函数,输出100~1000之间的水仙花数?

def num1():
    for num in range(100, 1000):
        i = num // 100
        j = num // 10 % 10
        k = num % 10
        if num == i ** 3 + j ** 3 + k ** 3:
            print(f"输出的水仙花数为:{num}")

num1()

12、编程求出满足以下条件的三位数:它除以11所得的商等于它各位数字之和

def nums():
    for num in range(100, 1000):
        i = (num % 100) % 10
        j = (num % 100)//10
        k = num//100
        sums = i+j+k
        if sums == num/11:
            print("满足条件的三位数为:%s" % num)
            break

nums()

13、编写一个函数,求1~100之间不能被3整除的数之和

def sums():
    sum = 0
    for num in range(1, 101):
       if num % 3 != 0:
           sum += num
    print(f"1~100之间不能被3整除的数之和为:{sum}")

sums()
  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值