翼度科技»论坛 编程开发 python 查看内容

跟着廖雪峰学python 005

5

主题

5

帖子

15

积分

新手上路

Rank: 1

积分
15
 函数的调用、定义、参数 

​编辑
 #######命名关键字参数没完
abs()函数:绝对值
  1. >>> abs(100)
  2. 100
  3. >>> abs(-20)
  4. 20
复制代码
max()函数:接收任意多个参数,并返回最大的那个
  1. >>> max(1, 2)
  2. 2
  3. >>> max(2, 3, 1, -5)
  4. 3
复制代码
数据类型转换函数:
int():整数
float():浮点型
str():字符型
bool():布尔型
定义函数
  1. def my_abs(x):
  2.     if x >= 0:
  3.         return x
  4.     else:
  5.         return -x
复制代码
执行到return时,函数就执行完毕,并将结果返回
如果已经把my_abs()的函数定义保存为abstest.py文件了,那么,可以用from abstest import my_abs来导入my_abs()函数,注意abstest是文件名(不含.py扩展名):
空函数

如果想定义一个什么也不做的空函数,可以用pass语句:
  1. def nop():
  2.     pass
复制代码
pass 用来作为占位符,比如没想好写什么函数代码,可以先放个pass让整体代码正常运行
pass也可以用在其他语句
  1. if age >= 18:
  2.     pass
复制代码
这句缺少pass,代码就会有语法错误
返回多个值

比如在游戏中经常需要从一个点移动到另一个点,给出坐标、位移和角度,就可以计算出新的坐标:
  1. import math  #表示导入math包,并允许后续代码引用包里的sin、cos等函数
  2. def move(x, y, step, angle=0):
  3.     nx = x + step * math.cos(angle)
  4.     ny = y - step * math.sin(angle)
  5.     return nx, ny
复制代码
python多值返回就是返回一个tuple
​编辑
 函数参数

位置参数

计算
<span >
<span  title="点击并拖拽以改变尺寸">​<span  title="编辑图片">编辑的函数:
  1. def power(x):
  2.     return(x*x)
复制代码
计算
<span >
<span  title="点击并拖拽以改变尺寸">​<span  title="编辑图片">编辑的函数:
  1. def power(x, n):
  2.     s = 1
  3.     while n > 0:
  4.         s = s * x
  5.         n = n - 1
  6.     return x
复制代码
x和n都是位置参数,调用函数时,传入的两个值按照位置顺序依次赋给参数x和n
把第二个参数n的默认值设定为2:
  1. def power(x, n = 2):
  2.     s = 1
  3.     while n > 0:
  4.         s = s * x
  5.         n = n - 1
  6.     return x
复制代码
此时,power(5)和power(5,2)等价
若n>2,就必须明确地传入n,比如power(5,3)
注意:
必选参数在前,默认参数在后,否则Python的解释器会报错(容易产生歧义)
当函数有多个参数时,把变化大的参数放在前面,默认参数放在后面(降低调用函数的难度)
如:
  1. def enroll(name, gender, age=6, city='Beijing'):
  2.     print('name:', name)
  3.     print('gender:', gender)
  4.     print('age:', age)
  5.     print('city:', city)
复制代码
大多数学生注册时不需要提供年龄和城市,只提供必须地两个参数即可
  1. enroll('Bob', 'M', 7)
  2. enroll('Adam', 'M', city='Tianjin')
复制代码
​编辑
可变参数

传入的参数个数是可以变的
如:给一组数字,计算平方和(作为一个list或tuple传进来)
  1. def calc(numbers):
  2.     sum = 0
  3.     for n in nmumbers:
  4.         sum = sum + n * n
  5.     return sum
复制代码
若函数参数为可变参数:
  1. def calc(*numbers):
  2.     sum = 0
  3.     for n in numbers:
  4.         sum = sum + n * n
  5.     return sum
复制代码
定义可变参数和定义一个list或tuple参数相比,只是在参数前面加一个 * 号,参数numbers接收到的是一个tuple。调用该函数时,可以传入任意个参数,包括0个参数
 关键参数:
 关键字参数允许你传入0个或任意个含参数名的参数:
  1. def person(name, age, **kw):
  2.     print('name:', name, 'age:', age, 'other:', kw)
复制代码
也可以传入任意个数的关键字参数:
  1. >>> person('Michael', 30)
  2. name: Michael age: 30 other: {}
  3. >>> person('Bob', 35, city='Beijing')
  4. name: Bob age: 35 other: {'city': 'Beijing'}
  5. >>> person('Adam', 45, gender='M', job='Engineer')
  6. name: Adam age: 45 other: {'gender': 'M', 'job': 'Engineer'}
复制代码
关键参数可以扩展函数功能。比如,person函数name和age两个参数是必选项,但如果提供更多的参数就需要利用关键字参数
可以把字典转换为关键字参数传进去:
  1. >>> extra = {'city': 'Beijing', 'job': 'Engineer'}
  2. >>> person('Jack', 24, **extra)
  3. name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'}
复制代码
​​
  1. >>> extra = {'city': 'Beijing', 'job': 'Engineer'}
  2. >>> person('Jack', 24, city=extra['city'], job=extra['job'])
  3. name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'}
复制代码

来源:https://www.cnblogs.com/DJC-Allen/p/17134801.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具