12.20

笔记:

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


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值