函数是可重用的代码块,用于执行特定任务。
def greet():
print("Hello, World!")
# 调用函数
greet() # 输出: Hello, World!
def greet(name):
print(f"Hello, {name}!")
greet("张三") # Hello, 张三!
greet("李四") # Hello, 李四!
def add(a, b):
return a + b
result = add(5, 3)
print(result) # 8
def greet(name, greeting="你好"):
print(f"{greeting}, {name}!")
greet("张三") # 你好, 张三!
greet("李四", "早上好") # 早上好, 李四!
def introduce(name, age, city):
print(f"我叫{name},{age}岁,来自{city}")
# 位置参数
introduce("张三", 25, "北京")
# 关键字参数
introduce(age=30, name="李四", city="上海")
# 混合使用
introduce("王五", age=28, city="广州")
def square(x):
return x ** 2
result = square(5)
print(result) # 25
# 返回多个值
def get_user_info():
name = "张三"
age = 25
return name, age
name, age = get_user_info()
print(name, age) # 张三 25
def sum_all(*numbers):
total = 0
for num in numbers:
total += num
return total
print(sum_all(1, 2, 3)) # 6
print(sum_all(1, 2, 3, 4, 5)) # 15
def print_info(**info):
for key, value in info.items():
print(f"{key}: {value}")
print_info(name="张三", age=25, city="北京")
# name: 张三
# age: 25
# city: 北京
Lambda函数是匿名的单行函数。
# 普通函数
def square(x):
return x ** 2
# Lambda函数
square = lambda x: x ** 2
print(square(5)) # 25
# 多个参数
add = lambda a, b: a + b
print(add(3, 4)) # 7
# 在sorted中使用
students = [
{"name": "张三", "age": 25},
{"name": "李四", "age": 20},
{"name": "王五", "age": 30}
]
sorted_students = sorted(students, key=lambda s: s["age"])
print(sorted_students)
模块是包含Python代码的文件,可以被其他程序导入使用。
# 导入整个模块
import math
print(math.pi) # 3.141592653589793
print(math.sqrt(16)) # 4.0
# 导入特定函数
from math import pi, sqrt
print(pi) # 3.141592653589793
print(sqrt(16)) # 4.0
# 使用别名
import math as m
print(m.pi)
from math import sqrt as square_root
print(square_root(16))
# random - 随机数
import random
print(random.randint(1, 10)) # 1到10的随机整数
print(random.choice(['a', 'b', 'c'])) # 随机选择
# datetime - 日期时间
from datetime import datetime
now = datetime.now()
print(now)
# os - 操作系统接口
import os
print(os.getcwd()) # 当前工作目录
创建文件 mymodule.py:
def greet(name):
return f"Hello, {name}!"
def add(a, b):
return a + b
PI = 3.14159
在另一个文件中使用:
import mymodule
print(mymodule.greet("张三"))
print(mymodule.add(5, 3))
print(mymodule.PI)
# 练习1:判断质数
def is_prime(n):
if n < 2:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
print(is_prime(17)) # True
# 练习2:计算阶乘
def factorial(n):
if n == 0 or n == 1:
return 1
result = 1
for i in range(2, n + 1):
result *= i
return result
print(factorial(5)) # 120
# 练习3:反转字符串
def reverse_string(s):
return s[::-1]
print(reverse_string("Hello")) # olleH
# 练习4:生成随机数
import random
random_numbers = [random.randint(1, 100) for _ in range(10)]
print(random_numbers)