当前位置: 首页 > 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. 模块导入优化:推荐在顶层导入。
http://www.xdnf.cn/news/121213.html

相关文章:

  • arm64适配系列文章-第十章-arm64环境上jenkins的部署
  • 热度大幅度下降,25西电经济与管理学院(考研录取情况)
  • git检查提交分支和package.json的version版本是否一致
  • 【Axure教程】表格嵌套卡片
  • 什么是公链?公链项目有哪些?公链项目开发
  • Axure疑难杂症:母版菜单设置打开链接后菜单选中效果
  • css3新特性第七章(3D变换)
  • ITL和TTL线程间值的传递
  • AI工程pytorch小白TorchServe部署模型服务
  • nginx
  • DNS域名解析服务
  • 滚珠螺杆在数控机床中如何降低摩擦系数?
  • 植物信号转导概述——学习植物的交流方式
  • Spring Boot 中触发异步任务的几种方式
  • Cifar10-图像分类学习笔记(二)--将图像解析存储到TRAIN文件夹下
  • 点云配准算法之NDT算法原理详解
  • ECMAScript 2025新特性深度解析:JavaScript的又一次进化
  • 4.4 记忆机制与上下文管理:短期与长期记忆的设计与应用
  • 目标检测篇---faster R-CNN
  • 车间排产与生产调度:提升制造效率的核心引擎​
  • 涂料油墨制造数字化转型的关键技术与挑战
  • Linux编译器-gcc/g++使用
  • 网络IP冲突的成因与解决方案
  • 【Unity AR开发插件】一、高效热更新:Unity AR 插件结合 HybridCLR 与 ARFoundation 的开源仓库分享
  • JDBC插件式数据库连接器
  • IO 核心要点(1)
  • 基于 EFISH-SBC-RK3588 的无人机智能巡检终端方案‌
  • 5G/6G通信设备中的盲埋孔技术突破
  • 数据结构-查找
  • 第六章 QT基础:5、QT的UDP网络编程