规则

python也支持函数功能,但是定义了一些简单规则

  • 函数代码以def关键词开头,后接函数标识符名称 和圆括号()。
  • 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数
  • 函数的第一行语句可以选择性地使用文档字符串-用于存放函数说明
  • 函数内容以冒号起始,并且要缩进四个空格
  • return [表达式]结束函数,返回一个值给调用方,不带表达式的return相当于返回None

语法

函数一般格式如下

def 函数名(参数列表):函数体

示范用例:

def add(a, b):return a+b

参数传递

python函数参数传递分为可更改和不可更改对象

不可更改对象:类似于c/c++中的实参传递,例如整数,字符串等等。python中的不可更改为string , tuples和number

示范用例:

def Convert(nuber):number = 10age = 20
print(f"age: {age}")
Convert(age)
print(f"age: {age}")

运行结果:

可更改对象:类似于引用传递,可以更改参数值,list, dict等为可更改对象

# 可写函数说明
def changeme( mylist ):"修改传入的列表"mylist.append([1,2,3,4])print ("函数内取值: ", mylist)return# 调用changeme函数
mylist = [10,20,30]
changeme( mylist )
print ("函数外取值: ", mylist)

运行结果:

参数

函数参数类型:

  • 必须参数
  • 关键字参数
  • 默认参数
  • 不定长参数

必须参数

必需参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。

关键字参数

关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。

使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。

示范用例:

#可写函数说明
def printinfo( name, age ):"打印任何传入的字符串"print ("名字: ", name)print ("年龄: ", age)return#调用printinfo函数
printinfo( age=50, name="runoob" )

运行结果:

默认参数

在函数调用时,如果没有传递参数,则会使用默认参数

示范用例:

#可写函数说明
def printinfo( name, age=33 ):"打印任何传入的字符串"print ("名字: ", name)print ("年龄: ", age)return#调用printinfo函数
printinfo( name="runoob" )

运行结果:

不定长参数

一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数。

基本语法格式

def functionname([formal_args,] *var_args_tuple ):"函数_文档字符串"function_suitereturn [expression]

示范用例:

#this one is like your script with argv
def print_two(*args):arg1, arg2 = argsprint(f"arg1: {arg1}, arg2: {arg2}")print_two("Zed", "Shaw")

运行结果:

另外一种两个*号格式:

def functionname([formal_args,] **var_args_dict ):"函数_文档字符串"function_suitereturn [expression]

使用范例:

# 可写函数说明
def printinfo( arg1, **vardict ):"打印任何传入的参数"print ("输出: ")print (arg1)print (vardict)# 调用printinfo 函数
printinfo(1, a=2,b=3)

运行结果:

如果单独出现星号 * 后的参数必须用关键字传入。

def f(a,b,*,c):return a+b+cf(1,2,c=3)
f(1,2,3)

运行结果:

笨方法“学习python笔记之函数相关推荐

  1. 笨方法“学习python笔记之print()函数end

    在<"笨方法"学习python>中的第7个习题中的用例代码中有print()函数的end用例 代码如下: end1 = "C" end2 = &qu ...

  2. 笨方法“学习python笔记之urlopen

    最近在学习"笨方法"学python中,在习题41中发现了urlopen()函数,特意查了下官方资料,查资料最好查官方资料,最好不要做"百度君".urlopen( ...

  3. 笨方法“学习python笔记之输入

    Python程序输入和其他语言一样,主要有三种方式 1:常用的 使用input()函数,作为程序的输入 例子就采用<"笨方法"学python>中的第·12个习题作为例子 ...

  4. “笨方法”学习Python笔记(1)-Windows下的准备

    Python入门书籍 来自于开源中国微信公众号推荐的一篇文章 全民Python时代,豆瓣高级工程师告诉你 Python 怎么学 问:请问你目前最好的入门书是那本?有没有和PHP或者其他语言对比讲Pyt ...

  5. 笨方法“学习python笔记之元组(tuple)

    Tuple(元组)是python的基本序列三种类型之一(另外两种是List, Range),是"笨方法"学python3中没有讲到的数据类型,因此专门查了下官方资料,中可以查找到对 ...

  6. 笨方法“学习python笔记之字典

    列表是线性存储,且可以随机访问,且是有序的,其访问可以通过索引来访问.而字典是另外一种存储数据,可以通过建立键和值的映射关系,就和查字典差不多,通过键就可以查找到相对应的值 字典创建 字典创建过程中每 ...

  7. 笨方法“学习python笔记之列表

    列表是python 的基本数据结构,是一堆数据的集合,类似于其他语言的数组一样,每个列表成员都有一个索引,以便于进行访问. 列表创建 列表创建比较简单,每个列表成员使用逗号进行分开,例如如下: com ...

  8. 笨方法“学习python笔记之文件操作

    python 与其他语言相比,操作文件非常方便,提供了良好的API. Open函数 python是以文件对象的方式来操作文件,操作文件之前首先要打开文件产生一个文件对象,以便进行后续操作. open( ...

  9. 笨方法“学习python笔记之print换行

    python中 print()函数打印换行有几种 方法: 1:第一种方法是使用多个print打印,多个print默认换行 例子 print("Hello world") print ...

最新文章

  1. c++ STL容器初探
  2. 【高危】Strurs2又现高危漏洞(附PocExp)
  3. tstringgrid 单元格区域获取_对合并单元格的序号填充还在一个个的手动录入?那就真的Out了!...
  4. 项目: 打字母游戏【c++/c】
  5. 生成excel表格并下载
  6. typecho插件库 TeStore 方便监控插件版本
  7. [二次开发][Discuz!X] Discuz!二次开发基本知识
  8. go 输入输出流(fmt)
  9. 如何安装vscode网页版_如何让用编辑器编写EverNote?
  10. html5的video怎么把里面的控制器移出来_电动车突然不走了,但控制器和转把没坏,但车走电,这是怎么回事...
  11. Python学习---深浅拷贝的学习
  12. 基于Cookie跨域的单点登录问题
  13. java12 - 7 排序的案例
  14. 国庆高质量出行,可视化开启智慧旅游
  15. 搜狗高速浏览器收藏夹怎么恢复 搜狗浏览器收藏夹恢复教程
  16. 【小程序源码】团长头像制作小程序源码
  17. 《留住好员工》-读后感
  18. 面试被问到CAS原理,触及知识盲区,脸都绿了!
  19. 【微信小程序】图片下方有白边
  20. EOJ 3344.送命题

热门文章

  1. 微信小程序时代,哪些人能赚到第一桶金
  2. 怎样正确查看Linux的内存占用情况
  3. Java中主线程如何捕获子线程抛出 ...
  4. Java描述设计模式(24):备忘录模式
  5. css中calc()方法的使用
  6. react native 0.56.0
  7. 《自己动手做交互系统》——第2章 音乐蛋糕盘
  8. 关于高性能网络编程的一些知识
  9. 快速高效计算sin与cos
  10. 软件行业大牛告诉你何谓成功?