函数题目练习

练习1:
写一个函数myadd, 此函数可以计算两个数,三个数,及四个数的和
def myadd(.....):
  ....

print(myadd(10, 20)) # 30
print(myadd(100, 200, 300)) # 600
print(myadd(1, 2, 3, 4)) # 10

def myadd(a,b,c = 0,d = 0 ):
    sum = a +b + c + d
    return sum

print(myadd(10,20))
print(myadd(100,200,300))
print(myadd(1,2,3,4))
练习1

练习2:
写一个函数mysum 可以传入任意个实参的数字,返回所有实参的和
def mysum(*args):
....
print(mysum()) # 0
print(mysum(1, 2, 3, 4)) # 10
要求: 不允许调用内建函数sum

def mysum(*args):
    sum = 0
    for i in args:
        sum += i
    return sum

print(mysum(1,2,3,3,3))
print(mysum(10,30,50,48))
练习2

 

练习3:
已知内建函数max帮助方档为:
max(iterable)
max(arg1, arg2, *args)
仿造max, 写一个mymax函数,功能与max完全相同
(要求不允许调用max函数)
print(mymax([6, 8, 3, 5])) # 8
print(mymax(100, 200)) # 200
print(mymax(1, 3, 9, 5, 7)) # 9

#方法一
def my_max(*args,**kwargs):
    if len(args) == 1:
        iterable = args[0]#取出该数值
        max1 = iterable[0]
        for i in iterable:#循环判断最大值
            if i > max1:
                max1 =i
        return max1
    elif len(args) > 1:
        max1 = args[0]#当里面数值大于1时
        for i in args:
            if i > max1:
                max1 = i
        return max1
print(my_max([1,2,3]))
print(my_max((1,2,32)))
print(my_max(1,2,31))
#有没有不完善的地方??
当输入print(my_max())时候......,
结果为None?为什么


#升级版
def my_max(a,*args):#默认传入一个值,
    if len(args) == 0:
        max1 = a[0]
        for i in a:
            if i > max1:
                max1 =i
        return max1
    elif len(args) >= 1:
        max1 = a
        for i in args:
            if i > max1:
                max1 = i
        return max1
print(my_max([1,2,3]))
print(my_max((38,2,32)))
print(my_max(38,2,31))
# print(my_max())#若为空,报错


understand???
练习3

练习4

写一个函数 get_chinese_char_count(s) , 此函数返回
一个字符串s中所有中文字符的个数
def get_chinese_char_count(s):
...
s = input("请输入中英文混合的字符串: ")
print("您输入的中文字符的个数是:",
get_chinese_char_count(x))
注:
中文编码范围是: 0x4E00 ~ 0x9FA5(包含)

 1 #方法一
 2 def get_chinese_char_count(s):
 3     l = []
 4     for i in s:
 5         if chr(0x4E00) <= i <= chr(0x9FA5):
 6             l.append(i)
 7     return len(l)
 8 s = input("输入中英文字混合的字符串:")
 9 print("您输入的中文字符个数是",get_chinese_char_count(s))
10 
11 #方法二
12 def get_chinese_chr_count(s):
13     count = 0
14     for i in s:
15         if 0x4E00 <= ord(i) <= 0x9FA5:
16             count += 1
17     return count
18 
19 x = input("输入")
20 print(get_chinese_chr_count(x))
练习4

练习5 素数的练习

1). 写一个函数 isprime(x) 判断x是否是素数,如果为素数则返回
True, 否则返回False

2). 写一个函数 prime_m2n(m, n) 返回从m开始,到n结束范围内
的素数(不包含n), 返回这些素数的列表,并打印
如:
  L = prime_m2n(10, 20)
  print(L) # [11, 13, 17, 19]
3.) 写一个函数primes(n), 返回指定范围内n(不包含n)的全部素
数的列表,并打印这些素数的列表
  L = primes(10)
  print(L) # [2, 3, 5, 7]
  1) 打印100 以内的全部素数
  2) 打印 100 ~ 200之间全部素数的和

 1 #1)
 2 def isprime(x):
 3     for i in range(2,x):
 4         if x % i == 0:
 5             return False
 6     return True
 7 
 8 print(isprime(3))#Ture
 9 print(isprime(6))#False
10 
11 #2)
12 def prime_m2n(m,n):
13     l = []#创建列表存储素数
14     for i in range(m,n):
15         if isprime(i) is True:
16             l.append(i)
17     return l
18 L = prime_m2n(5,20)
19 print(L)
20 #你以为这就够了?还有更牛逼的!!!
21 def prime_m2n(m,n)
22     return [x for x in range(m,n) if prime(x)]
23 print(prime_m2n(10,20))
24 #一行代码,震惊了吧,列表推导式,强!!
25 #3)
26 def primes(n)
27     return prime(0,n)#利用已经定义好的prime_m2n函数,直接得出
28 print(primes(20))
29 print(sum(primes(20)))
素数练习

 

转载于:https://www.cnblogs.com/bolt5225/p/10113213.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值