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. 常用模块

1 keyword 模块

  • 检查关键字:

import keyword

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

2 random 模块

  • 常用方法:

import random

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

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

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

3 sys 模块

  • 系统属性:

import sys

print(sys.version) # Python 版本

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

4 time 模块

  • 时间处理:

import time

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

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

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

print(t.tm_year) # 年份


注意事项

  1. 函数定义顺序:必须先定义后调用。
  2. 参数匹配:实参个数需与形参一致。
  3. 全局变量慎用:避免意外修改。
  4. 模块导入优化:推荐在顶层导入。
相关推荐
刺客-Andy2 分钟前
Python 第二十节 正则表达式使用详解及注意事项
python·mysql·正则表达式
九皇叔叔33 分钟前
Java循环结构全解析:从基础用法到性能优化
java·开发语言·性能优化
sulikey41 分钟前
Qt 入门简洁笔记:从框架概念到开发环境搭建
开发语言·前端·c++·qt·前端框架·visual studio·qt框架
zzzsde1 小时前
【C++】stack和queue:优先级队列的使用及底层原理
开发语言·c++
新子y1 小时前
【小白笔记】「while」在程序语言中的角色
笔记·python
java1234_小锋1 小时前
[免费]基于Python的YOLO深度学习垃圾分类目标检测系统【论文+源码】
python·深度学习·yolo·垃圾分类·垃圾分类检测
是苏浙1 小时前
零基础入门C语言之操作符详解2
c语言·开发语言
凌晨一点的秃头猪1 小时前
面向对象和面向过程 编程思想
python
总有刁民想爱朕ha2 小时前
银河麒麟v10批量部署Python Flask项目小白教程
开发语言·python·flask·银河麒麟v10
yi碗汤园2 小时前
【一文了解】八大排序-插入排序、希尔排序
开发语言·算法·unity·c#·1024程序员节