博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第三周练习 part4 --- 函数、高阶函数、局部变量、全局变量、递归
阅读量:4623 次
发布时间:2019-06-09

本文共 2836 字,大约阅读时间需要 9 分钟。

函数的使用、局部变量、局部作用域、高阶函数、递归

# 函数的基本使用def fun1():    '''函数描述'''    print('----------1-----------')    print('You are running function 1.')    return 1def fun2():    """并不是函数,而是过程"""    print('----------2-----------')    print('This is has no return value')x = fun1()y = fun2()print(x)print(y)def fun3(a, b):    """求和函数"""    print('----------3-----------')    return a + bprint(fun3(1,2))def fun4(a, b = 0):    """带有默认参数"""    print('----------4-----------')    return a - bprint(fun4(4))  # 可以不输入,此时调用默认参数值print(fun4(6, 1))  # 也可以指定别的值def fun5(*args):  # 接收位置参数——>转换成元组    """加一个 * 来接收未知数量的实参    还可以将形参设置为(x, *args)"""    print('----------5-----------')    print(args)  # 以元组的形式输出    print(*args)  # 以分立的元素输出    return 0fun5(1,2,3,4,'六',['seven', 'eight'])def fun6(**kwargs):  # 关键参数——>字典    """将N个关键参数转化为字典"""    print('----------6-----------')    print(kwargs)    print(kwargs['name'])    print(kwargs['age'])    print(kwargs['sex'])    return 0fun6(name='Lief', age=20, sex='M')def fun7(name, age, sex = 'M', **kwargs):    """实现必须输入姓名年龄,性别设置了默认值邮箱非必填"""    print('----------7-----------')    print(name)    print(age)    print(sex)    print(kwargs['mail'])    return 0fun7('Lief', age=20, sex='F', mail='lingfenglee@qq.com')def fun8(name, age, *args, **kwargs):    """位置参数和关键参数混合使用"""    print('----------8-----------')    print(name)    print(age)    print(args)    print(kwargs)    return 0fun8('Lief', 20, sex='F', mail='lingfenglee@qq.com')fun8('Lingfeng', 22, 'WTF', sex='M', mail='lingfenglee@qq.com')----------------------------------------------------------------------------------------------------------# 局部变量、全局变量name = 'Lief'def change_name(name):    """局部变量name改不了Lief"""    name = 'Lee'    print(name)    return 0change_name(name)print(name)table = [1, 2, 3, 4]def change_table(table):    """可以改全局变量"""    table[2] = 99    print(table)    return 0change_table(table)print(table)dictionary = {
'Name': 'Lief','Age': '20','School': 'TJU' }def change_dic(dictionary): """可以改全局变量""" dictionary['Name']='Lee' print(dictionary) return 0change_dic(dictionary)print(dictionary)----------------------------------------------------------------------------------------------------------# 局部作用域|全局作用域x = 0def grandpa(): x = 1 def father(): x = 2 def son(): x = 3 print(x) son() father()grandpa()print(x)----------------------------------------------------------------------------------------------------------# 高阶函数# 1.把一个函数名当作实参传给另外一个函数# 2.返回值中包含函数名def add(a, b, f): return f(a)+f(b)res = add(8, -9, abs) # abs是内置函数,用于求绝对值print(res)----------------------------------------------------------------------------------------------------------# 递归def calc(n): if n < 10: return calc(n+1) print(n)calc(1)

 

 

转载于:https://www.cnblogs.com/lief/p/8648449.html

你可能感兴趣的文章
详解Javascript中prototype属性(推荐)
查看>>
angularjs实现首页轮播图
查看>>
Git 对象 和checkout 和stash的笔记
查看>>
团队项目总结2-服务器通信模型和顺序图
查看>>
hdu 1085 Holding Bin-Laden Captive!
查看>>
[周记]8.7~8.16
查看>>
递归定义
查看>>
kindeditor 代码高亮设置
查看>>
图的邻接表存储
查看>>
2018 leetcode
查看>>
PHP中获取当前页面的完整URL
查看>>
Chapter 4 Syntax Analysis
查看>>
vi/vim使用
查看>>
讨论Spring整合Mybatis时一级缓存失效得问题
查看>>
Maven私服配置Setting和Pom文件
查看>>
Python标准库:内置函数getattr(object, name[, default])
查看>>
转:android 自定义RadioButton样式
查看>>
HTTP请求过程
查看>>
织梦多域名解析到同一个空间导致打开链接不一致怎么办?
查看>>
Xcode10 library not found for -lstdc++ 找不到问题
查看>>