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

Python函数与模块笔记

Python函数与模块笔记

目录

  1. 函数
    • 无参函数
    • 带参函数
    • 变量作用域
    • Lambda函数
    • 常用内置函数
  2. 模块与包
    • 模块的定义与导入
    • 包的使用
    • 常用模块(keyword、random、sys、time)

一、函数

1. 无参函数

  • 定义语法

def 函数名():

    代码块

    return [表达式]  # return则默认返回None

  • 示例

def add():

    op1 = 10

    op2 = 20

    rt = op1 + op2

    print(op1, '+', op2, '=', rt)

    return  # 返回None

add()  # 输出:10 + 20 = 30

  • 注意事项
    • 函数定义需在调用之前。
    • 函数体代码需正确缩进。
    • 函数名不能以数字开头。

2. 带参函数

  • 定义语法

def 函数名(形参列表):

    代码块

    return [表达式]

  • 参数传递方式
    • 位置参数:按顺序匹配形参。

def aa(x, y):

    print(x, y)

aa(10, 6)  # 输出:10 6

    • 关键字参数:指定形参名,顺序无关。

aa(x=10, y=6)  # 输出:10 6

aa(y=6, x=10)  # 输出:10 6

  • 默认参数
    • 默认参数需在位置参数之后。

def aa(x, y=1):  # 正确

    print(x, y)

def aa(x=1, y):  # 错误

    pass

  • 综合示例(计算器)

def add(x, y):

    return x + y

def subtract(x, y):

    return x - y

# 用户输入与调用逻辑(部分代码)

choice = int(input("输入运算选择(1/2/3/4):"))

num1 = int(input("输入第一个数字: "))

num2 = int(input("输入第二个数字: "))

if choice == 1:

    print(num1, "+", num2, "=", add(num1, num2))


3. 变量作用域

  • 全局变量:模块顶层定义,所有函数可访问。
  • 局部变量:函数内部定义,仅函数内有效。
  • 同名优先级:局部变量 > 全局变量。
  • 示例

name = 'Tim'  # 全局变量

def f1():

    age = 18  # 局部变量

    print(age, name)  # 输出:18 Tim

def f2():

    age = 19  # 局部变量

    print(age, name)  # 输出:19 Tim

  • global关键字:在函数内声明全局变量。

def f1():

    global name

    name = 'Tim'  # 修改全局变量


4. Lambda函数

  • 语法

lambda 参数列表: 表达式

  • 示例

sum1 = lambda x, y: x + y

print(sum1(3, 4))  # 输出:7

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

5. 常用内置函数

函数

说明

示例

abs(x)

返回绝对值

abs(-10) → 10

bool(x)

转换为布尔值

bool(0) → False

float(x)

转换为浮点数

float('25') → 25.0

int(x)

转换为整数

int('100') → 100

range()

生成整数序列

list(range(0,5)) → [0,1,2,3,4]

sum()

求和

sum([1,2,3]) → 6

max()

返回最大值

max([6,2,12]) → 12

min()

返回最小值

min([6,2,12]) → 2


二、模块与包

1. 模块

  • 定义:包含函数/类的.py文件。
  • 导入方式
    • 导入整个模块:

import myModule

myModule.add(2, 3)

    • 导入指定函数:

from myModule import add, mul

add(2, 3)

    • 使用别名:

from myModule import add as add1


2.

  • 定义:包含__init__.py的目录,用于组织模块。
  • 导入子模块

import subproject.submodel

subproject.submodel.add(1, 3)

  • __init__.py作用:初始化包(可包含公共代码)。

3. 常用模块

1keyword模块

  • 检查关键字:

import keyword

print(keyword.iskeyword("if"))  # True

2random模块

  • 常用方法:

import random

print(random.randint(1, 100))    # 随机整数

print(random.choice(['a', 'b'])) # 随机选择元素

random.shuffle(list1)            # 打乱列表顺序

3sys模块

  • 系统属性:

import sys

print(sys.version)   # Python版本

print(sys.path)      # 模块搜索路径

4time模块

  • 时间处理:

import time

print(time.time())        # 时间戳(秒)

print(time.ctime())       # 字符串时间

t = time.localtime()      # 时间元组

print(t.tm_year)          # 年份


注意事项

  1. 函数定义顺序:必须先定义后调用。
  2. 参数匹配:实参个数需与形参一致。
  3. 全局变量慎用:避免意外修改。
  4. 模块导入优化:推荐在顶层导入。

相关文章:

  • 【大模型实战】大模型推理加速框架 vllm 部署的方案
  • 使用String path = FileUtilTest.class.getResource(“/1.txt“).getPath(); 报找不到路径
  • 【Linux系统篇】:什么是信号以及信号是如何产生的---从基础到应用的全面解析
  • echart实现柱状图并实现柱子上方需要显示指定文字,以及悬浮出弹框信息,动态出现滚动条,动态更新x,y轴的坐标名称
  • linux sudo 命令介绍
  • NVIDIA高级辅助驾驶安全报告解析
  • 差分信号抗噪声原理:
  • 浔川代码编辑器v2.0(测试版)更新公告
  • 基于事件驱动的云原生后端架构设计:从理念到落地
  • 【多源01BFS】Codeforce:Three States
  • 基于Vulkan Specialization Constants的材质变体系统
  • JDK(java)安装及配置 --- app笔记
  • 低代码平台开发胎压监测APP
  • redis经典问题
  • 【星海出品】Calico研究汇总
  • hackmyvm-atom
  • 快速体验tftp文件传输(嵌入式设备)
  • 位运算题目:解码异或后的排列
  • PostgreSQL 数据库备份与恢复全面指南20250424
  • Dockerfile指令
  • 云南舞蹈大家跳暨2025年牟定“三月会”昨天开幕
  • 对排出黑烟车辆出具合格报告,广州南沙一检测公司被罚十万元
  • 美总统批准海底采矿,外交部:擅自授权开发损害国际社会共同利益
  • 中越海警2025年第一次北部湾联合巡逻圆满结束
  • 2025一季度,上海有两把刷子
  • 再放宽!新版市场准入负面清单发布,无人驾驶航空器、电子烟等新业态被纳入