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

Phthon

一,函数基础与分类

1.无参函数

        Python的自定义无参函数并不复杂。

        以关键字 def 开始,后面跟函数名,小括号,冒号,最后使用 return 退出函数。用表达式可以传递函数的返回值,如果没有返回值,则返回 Nine。

        函数是以字母,数字和下划线组成的字符串,但是不能以数字开头。

定义与调用:

无需函数无需接收外部参数,直接执行固定逻辑。

def greet():
    print("Hello, World!")
greet()  # 输出:Hello, World!

返回值:

若未显式使用 return ,函数默认返回 None。

def add():
    a, b = 10, 20
    return a + b
result = add()  # result = 30

  • 简单逻辑:适合封装无需动态输入的代码块。
  • 代码复用:避免重复代码,提高可维护性。

2.带参函数

        Python带参函数的语法格式如下。

语法:

def 函数名称(形式参数列表):

        代码块

        return  [表达式]

        通过语法可以看出,带参函数与无参函数的区别是在函数名称后面的小括号中有形式参数列表,简称形参列表。

        注意:形式参数列表实际上只是占位符,用于体现参数的个数,每个参数都没有提供具体的数值。 调动参数时,需要为每个参数传递对应的实际数值,又称实参列表。

定义与调用:

通过形参接收外部数据,实现形态逻辑。

def multiply(x, y):
    return x * y
print(multiply(3, 4))  # 输出:12

参数类型:

  • 位置参数:按顺序传递实参。
  • 关键字参数:明确指定形参,顺序无关。

def power(base, exponent):
    return base ** exponent
print(power(exponent=2, base=3))  # 输出:9

默认参数:形参可指定默认值,调用时可省略。

def greet(name="User"):
    print(f"Hello, {name}!")
greet()  # 输出:Hello, User!

注意事项:

  • 默认参数后置:默认参数必须定义在非默认参数之后。

# 错误示例
def func(a=1, b): ...
# 正确示例
def func(b, a=1): ...

  • 参数个数一致:参数与形参数量需匹配,否则报错。

3.参数传递方式总结

类型语法特点
位置参数func(3,4)按顺序传递,不可省略
关键字参数func(x=3,y=4)明确参数名,顺序灵活
默认参数def func(x=0):...调用时可省略,简化代码

二,变量作用域与全局变量

1.局部变量与全局变量

  • 局部变量:定义在函数内部,仅在函数内有效。
  • 全局变量:定义在模块顶层,所有函数可访问。

示例:

global_var = "Global"

def func():
    local_var = "Local"
    print(global_var)  # 输出:Global
    print(local_var)   # 输出:Local

func()
print(global_var)      # 输出:Global
print(local_var)       # 报错:未定义

2.global关键字

用于在函数内部修改全局变量。

count = 0

def increment():
    global count
    count += 1

increment()
print(count)  # 输出:1

总结:

  • 避免滥用全局变量:易引发数据冲突,推荐通过参数传递数据。
  • 作用域优先级:局部变量优先于同名全局变量。

三,lambda函数于匿名操作

1.lambda语法

lambda函数用于快速定义单行匿名函数,语法为:

lambda 参数列表: 表达式

示例:

square = lambda x: x ** 2
print(square(5))  # 输出:25

2.适用场景

  • 简单操作:如数据转换,过滤。
  • 高阶函数参数:配合 map filter 使用

numbers = [1, 2, 3]
squared = list(map(lambda x: x ** 2, numbers))  # [1, 4, 9]

限制:

        仅支持单行表达式,不能包含复杂逻辑(如循环,条件分支)。

四,常用内置函数详解

1.数值处理函数

函数功能示例
abs()返回绝对值abs(-10) - 10
sum()求和sum([1,2,3]) -6
max()返回最大值max([5,2,8]) - 8
min()返回最小值

min([5,2,8]) - 2

2.类型转换函数

函数功能示例
int()转换为整数int("100") - 100
float()转换为浮点数float("3.14") - 3.14

bool()

转换为布尔值

bool(0) - False


3.序列生成函数

range()生成整数序列,常用于循环:

for i in range(0, 10, 2):
    print(i)  # 输出:0, 2, 4, 6, 8


五,模块与包的组织

1.模块的定义与导入

模块:一个 .py 文件,包含函数,类或变量。

示例:

# mymodule.py
def add(a, b):
    return a + b

导入方式:

        导入整个模块:

import mymodule
mymodule.add(2, 3)  # 输出:5

        导入特定函数:

from mymodule import add
add(2, 3)  # 输出:5

        别名导入

import mymodule as mm
mm.add(2, 3)

2.包的结构与使用

包:包含多个模块的目录,需包含 __init__.py

目录结构:

project/
├── main.py
└── utils/
    ├── __init__.py
    └── math_tools.py

导入包内模块:

from utils import math_tools
math_tools.multiply(3, 4)  # 假设 math_tools 中定义 multiply 函数


六,常用模块示例解析

1.random模块

用于生成随机数或随即操作:

import random
print(random.randint(1, 100))   # 生成 1-100 的随机整数
print(random.choice(["a", "b", "c"]))  # 随机选取元素
random.shuffle([1, 2, 3])       # 打乱列表顺序

2.sys模块

获取系统信息与控制程序行为:

import sys
print(sys.version)    # Python 版本
print(sys.path)       # 模块搜索路径
sys.exit()            # 强制退出程序

2.time模块

处理时间相关操作:

import time
print(time.time())          # 当前时间戳(秒)
print(time.ctime())         # 可读时间字符串
time.sleep(2)               # 暂停 2 秒


七,总结与最佳实践

1.核心要点回顾

  • 函数设计:合理使用参数与返回值,避免全局变量。
  • 模块化开发:通过模块和包组织代码,提升复用性。
  • 内置工具:熟练使用 random , sys,time等模块简化开发。

2.最佳实践建议

  • 代码分层:将功能拆分为独立模块,降低耦合度。
  • 异常处理:在关键操作中添加 try-except 块增强健壮性。
  • 文档注释:为函数和模块添加文档字符串("""注释"""),提高可读性。

相关文章:

  • 【Linux】基于阻塞队列的生产消费者模型
  • 火语言RPA--发送邮件
  • 树莓派安装GStreamer ,opencv支持, 并在虚拟环境中使用的安装方法
  • opencv--图像变换
  • 使用QML Tumbler 实现时间日期选择器
  • express的中间件,全局中间件,路由中间件,静态资源中间件以及使用注意事项 , 获取请求体数据
  • BOM与DOM(解疑document window关系)
  • 看一看 中间件Middleware
  • JVM性能优化之老年代参数设置
  • 【前端】手写代码输出题易错点汇总
  • git检查提交分支和package.json的version版本是否一致
  • 使用vue2开发一个医疗预约挂号平台-前端静态网站项目练习
  • ASP.NET MVC​ 入门指南
  • JAVA设计模式——(六)装饰模式(Decorator Pattern)
  • 建造者模式:分步构建复杂对象的设计模式
  • 罗伯·派克:Go语言创始者的极客人生
  • 【项目管理】进度网络图 笔记
  • Vue 2 的响应式 API 和 Vue 3 的组合式 API 的详细对比,从核心机制、使用方式、代码示例及优缺点展开
  • Linux:git和gdb/cgdb
  • 多线程(线程安全)
  • 第六次“太空会师”,神舟二十号3名航天员顺利进驻中国空间站
  • 张文宏团队公布广谱抗猴痘药物研发进展,将进入临床审批阶段
  • 嫦娥八号任务合作项目,这十个入选
  • 过敏性鼻炎,不只是“打喷嚏”那么简单
  • 小米首次参加上海车展:没有雷军依旧人气爆棚,YU7上市时间未推迟
  • 北大强基计划招生简章发布,笔试部分考试科目有变化