Funciones de Python autodidactas

1. Introducción a la función

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数
内建函数    说明https://docs.python.org/zh-cn/3.7/library/functions.html

2. Función personalizada

  语法:
Python 定义函数使用 def 关键字,一般格式如下:
def 函数名(参数列表):
    函数体
默认情况下,参数值和参数名称是按函数声明中定义的顺序匹配起来的。

    规则
             你可以定义一个由自己想要功能的函数,以下是简单的规则:
1.函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
2.任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
3.函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
4.函数内容以冒号起始,并且缩进。
5.return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

Caso:

def showinfo():
    """
    定义打印个人信息函数
    :return:
    """
    print("=======个人信息=====")
    print("名字:admin")
    print("密码:123")
    	
#调用
showinfo()

3. Clasificación de funciones

 1 有参有返回值
 2 有参无返回值
 3 无参有返回值
 4 无参无返回值
#============无参无返回值============
def showinfo():
    """
    定义打印个人信息函数
    :return:
    """
    print("=======个人信息=====")
    print("名字:admin")
    print("密码:123")	
#============无参有返回值============
#return 结束函数
# 1如果函数体中没有if while  控制流,那么在return 添加语句是无效
# 2 函数的返回类型保持一致,可以不一样
def get_name():
    print("getName1")
    print("getName2")
    number=1
    if number==1:
        return 1
    elif number==2:
        return  "2"
#print(get_name())
#============有参无返回值============
# name 形参
def showinfo1(name,age):
    print("有参无返回值")
    print(name,age)
#n = "a" # 实参
#showinfo1(n,1)
#============有参有返回值============
def getnumber(number1,number2):
    return number1+number2	
print(getnumber("1","2"))

4. Variables locales y variables globales

#全局变量
#在函数外声明的变量,叫全局变量
#作用范围多个函数
number=2  #全局变量
# 局部变量 在函数中声明变量叫局部变量
#作用范围 当前函数
# 当函数执行完,则释放内存
# 如果说全局变量和局部变量名字一样,在函数中优先级高的是局部变量
def  getnumber1():
    number=1  #局部变量
    print(number)
def  getnumber2():
    print(number)	
#getnumber2()	
# getnumber1()	
#当内部作用域想修改外部作用域的变量时,就要用到global关键字了
count = 1
def change():
    global count #  说明count是全局变量
    count = 3
    print(count)	
change()
print(count)

5. Transferencia de parámetros

  #参数传递
# 不可变的对象做参数是,传值  (strings, tuples, 和 numbers 是不可更改的对象)
def change(number):
    number=number+1
    print("函数内",number)
number= 1
#调用函数
#change(number)
#print("函数外:",number)	
# 可变类型:传地址   (list  dict set)
def changelist(names):
    names.append("admin")
    print("函数内",names)	
names=["tom","jack"]
changelist(names)
print("函数外:",names)

6. Clasificación de parámetros

  必备参数
· 关键字参数
· 默认参数
· 可变参数
  #参数的类型
# ================必备参数===============
#必备参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。
def showinfo(name,age):
    print(name,age)

#showinfo("admin",22)

# ============关键字参数===================
#使用关键字参数允许函数调用时参数的顺序与声明时不一致
def showinfo2(name,age):
    print(name,age)
#showinfo2(age=22,name="admin")
def showinfo3(name,age,**other):
    print(name,age,other)
#showinfo3("admin","22")
#showinfo3(name="admin",age=22,address="北京市")
mes={"address":"北京市xx","sex":"男"}
#showinfo3(name="admin",age=22,**mes)

# ================默认参数============
#调用函数时,缺省参数的值如果没有传入,则被认为是默认值
def showinfo4(name,age=0):
    print(name,age)
#showinfo4("admin")
# ======可变参数=========
def showinfo5(name,*kws):
    print(name,kws)
number=[12,322,1]
showinfo5("admin",*number)

#================= 字典做关键字和普通的参数的区别================
#字典做普通参数  传地址
def changedict(student):
    student["name"]="tom"
    print("函数内",student)	
# student = {"name":"jack","age":22}
# changedict(student)
# print("函数外:",student)
#字典做关键字    传值
def changedict(**student):
    student["name"]="tom"
    print("函数内",student)
student = {"name":"jack","age":22}
changedict(**student)
print("函数外:",student)

7. Funciones anónimas

#匿名函数
#lambda只是一个表达式,函数体比def简单很多。
#而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
# 默认有返回值
import  random
#语法:lambda [arg1 [,arg2,.....argn]]:expressio
result =  lambda  number1 ,number2 ,number3: (number2-number1)*number3	
#print(result(2,3))
# def getnumber(number):
#     if number>5:
#         return True
# ============== 实际应用的场景=================
numbers=[random.randint(1,20) for number in range(10)]
print(numbers)
#numbers2 = filter(getnumber,numbers)
numbers2 = filter(lambda number :number>5,numbers)
print(list(numbers2))

Supongo que te gusta

Origin blog.csdn.net/weixin_47580822/article/details/113726340
Recomendado
Clasificación