函数1

1、自己定义函数

def 函数名(参数列表) :

  使用return返回值

别的文件要调用该自定义函数,需要添加语句 from 文件名 import 函数名

例如: from abstest import my_abs

可以定义空函数用作占位符,适用于写程序的粗略框架

def nop():

  pass

2、Python可以使用tuple返回多个值

 例如 x,y=move(100,100,60,math.pi)

import math

def move(x, y, step, angle=0):

    nx = x + step * math.cos(angle)
    ny = y - step * math.sin(angle)
    return nx, ny
函数还可以在形参中给参数赋默认值,如果调用函数时,不写该参数,那么函数中按默认值处理。
建议某些值占绝大多数的变量赋默认值,这样调用时就可以不用输入了。
可以有多个设置默认值的参数,但是调用时要按顺序,如果不想按顺序,就要写出形参名
def enroll(name,gender,age=6,city='beijing'):
print("name is:",name)
print("gender is",gender)
print("age is",age)
print("city is",city)
from enroll import enroll
enroll('Sarah','F')
enroll('Sandra','F',7,'shanghai')
enroll('kimi','M','7')
enroll('Jason','M',city='Fuzhou')


形参如果设置默认值,只能指向不变对象,在定义的时候,该形参的值就被计算出来了,这里指的是形参指向的内存地址被计算出来了,该内存地址不变,但是如果内存地址里的值发生了改变,即指向了可变的对象,那么每一次调用值都会变化,因此形参指向变化的值,导致出问题。
如果需要设置形参的默认值为空list,可以用None来做标志,如果调用时不输入参数,那么L=None,如果判断成功,就给L赋值为空list
def add_end(L=None):
    if L is None:
        L = []
    L.append('END')
    return L
 
原文地址:https://www.cnblogs.com/vonkimi/p/6798859.html