12.22

来源:互联网 发布:大数据云计算就业前景 编辑:程序博客网 时间:2024/05/14 13:09
笔记: 
17.函数
(1)函数是组织好的 可重复使用的某功能的代码块
(2)函数的定义和调用
语法:def 函数名(参数):
函数体
return XXX
定义:def test1():
print(‘hello’)
调用:test1()
(3)参数类型
①可变/不可变参数
1)可变:字典 列表
2)不可变:数值 字符串 元祖
②关键字参数(要写在后面)
1)*args 代表元祖/列表 可以不传参
2)**kwargs 代表字典
③默认参数(缺省参数,必须写在后面)
④不定长参数
⑤参数组合
作业:
# 2、写函数,计算传入字符串中【数字】、【字母】、【空格] 以及 【其他】的个数def test2(a):    sz=0    zm=0    kg=0    qt=0    for i in a:        if i.isdigit():            sz+=1        elif i.isalpha():            zm+=1        elif i==' ':            kg+=1        else:            qt+=1    print('数字有:%d,字母有:%d,空格有:%d,其他:%d'%(sz,zm,kg,qt))test2('suan 1 5 88 .. ')# 3、写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。def test3(*a):    for i in tuple(*a):        if len(*a)>5:            print('长度大于5')            break    else:        print('长度小于5')test3((1,2,3,4,5,6,7,8))# 4、写函数,检查用户传入的对象(字符串、列表、元组)的每一个元素是否含有空内容。def test(*a):    for i in tuple(*a):        if i==''or i==[]or i==():            print('有空内容')            break    else:        print('没有空内容')test((1,2))# 5、写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。def test5(*a):    if len(list(*a))>2:        print('长度大于2,保留结果为:',list(*a)[0:2])        return list(*a)[0:2]    else:        print('长度小于2')test5([1,2,3,4])# 6、写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。def test6(*a):    tplist=[]    for i in range(0,len(list(*a))):        if i%2==1:            tplist.append(list(*a)[i])    return tplistprint(test6([1,2,3,4,5,6,7]))# 7、写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。def test7(**a):    for key in a.keys():        print(key)        if len(a[key])>2:            a[key]=a[key] [0:2]        print(a)    return atest7(k1='123',k2='222')# 8、写函数,利用递归获取斐波那契数列中的第 10 个数,并将该值返回给调用者。def test8(x):    if x==1:        return 1    elif x==2:        return 1    else:        return  test8(x-1)+test8(x-2)print(test8(10))# 10.实现百钱买百鸡,for i in range(0,101):    if i%3==0:        for j in range(0,101-i):            if (100-i-j)*5+i//3+j*3==100:                print(i,j,100-i-j)# 11.实现100和尚吃100馒头for i in range(0,100):    if i%3==0:        if i//3+(100-i)*3==100:            print(i,100-i)# 12.10个数字,每3个除去,剩几?list = [1,2,3,4,5,6,7,8,9,10]list1 = [1,2,3,4,5,6,7,8,9,10]list2 = []list3 = []list4 = []while True:    if len(list2)==9:        for i in list1:            if i not in list2:                print('最后一个数为:',i)        break    else:        list2 = []        list3 = []        list4 = []        for i in range(0,len(list)):            if i%3==2:                list2.append(list[i])       #存储上一轮遗留下来的数字            else:                list3.append(list[i])       #存储上一轮删除的数字        list4 = list3[::-1][0:(10-len(list2))][::-1]    #存储每一轮在10个数中留下的数字        list += list4

原创粉丝点击