首页 > 编程语言 >python进阶之函数

python进阶之函数

时间:2024-11-26 22:31:40浏览次数:10  
标签:进阶 python list 参数 print data def 函数

python进阶之函数

函数概念

函数是一段可重复使用的代码块,它接受输入参数并返回一个结果。函数可以用于执行特定的任务、计算结果、修改数据等,使得代码更具模块化和可重用性。。

函数本质

一个功能代码块组织在一个函数名下,可以反复调用。
去重:不在重复造轮子
解耦:逻辑独立的部分拆解出来

声明和调用

# (1) 函数声明
def 函数名():
  # 函数体【功能代码块】
  
# (2)函数调用
函数名()

example

# 登录功能
def login():
    name = input("请输入你的姓名")
    password = input("请输入你的密码")
    if name == "root" and password == "root123":
        print("登录成功")
    else:
        print("登录失败")

# 函数调用
login()

# 函数调用并赋值给对象a
user_login = login()

# 函数调用
login()
		 

函数参数

函数的参数指的是函数定义中声明的变量,用于接收函数调用时传递的数据。参数允许我们将值或引用传递给函数,以便在函数内部使用这些值进行计算、操作或处理
形参:函数定义中的参数
实参:函数调用时传递的实际值
example:

# 注册功能
# 已注册用户的列表
user_register_list = ["root", "admin"]


# 形参name,password,re_password
def register(name, password, re_password):
    if name not in user_register_list:
        if password == re_password:
            print("注册成功")
        else:
            print("密码不一致")

    else:
        print("已经注册,请重新用户")

# 传实参
register("root", 123, 123) # 已经注册,请重新用户
register("labi", 123, 123) # 注册成功

函数传递参数本质是变量赋值,且该变量只在函数运行时存在,运行结束销毁

位置参数

按照位置传参,一一对应

# 发送邮件函数
def send_email(subject, body, recipient):
    print("发送邮件...")
    print(f"收件人:{recipient}", )
    print(f"主题:{subject}")
    print(f"内容:{body}")


a = "通知"
b = "从明天开始放假,放假三个月"
c = "123@qq.com"

# 函数调用以及传参
send_email(a, b, c)
# 结果
'''
发送邮件...
收件人:123@qq.com
主题:通知
内容:从明天开始放假,放假三个月
'''

默认参数

创建函数时,给实参传递默认值,默认参数放在非默认参数后面

# 首页展示数据
data = ["basketball", "football"]


def home_show(price, goods=None):
    print(goods)
    print(price)


# 调用和位置传参,默认传参
home_show(100)
home_show(100, data)

关键字参数

指定参数名传参

# 显示游戏角色信息

def user_info(name, eamil, avator, role="战士"):
    print(f"姓名:{name}")
    print(f"邮箱:{eamil}")
    print(f"头像:{avator}")
    print(f"角色:{role}")
 

# 关键字参数一定要放在位置参数后面,默认参数一定要放在最后
user_info("亚索", eamil="example@163.com", avator="yasuo.jpg")
print()
user_info("亚索", eamil="example@163.com", avator="yasuo.jpg", role="坦克")
# 结果
'''
姓名:亚索
邮箱:example@163.com
头像:yasuo.jpg
角色:战士

姓名:亚索
邮箱:example@163.com
头像:yasuo.jpg
角色:坦克

'''

关键字参数一定要放在位置参数后面,默认参数一定要放在最后

可变参数

接收不定数量的变量
*args
**kwargs

# 数据显示
def data_list_print(*data_list):
    for i in data_list:
        print(i)


def data_dict_print(**data_dict):
    for i in data_dict:
        print(i)


def data_print(*args, **kwargs):
    for i in args:
        print(i)
    for j in kwargs:
        print(j)


data_list_print(*[1, 2, 3])
print("____" * 10)
data_dict_print(**{"a": 1, "b": 2, "c": 3})
print("###" * 10)
data_list_print(1, 2, 3)
print("____" * 10)
data_dict_print(a=1, b=2, c=3, d=4)
print("***" * 10)
data_list = [1, 2, 3]
data_dict = {"a": 1, "b": 2, "c": 3}
data_list_print(*data_list)
print("____" * 10)
data_dict_print(**data_dict)
print(111)
data_print(*data_list)
print(222)
data_print(*data_list, **data_dict)
print(333)
data_print(**data_dict)


作用域 LEGB

  • L(Local):局部作用域。包括函数内部定义的变量和参数。在函数内部最先进行变量查找。
  • E(Enclosing):嵌套函数的父函数的作用域。如果在当前函数内部找不到变量,就会向上一层嵌套的函数中查找。
  • G(Global):全局作用域。在模块层次定义的变量,对于整个模块都是可见的。
  • B(Built-in):内置作用域。包括 Python 的内置函数和异常。
# global x  # 在函数内部使用,声明为全局变量,全局中可以拿到,多层函数嵌套只会在最外层变量值改变
# nonlocal y #用于在函数内部声明一个变量为非本地变量,表示在函数内部对该变量的修改将影响到上一级的嵌套作用域中的变量.
x = 10


def outer():
    x = 20

    def xx():
        x = 3333

        def inner():
            global x
            x = 40
            print(x)  # 40

        inner()
        print(x)  # 3333

    xx()
    print(x)  # 20


outer()
print(x)  # 40

x = 10


def outer():
    x = 20

    def inner():
        nonlocal x
        x = 40
        print(x)  # 40

    inner()
    print(x)  # 40

函数返回值 return

def show():
	return "哈哈"

res = show()
print(res)  # 哈哈

def show():
	return  

res = show()
print(res)  #  None

def show():
	print("")

res = show()
print(res)  #  None

常用的内置函数

import math
# 输入 math. 可以看到很多的数学函数
# 就不多说了

函数到此就全面结束了,相信你再也遇不到python中你不理解的函数了

标签:进阶,python,list,参数,print,data,def,函数
From: https://blog.csdn.net/qq_48224700/article/details/144064312

相关文章

  • python基础学习4
    打开文件的方式#第一种f=open('C:\project\pycharmprojects\\bigdata33\day05/cars.csv',mode='r',encoding='UTF-8')text=f.read()print(text)f.close()#第二种text=''withopen('C:\project\pycharmprojects\\b......
  • PythonDay4Advance
    PythonDay4Advance函数引言:比如植物大战僵尸,这个游戏本身也是由代码编写,现在假设有一种豌豆射手,每发射一次炮弹会执行100行逻辑代码如果我在程序,每当需要发射炮弹的时候,都要编写100行逻辑代码,就会觉得该程序过于冗余,代码重复度较高。解决方案:如果我将这100行代码放到一个......
  • python问题解决-外部模块明明安装了,却总是无法找到
    1现象代码中引入了cv2模块,这是一个图像识别模块。但运行时总提示找不到该模块。也按照要求安装了opencv-python等模块。还有其它的,如python-pptx模块,提示如下:Traceback(mostrecentcalllast):File"E:/python/wps/ppt_pic.py",line1,in<module>frompp......
  • flink学习(8)——窗口函数
    增量聚合函数——指窗口每进入一条数据就计算一次例如:要计算数字之和,进去一个12计算结果为20,再进入一个7——结果为27 reduceaggregate(aggregateFunction)packagecom.bigdata.day04;publicclass_04_agg函数{publicstaticfinalTuple3[]ENGLISH=new......
  • 使用Python常用库处理-可视化凯斯西储大学轴承数据集 完成轴承原始信号图、灰度图和灰
    凯斯西储大学轴承数据图包括原始信号图,灰度图,灰度图像加噪声图处理和可视化凯斯西储大学轴承数据集,包括原始信号图、灰度图和灰度图像加噪声图。我们将使用Python和一些常用的库来完成这些任务。1.数据集准备数据集概述数据集名称:凯斯西储大学轴承数据集数据集来......
  • Python基础 day2 变量 数据类型
    一:变量1.什么是变量    计算机中的变量,按字面理解同样也是一个会变的变量,因为它可能表示一个字符串,一个数字,或者是一个小数。    变量就相当与数据的容器-->作用是用来存数据,因为计算机的本质就是和各种数据打交道。2.变量的组成1.数据类型(type)2.内......
  • re模块 函数模式详解
    re模块python爬虫过程中,实现页面元素解析的方法很多,正则解析只是其中之一,常见的还有BeautifulSoup和lxml,它们都支持网页HTML元素解析,re模块提供了强大的正则表达式功能re模块常用方法compile(pattern,flags=0):用于编译一个正则表达式字符串,生成一个re.pattern对象......
  • Java进阶六-多线程
    一多线程相关概念进程(Process):进程是程序的基本执行实体。进程是操作系统分配资源的基本单位。每个进程都有自己的内存空间、代码段、数据段等。进程之间相互独立,一个进程的崩溃不会影响其他进程。进程是程序的基本执行实体。线程(Thread): 应用软件中相互独立,可以......
  • Python基础学习-11函数参数
    1、"值传递”和“引用传递”1)不可变的参数通过“值传递”。比如整数、字符串等2)可变的参数通过“引用参数”。比如列表、字典。3)避免可变参数的修改4)内存模型简介2、函数参数类型1)deffunc()#无参数函数2)deffunc(value1,value2)#有参数函数;位置参数3)deffunc(......
  • python day01
    python学习day01python代码>解释器>电脑显示​基础内容字面量写在代码中固定的词语。相当于java中的常量概念66613.14“你好世界”print("Hello世界")注释作用:解释说明以“#”号开头,不执行执行程序,起辅助作用,规范“#”后面要用空格#我是单行注释print("H......