当前位置: 首页 > article >正文

python calu()函数_Python学习笔记4:函数

1.函数

函数就是一段具有特点功能的、可重用的语句组。

在Python中函数是以关键词 def 开头,空格之后连接函数名和圆括号(),最后一个冒号:结尾。

函数名只能包含字符串、下划线和数字且不能以数字开头。虽然函数名可以随便起,但我们给函数起名字还是要尽量简短,并表达函数功能。

每一个函数都应该对功能和参数进行相应的说明,应该写在函数下面第一行。以增强代码的可读性。

def strlen(s):

“”“ calulate the length of the string ”“”

len = 0

for x in s:

len = len + 1

return len

空函数

def null_fun():

"""This is a null fun"""

pass #pass语句什么都不做,实际上用来作为占位符

不写return与写入return None的效果相同,返回的只都是None

只写一个return后面不加任何东西的时候与写return None的效果一样

如果在函数中有多个return,只执行第一个return。

多返回值函数

def mult_return():

name='Lily'

age=18

return name, age

c= mult_return()

print(c)

# ('Lily', 18)

n, a = mult_return()

print(n, a)

# Lily 18

当用一个变量接收返回值的时候,收到的是一个元组。这是因为在python中把用逗号分割的 多个值认为是一个元组。

当返回值有多个变量接收,那么返回值的个数应该和接收变量的个数完全一致。

函数调用

s='hello world!'

length=strlen(s) #调用上面写的strlen函数

print(length) #打印输出12

函数参数

函数的参数安装类型可以分为形参和实参(可变类型和不可变类型)。

不可变类型(如 整数、字符串、元组)传递的只是它的值,没有影响对象本身。如果在函数内部修改它的值,则是相当于新生成一个它。

可变类型则类似C++的引用传递,如列表,字典。则是将参数真正的传过去,修改后外部的参数变量也会受影响。

def invariableFun(i):

i=100 #参数为不可变类型,函数内部改变不会影响外部参数

a=1

print(a)

invariableFun(a)

print(a)

#输出结果如下

1

1

def variantFun(list):

list.append('python') #参数为可变类型,函数内部改变会影响外部参数

mylist=['Lily', 'James']

print(mylist)

variantFun(mylist)

print(mylist)

#输出结果如下

['Lily', 'James']

['Lily', 'James', 'python']

参数还可以分为必需参数,关键字参数, 默认参数和不定长参数。

1)必需参数

必要参数,即函数调用时必须要传的参数。

2)默认参数

必选参数在前,默认参数在后,否则python解释器会报错。

默认参数一定要指向不变对象!指向不变对象!指向不变对象!

def student(name, age=18):

print(name, age)

student("Lily")

student("Lily", 20)

#输出结果如下:

Lily 18

Lily 20

3)关键字参数

其实默认参数中已经出现了关键字参数!关键字参数就是在调用函数时,传入实参时带参数名,用这样的方式传入的实参叫做关键字参数。

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

def student(name, age=18):

print(name, age)

student(age=22, name='Lily')

#输出结果如下:

Lily 22

4)不定长参数

不定长参数又分为两种:

a.允许在调用时传入多个“非关键字”参数,python会将这些多出来的参数放入一个元组中。

def tupleVarArgs(arg1, arg2='default arg2', *other):

print('arg1: ', arg1)

print('arg2: ', arg2)

for x in other:

print('other arg: ', x)

#调用输出结果如下:

tupleVarArgs('Lily')

arg1: Lily

arg2: default arg2

tupleVarArgs('Lily', 'Sandy')

arg1: Lily

arg2: Sandy

tupleVarArgs('Lily', 'Sandy', 'James', 'Curry')

arg1: Lily

arg2: Sandy

other arg: James

other arg: Curry

b.允许在调用时传入多个“关键字”参数,python会将这些多出来的放入一个字典中。需要注意的是,关键字变量参数应该为函数定义的最后一个参数,带**。

def dictVarArgs(arg1, arg2='default arg2', **otherArgs):

print('arg1: ', arg1)

print('arg2: ', arg2)

for x in otherArgs.keys():

print('other arg: '% (x, str(otherArgs[x])))

#调用输出结果如下:

dictVarArgs('Lily')

arg1: Lily

arg2: default arg2

dictVarArgs('Lily', 'Sandy')

arg1: Lily

arg2: Sandy

dictVarArgs('Lily', 'Sandy', name1='James', name2='Curry')

arg1: Lily

arg2: Sandy

other arg:

other arg:

http://www.lryc.cn/news/2416605.html

相关文章:

  • 越狱必备插件
  • 论文阅读笔记-WF攻击入门基本概念
  • DataReader类型化数据读取与装箱性能研究
  • 资源网站-转自知乎
  • script什么意思中文翻译成,script的中文意思是什么
  • Android源码下载(包括最新8.0版本)
  • 一些时间日期函数,转自华软
  • Java 程序员新机必备程序清单
  • C语言的字节对齐
  • 前端必知必会-CSS布局display属性
  • 一篇文章搞懂RAID磁盘阵列
  • Delphi编程---可以进行四则运算的Tcalc类源代码
  • tftpd32+ tftpd64文件传输安装和使用教程【图文并茂】
  • 学生信息管理系统模块ExecuteSql 函数详解
  • 属性PropertyInfo的使用
  • 航天器状态(位置速度)转轨道六根数
  • EPon F4503.0作为交换机使用废旧光猫中国电信光猫改交换机功能作为无线wifi或者交换机使用天翼网关中兴ZXHN免拆机获取破解超级管理员密码
  • AT24C04 eeprom读写测试
  • hotstuff共识算法总结
  • 初学者如何制作一个简单的HTML个人网页
  • IEEE1394(火线)接口全面了解
  • Freemaker指令总结
  • 文本处理正则表达式:grep
  • MySQL字符集的设置
  • C语言“学生信息管理系统”功能详解及代码展示2023级慕课版
  • go二维map_记一次坑爹的golang 二维map判断问题
  • Android Studio 代码混淆(你真的会混淆吗)
  • JSP基于web仓库管理系统v83k3(程序+源码+数据库+调试部署+开发环境)
  • RISC架构
  • 多线程编程java_java多线程编程