python中的if while 函数 装饰器

本文介绍了Python中的条件语句和循环语句的基本用法,包括if-else结构、while循环等,并详细解释了如何利用这些控制结构进行逻辑判断和循环操作。此外,还介绍了Python函数的定义与使用方法,包括参数传递、返回值等关键概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python 条件语句

Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false。
Python 编程中 if 语句用于控制程序的执行,基本形式为:

if 判断条件:
    执行语句……
else:
    执行语句……

这里写图片描述

这里写图片描述

if嵌套

由于 python 并不支持 switch 语句,所以多个条件判断,只能用 elif 来实现,如果判断需要多个条件需同时判断时,可以使用 or (或),表示两个条件有一个成立时判断条件成功;使用 and (与)时,表示只有两个条件同时成立的情况下,判断条件才成功。
例如:
这里写图片描述

While 循环语句

Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。其基本形式为:

while 判断条件:
    执行语句……

执行语句可以是单个语句或语句块。判断条件可以是任何表达式,任何非零、或非空(null)的值均为true。
当判断条件假false时,循环结束。

  • Gif 演示 Python while 语句执行过程
    这里写图片描述

python实例

这里写图片描述

  • 无限循环

如果条件判断语句永远为 true,循环将会无限的执行下去,

  • 嵌套实例:
    这里写图片描述

Python 函数

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。

参数传递

形参和实参

  • 形参:定义函数时,小括号中的参数,是用来接收参数用的,在函数内部作为变量使用
  • 实参:调用函数时,小括号中的参数,是用来把数据传递到函数内部用的

定义一个函数

你可以定义一个由自己想要功能的函数,以下是简单的规则:

  • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。
  • 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
  • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
  • 函数内容以冒号起始,并且缩进。
  • return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

语法:

def functionname( parameters ):
   "函数_文档字符串"
   function_suite
   return [expression]

实例:
这里写图片描述

函数装饰器

  • 装饰器定义
    • .装饰器的本质为函数;
    • 装饰器是用来完成被修饰函数的附加功能的

所以:装饰器是用来完成被修饰函数附属功能的函数

  • 装饰器的要求:

    1. 不能修改被修饰函数的源代码;
    2. 不能更改被修饰函数的运行方式;

    上述两者缺一不可。

装饰器实例

这里写图片描述

这里写图片描述

### Python 中生成器、迭代器和装饰器的概念及用法 #### 生成器 (Generators) 生成器是一种特殊的迭代器,它通过 `yield` 关键字定义。每次调用生成器函数时,并不会立即执行其中的代码,而是返回一个生成器对象。当对该对象调用 `next()` 函数时,程序会运行到下一个 `yield` 表达式并暂停,保存当前状态以便下次继续。 ```python def fib(times): n = 0 a, b = 0, 1 while n < times: yield b a, b = b, a + b n += 1 f = fib(6) print(next(f)) print(next(f)) print(next(f)) print(next(f)) print(next(f)) print(next(f)) try: print(next(f)) # 将引发 StopIteration 异常 except StopIteration as e: print("超出范围", str(e)) ``` 此段代码展示了斐波那契数列生成器的工作方式[^4]。 #### 迭代器 (Iterators) 迭代器是实现了两个特殊方法的对象——`__iter__()`, 返回迭代器本身;以及 `__next__()`, 提供序列中的下一项或触发异常表示结束。内置函数 `map()` 是创建新迭代器的一个例子: ```python result = map(lambda x: x ** 2, range(5)) for item in result: print(item) ``` 这段代码利用了 `map()` 来计算列表内各元素平方值的新迭代器实例[^2]。 #### 装饰器 (Decorators) 装饰器本质上是一个接受另一个函数作为参数的高阶函数,在不改变原函数源码的前提下增强功能。可以通过堆叠多层装饰器实现复杂逻辑组合。下面的例子说明如何构建简单的日志记录装饰器链路: ```python def decorator_1(func): def wrapper(*args, **kwargs): func(*args, **kwargs) print('我是装饰器1') return wrapper def decorator_2(func): def wrapper(*args, **kwargs): func(*args, **kwargs) print('我是装饰器2') return wrapper def decorator_3(func): def wrapper(*args, **kwargs): func(*args, **kwargs) print('我是装饰器3') return wrapper @decorator_1 @decorator_2 @decorator_3 def say_hello(): print("你好") if __name__ == '__main__': say_hello() ``` 上述代码片段中,`say_hello` 方法被三个不同的装饰器包裹起来,依次打印出各自的信息[^3]。 ### 区别 - **生成器** 主要关注于按需生产数据流,延迟求值,节省内存资源; - **迭代器** 则更侧重提供一种遍历集合的标准接口模式; - **装饰器** 的核心价值在于无侵入式的扩展已有组件的功能特性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值