函数定义、 异常处理、 迭代器协议、内置函数、返回值
1. 函数定义:使用 def
定义函数
在Python中,函数就像是一个“小机器”,你可以给它输入一些东西,它会按照你设定的规则处理这些输入,然后输出结果。定义函数就像是告诉Python:“嘿,我有一个任务,每次我需要完成这个任务的时候,就按照我下面写的步骤去做。”
例子:
def say_hello(name):return f"Hello, {name}!"
这个函数叫做 say_hello
,它有一个参数 name
。当你调用这个函数并给它一个名字,比如 say_hello("Alice")
,它就会返回 "Hello, Alice!"
。
2. 异常处理:使用 try...except
捕获异常
有时候,程序在运行的时候可能会遇到一些问题,比如你试图打开一个不存在的文件,或者试图从一个空的列表中取元素。这些问题被称为“异常”。为了避免程序因为这些问题而完全崩溃,你可以用 try...except
来“捕获”这些异常,然后告诉程序:“嘿,如果遇到问题,不要崩溃,按照我下面写的办法处理。”
例子:
try:result = 10 / 0
except ZeroDivisionError:print("你不能除以零!")
在这个例子中,程序试图做 10 / 0
,这是不允许的,会引发 ZeroDivisionError
。try...except
捕获了这个异常,然后打印了一条友好的错误信息,而不是让程序崩溃。
3. 迭代器协议:理解对象是否可迭代的机制
想象一下,你有一个盒子,里面装了很多小东西,比如糖果。如果你想一个一个地拿出这些糖果,你需要有一种方法来“迭代”这些糖果。在Python中,有些对象(比如列表、字符串)是可以迭代的,这意味着你可以一个一个地访问它们里面的元素。这种能力是通过“迭代器协议”实现的,简单来说,就是这些对象知道如何一个一个地提供它们的元素。
例子:
my_list = [1, 2, 3]
for item in my_list:print(item)
在这个例子中,my_list
是一个列表,它是可迭代的。for
循环利用了迭代器协议,一个一个地取出列表中的元素并打印出来。
4. 内置函数:使用 iter
函数获取对象的迭代器
iter
是一个内置函数,它的作用是获取一个对象的迭代器。迭代器就像是一个“导游”,它知道如何带领你一个一个地访问对象中的元素。如果你试图对一个不可迭代的对象使用 iter
,Python会告诉你:“不行哦,这个对象不能迭代。”(也就是抛出 TypeError
)。
例子:
my_list = [1, 2, 3]
iterator = iter(my_list)
print(next(iterator)) # 输出: 1
print(next(iterator)) # 输出: 2
print(next(iterator)) # 输出: 3
在这个例子中,iter(my_list)
获取了列表的迭代器,然后我们用 next
函数一个一个地取出元素。
5. 返回值:根据条件返回不同的值
函数可以根据不同的情况返回不同的结果。这就像是你去商店买东西,如果你有钱,店员会给你商品;如果你没钱,店员可能会说:“抱歉,你不能买。” 在Python中,你可以用 if...else
来根据条件返回不同的值。
例子:
def can_buy(item, money):if money >= 10:return f"你可以买 {item}。"else:return "你没钱买这个。"print(can_buy("玩具", 5)) # 输出: 你没钱买这个。
print(can_buy("玩具", 15)) # 输出: 你可以买 玩具。
在这个例子中,can_buy
函数根据你是否有足够的钱来返回不同的结果。