12.20

来源:互联网 发布:网络基础技术视频教程 编辑:程序博客网 时间:2024/06/05 17:09

笔记:

1. 函数

(1) 函数是组织好的 可重复使用的某功能的代码块

(2) 函数的定义和调用

语法:def 函数名(参数):

函数体

return XXX

定义:def test1():

print(‘hello’)

调用:test1()

(3) 参数类型

① 可变/不可变参数

1) 可变:字典 列表

2) 不可变:数值 字符串元祖

② 关键字参数(要写在后面)

1) *args 代表元祖/列表 可以不传参

2) **kwargs 代表字典

③ 默认参数(缺省参数,必须写在后面)

④ 不定长参数

⑤ 参数组合

作业:

# # 12.19作业:# # 1、简述普通参数、指定参数、默认参数、动态参数的区别# # 普通参数:就是放入一个形参,当放入实参时,需要按照顺序给形参值。# # 指定参数:放入实参时是指定的,不用按照顺序给形参,都能让形参获得相应的参数。# # 默认参数:在形参内指定一个参数,需要放在形参的最后面。当实参没有给值时,就默认是形参的值。# # 动态参数:格式:*args 和 **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('jiu 12 5 去 2525年份喊打jj++-**')# # 3、写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。# def test3(*b):#     if len(*b)>5:#         print('长度大于5')#     else:#         print('长度小于5')#     # print(*b)# test3('asdadaa')# # 4、写函数,检查用户传入的对象(字符串、列表、元组)的每一个元素是否含有空内容。# def test4(*a):#     for i in tuple(*a):#         if i==None or i==() or i==[]:#             print('有空内容')#             break#     else:#         print('没有空内容')##         # print(i)# test4('')## # 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,5,6])# # 6、写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。# def test6(*a):#     tplist=[]#     for i in range(0,len(list(*a))):#         if i%2==1:#             tplist.append(list(*a)[i])#     return tplist# print(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 a# test7(k1='125',k2='2222')# 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))# 9、将通讯录管理系统改成函数的形式实现# 10.实现百钱买百鸡,公鸡一只5钱,母鸡一只3钱,小鸡1钱3只# 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