20201014-python高级函数作业

1、定义一个使用不定长参数的函数,并在函数中打印出参数及其类型,统计传入参数的个数

def test(a,b,*args,c=10,**kwargs):   

    print("a=",a)

    print("b=",b)

    print("args=",args)

    print("c=",c)

    print("kwargs=",kwargs)

    print("参数总长度:",1+1+len(args)+1+len(kwargs))

test(1,2,3,4,5,m=4)


def test(a,b,c=10,*args,**kwargs):    

    print("a=",a)

    print("b=",b)

    print("args=",args)

    print("c=",c)

    print("kwargs=",kwargs)

    print("参数总长度:",1+1+len(args)+1+len(kwargs))

test(1,2,3,4,5,m=4)


2、定义一个函数max,接受的参数类型是数值,最终返回两个数中的最大值

def max(num1,num2):

    if num1>num2:

        return num1

    else:

        return num2

3、定义一个函数min,接受的参数类型是数值,最终返回两个数中的最小值

def min(num1,num2):

    if num1<num2:

        return num1

    else:

        return num2

4、分别定义加减乘除四个函数实现两个数之间的加减乘除操作

# 加法

def add(a,b):

return a+b

# 减法

def sub(a,b):

return a-b

# 乘法

def mul(a,b):

return a*b

# 除法

def div(a,b):

if b==0:

     return 0

else:

     return a/b

5、分别定义加减乘除四个函数,然后实现多个数之间的累加累减累除累乘操作,如[1,2,3,4,5],累加即是1+2+3+4+5,注意当使用除法时,应判断被除数不能为0

#累加

def add(a,b,*args):

    s=a+b

    for i in args:

        s=s+i

    return s

#累减

def sub(a,b,*args):

    s=a-b

    for i in args:

        s=s-i

    return s

#累乘

def mul(a,b,*args):

    s=a*b

    for i in args:

        s=s*i

    return s

#累除

def div(a,b,*args):

    if b==0:

        return a

    else:

        s=a/b

    for i in args:

        if i ==0:

            continue

        else:

            s=a/b

    return s

6、使用不定长参数定义一个函数max_min,接受的参数类型是数值,最终返回这些数中的最大值和最小值——错题

def max_min(*args):

    max=0

    min=0

    if len(args)==0:

        return 0,0

    elif len(args)==1:

        return args[0],args[0]

    else:

        max=args[0]

        min=args[0]

        for i in args:

            if max<i:

                max=i

            if min>i:

                min=i

        return max,min

7、定义一个函数,返回n的阶乘的最后结果,并打印出如5阶乘"5!=120”的效果——错题

def f(n):

    s=1

    for i in range(n):

        s=s*(i+1)

print('%s!=%s' %(n,s)) 

f(5)

8、定义一个函数,返回由n(包含n)以内的奇数或者偶数组成的列表,默认返回全是奇数的列表

def f(n,type='j'):

    ls=[]

 if type=='j':

 for i in range(1,n+1):

 if i%2==1:

                ls.append(i)

 if type=='o':

 for i in range(1,n+1):

 if i%2==0:

                ls.append(i)

 return ls

9、定义一个函数,打印出n以内的所有的素数(指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。)——错题

def f(n):

    ls=[2]

    for i in range(3,n):

        for j in range(2,i):

            if i%j == 0:

                break

        else:

            ls.append(i)

    print(ls)

10、定义一个函数,接受三个参数,分别为字符串s、数值a1、数值a2,将字符串s从下标a1开始的a2个字符删除,并把结果返回,a2默认值为0——错题

def cut_str(s,a1,a2=0):

    length = len(s)

    if a1+1>length or a2 == 0:

        return s

    else:

        s1 = s[:a1]

        s2 = s[a1+a2:]

        return s1+s2

print(cut_str("hello",6,1))

11、请定义两个函数,一个函数画正方形,一个函数画三角形,并且可以从键盘输入值来决定画正方形还是画三角形以及决定是否退出程序

我的答案:

import turtle

def z():

    for i in range(4):

        turtle.fd(20)

        turtle.right(90)

def s():

    for i in range(3):

        turtle.fd(20)

        turtle.right(120)

m=input('请输入值,z画正方形,s画三角形,其它任意键退出程序:')

if m =='z':

    z()

elif m=='s':

    s()

else:

    print('退出程序')

官方答案:

def square(n):

    for i in range(n):

        print("*"*n)

def triangle(n):

    for i in range(n):

        print("*"*(i+1))

12、定义函数findall,实现对字符串find方法的进一步封装,要求返回符合要求的所有位置的起始下标,如字符串"helloworldhellopythonhelloc++hellojava",需要找出里面所有的"hello"的位置,最后将返回一个元组(0,10,21,29),即将h的下标全部返回出来,而find方法只能返回第一个——没懂

def findall(string, s):

    ret = []

    if s=='':

        return ret

    while True:

        index = string.find(s)

        if index != -1:

            if len(ret)!=0:

                ret.append(ret[-1]+index+len(s))

            else:

                ret.append(index)

            string = string[index+len(s):]

        else:

            break

    return ret

print(findall("abc-abc-abc-","-"))

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,542评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,822评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,912评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,449评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,500评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,370评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,193评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,074评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,505评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,722评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,841评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,569评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,168评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,783评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,918评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,962评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,781评论 2 354