举例:

def greet_user():"""显示简单的问候语"""print("Hello!")greet_user()

一、函数定义:

1、使用关键字:def 来定义一个一个python函数。

2、函数名:       greet_user为函数名。在python中使用下划线 ”_" 来分离不同的单词,而不是使用java中常用的驼峰表示法。

3、函数参数:    在函数名后的括号中添加函数的形参。

4、函数定义结尾:使用冒号 “ :”来结尾。

5、函数体:        在冒号后面的为函数体。函数体需要使用缩进来区分是否为函数体,而不是使用括号的方式来界定。

6、文档字符串: 三对双引号为文档字符串(docstring),标记函数的用途。

二、传递参数:

1、传递位置实参:      要求实参和形参的位置保持一致。

2、传递关键字实参:   每个参数都由变量名和值构成。

3、还可以使用列表和字典。

4、默认值:函数定义时可以给每个形参赋默认值,如果函数调用时,没有给该形参赋值,则该值为默认值。

需要注意的是,默认值必须在后面(可以是多个)。

位置实参:

def describe_pet(animal_type, pet_name):"""显示宠物的信息"""print("\nI have a " + animal_type + ".")print("My " + animal_type + "'s name is " + pet_name.title() + ".")describe_pet('hamster', 'harry')

关键字实参:

def describe_pet(animal_type, pet_name):"""显示宠物的信息"""print("\nI have a " + animal_type + ".")print("My " + animal_type + "'s name is " + pet_name.title() + ".")describe_pet(animal_type='hamster', pet_name='harry')

三、返回值:

可使用return 语句将值返回到调用函数的代码行。

def get_formatted_name(first_name, last_name, middle_name = ''):"""返回整洁的姓名"""if middle_name:full_name = first_name + ' ' + middle_name +' ' + last_nameelse:full_name = first_name + ' ' + last_namereturn full_name.title()musician = get_formatted_name('jimi', 'hendrix', 'lee')
print(musician)

四、传递列表:

def greet_users(names):"""向列表总的每位用户都发出简单的问候"""print()for name in names:msg = "Hello, " + name.title() + "!"print(msg)usernames = ['hannah', 'ty', 'margot']
greet_users(usernames)

五、函数修改列表:

def print_models(unprinted_designs, completed_models):"""模拟打印每个设计, 直到没有未打印的设计为止打印每个设计后, 都将其移到列表completed_models中"""while unprinted_designs:current_design = unprinted_designs.pop()#模拟根据设计制作3D打印模型的过程print("Printing model:" + current_design)completed_models.append(current_design)def show_completed_models(completed_models):"""显示打印好的所有模型"""print("\nThe following models have been printed:")for completed_model in completed_models:print(completed_model)unprinted_designs = ['iphone case', 'robot pendant', 'dodecahedron']
completed_models = []print_models(unprinted_designs,completed_models)
show_completed_models(completed_models)

六、禁止函数修改列表:

可以向函数传递列表的副本而非原件来实现禁止函数修改列表。

python使用切片 listname[:] 来创建副本。

print_models(unprinted_designs[:], completed_models)

七、传递任意数量的实参:

def make_pizza(*toppings):"""概述要制作的比萨"""print("\nMaking a pizza with the following toppings:")for topping in toppings:print("- " + topping)
make_pizza('pepperoni')
make_pizza('mushrooms', 'green peppers', 'extra cheese')

其中*toppings中的星号让Python创建一个名为toppings 的空元组, 并将收到的所有值都封装到这个元组中。

Python将实参封装到一个元组中, 即便函数只收到一个值也如此。

八、结合使用位置实参和任意数量实参:

如果要让函数接受不同类型的实参, 必须在函数定义中将接纳任意数量实参的形参放在最后。 Python先匹配位置实参和关键字实参, 再将余下的实参都收集到最后一个形参中。

def make_pizza(size, *toppings):"""概述要制作的比萨"""print("\nMaking a " + str(size) +"-inch pizza with the following toppings:")for topping in toppings:print("- " + topping)make_pizza(16, 'pepperoni')
make_pizza(12, 'mushrooms', 'green peppers', 'extra cheese')

九、使用任意数量的关键字实参:

def build_profile(first,last,**user_info):"""创建一个字典,其中包含我们所知道的有关用户的一切"""profile = {}profile['first_name'] = firstprofile['last_name'] = lastfor key, value in user_info.items():profile[key] = valuereturn profileuser_profile = build_profile('albert', 'einstein',location = 'princeton',field = 'physics')
print(user_profile)

其中:形参**user_info 中的两个星号让Python创建一个名为user_info 的空字典, 并将收到的所有名称—值对都封装到这个字典中。

python学习:函数(一)相关推荐

  1. Python学习—函数

    函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率. 1.定义函数 Python 定义函数使用 def 关键字,一般格式如下: def ...

  2. python学习——函数及其参数

    函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段.函数能提高应用的模块性,和代码的重复利用率.严格来说python只有函数,没有过程,人们理解的函数都是带有return的,而过程 ...

  3. python学习--函数例子

    1 #!/usr/bin/env python3 2 # -*- coding:utf-8 -*- 3 4 #01 函数的定义,调用 5 #生日歌 6 def happy(): 7 print(&qu ...

  4. Debian Linux下的Python学习——函数

    python函数通过def关键字定义.def关键字后跟一个函数的标识符名称,然后跟一对圆括号.圆括号之中可以包括一些变量名,该行以冒号结尾.接下来是一块语句,它们是函数体. 1.无参数函数(函数不带参 ...

  5. python学习-函数(定义、可变参、小练习(列表最小值函数))

    函数目录 定义 可变参函数 自定义列表最小值函数 定义 函数定义使用关键字def,可以不带参数,也可以带参数,带参数的函数,可以使用位置参数,详见示例: str1 = 'sadf'def printV ...

  6. python学习——函数

    函数 内建函数,如print() 用户自定义函数 一.函数定义法则 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 (). def 函数名(参数列表): 函数体 函数内容以冒号 : 起始 ...

  7. 小猿圈python学习-函数的递归

    求100不断除以2直到商为0为止,打印每次除的商 用循环实现 n = 100 while n > 0: n = int(n/2) print(n) 输出: 50 25 12 6 3 1 0 如果 ...

  8. Python学习 - 面向对象之多态

    Python学习 - 语法入门:https://blog.csdn.net/wanzijy/article/details/125287855 Python学习 - 数据类型:https://blog ...

  9. python eval 入门_Python学习笔记整理3之输入输出、python eval函数

    Python学习笔记整理3之输入输出.python eval函数 来源:中文源码网    浏览: 次    日期:2018年9月2日 Python学习笔记整理3之输入输出.python eval函数 ...

  10. 整理了7道Python函数的练习题,希望对你学习函数有帮助

    1.简述普通参数,指定参数,默认参数,动态参数的区别 普通参数:以正确的顺序传入函数,调用时数量必须和声明的一样 指定参数:参数和函数调用关系密切,函数调用使用关键字参数来确定传入的参数值,参数 允许 ...

最新文章

  1. 杭州往事之与L项目SME Cathy小聚
  2. 9、MySQL系统变量(查看和修改)
  3. [Java设计模式]期末作业参考
  4. Vertex and Fragment Shader
  5. 炉石传说服务器维护有补偿吗,炉石传说维护公告全文及具体补偿方案 炉石数据回档怎么补偿?...
  6. Spring Boot(九)Swagger2自动生成接口文档和Mock模拟数据
  7. 人生苦短,Python值得!这些Pandas隐藏小技巧你知道吗?
  8. 【HDUOJ】1213 How many tables
  9. Java克隆--深克隆与浅克隆的区别
  10. 现代通信原理4.2:随机过程
  11. C#,汉字转拼音的算法与源代码
  12. 制作网站需要什么技术呢?
  13. python自动注册邮箱_Python自动登录126邮箱的方法
  14. 法国三家银行加入R3 Corda区块链贷款平台
  15. Android 强制设置应用横屏或竖屏
  16. 多年测试经验分享:上市公司怎么进行安全测试
  17. Linux: ubuntu Appium连接手机
  18. Warshall算法(C++代码实现)
  19. jr某头条新闻爬虫(超详细)
  20. finall,finally,finalize

热门文章

  1. 模电学习8. 三极管推挽电路
  2. Oracle 导出数据库(不积跬步,无以至千里)
  3. 企业全方位改进(CMMI)咨询服务
  4. linux微软雅黑乱码,CentOS安装微软雅黑,解决drawImage中文乱码相关问题
  5. 处cp显示服务器开小差,我和影帝处CP最新章节叶扶予蔺洲叶扶予小说阅读
  6. 交叉熵cross_entropy的python实现
  7. SpringCloud使用手册
  8. linux 查看硬盘的uuid_Ubuntu中查看硬盘分区UUID的方法(所有Linux目录的解释)
  9. Pangolin could not be found because dependency Eigen3 could not be found.
  10. Armin Strom推出“致敬1”系列;卡西欧将发布紧凑型G-SHOCK | 知消