Python推导式,常见语句和内置函数

目录

1.Python推导式

1.1列表推导式

1.2字典推导式

1.3集合推导式

2.常见语句

2.1赋值语句

2.2条件语句

2.2.1if-elif-else

2.2.3 match-case

2.3循环语句

2.3.1for循环

2.3.2while循环

 2.3.3range

2.4循环控制语句

2.4.1break

2.4.2continue

2.4.3pass

2.5函数定义语句

2.6异常处理语句

2.6.1try-except-finally

2.6.2raise

2.6.3assert

2.6.3 错误类型

2.7导入语句

2.8 注释语句

2.9with语句

3.内置函数

3.1abs()

3.2all(iterable)

4.总结


1.Python推导式

用更简洁的方式创建列表、字典和集合。是 Python 特有的一种表达式形式。

1.1列表推导式

list1 = [1, 2, 3, 4, 5, 10, 5, 3, 7]
list2 = [i**2 for i in list1] #将list1的每个元素求平方后放入list2
print(list2) #输出[1, 4, 9, 16, 25, 100, 25, 9, 49]
list1 = [1, 2, 3, 4, 5, 10, 5, 3, 7]
list3 = [i**2 for i in list1 if i % 2] #只要奇数并对其求平方后放入list3
print(list3) #输出[1, 9, 25, 25, 9, 49]

1.2字典推导式

a = ['a', 'b', 'c']
result = {x: ord(x) for x in a} #创建一个字典,将字母映射到对应的ASCII值
print(result) #输出{'a': 97, 'b': 98, 'c': 99}

1.3集合推导式

a = [1, 2, 3, 4]
result = {x * 2 for x in a}  # 创建一个集合,元素是原列表每个元素的两倍
print(result) #输出[2, 4, 6, 8]

2.常见语句

Python常见的的语句有赋值语句,条件语句,循环语句,循环控制语句,函数定义语句,异常处理语句,导入语句,注释语句,with语句。

2.1赋值语句

赋值语句将一个值赋给变量:

a = 5  # 将值 5 赋给变量 a
b = a + 2  # 计算 a + 2 并将结果赋给 b
print(a) # 输出5
print(b) # 输出7

2.2条件语句

条件语句用于根据不同的条件来执行不同的代码块。

2.2.1if-elif-else

if 条件表达式1:
    语句块1
elif 条件表达式2:
    语句块2
...
elif 条件表达式n:
    语句块n
else:
    语句块(其他)

 例子:

age = int(input('请输入年龄:'))

if age < 12:
    print('还是个孩子~')
elif age< 18:
    print('少年')
elif age < 30:
    print('青年')
elif age < 60:
    print('中年')
else:
    print('智者')

2.2.3 match-case

在Python3.10版本后更新了match-case语句:

  • 当存在多个判断环境时,if-elif-else语句会比较臃肿

  • 在判断条件较为简单的前提下,可使用match case来进行多条件判断

  • 当x与对应的case匹配后,立刻结束判断,无论后续的case是否匹配

例子:

 

x = 20
match x:
    case 10:
        print("x is 10")
    case 20:
        print("x is 20")
    case _:
        print("x is not 10 ether 20")

2.3循环语句

循环语句用于重复执行一段代码,直到满足某个条件。常见的循环语句有 for 循环和 while 循环。

2.3.1for循环

遍历可迭代对象(如列表、元组、字典等)

遍历是指经历且只经历一遍

可迭代对象是指能够依次获取数据元素的对象

例子:

 

for i in range(5):
    print(i)  # 输出 0, 1, 2, 3, 4

2.3.2while循环

 当条件为 True 时重复执行

例子:

count = 0
while count < 5:
    print(count)
    count += 1  # 输出 0, 1, 2, 3, 4

 2.3.3range

range(4)          # 生成 0 1 2 3
range(3, 6)       # 生成 3 4 5
range(1, 10, 2)   # 生成 1 3 5 7 9
range(5, 0, -2)   # 生成 5 3 1

2.4循环控制语句

循环控制语句用于控制程序的执行流程。

2.4.1break

跳出整个循环。

例子:

for i in range(5):
    if i == 3:
        break  # 退出循环
    print(i) #输出0,1,2

2.4.2continue

跳过当前循环,继续下一次循环。

例子:

for i in range(1, 21, 1):
    if i % 5 == 0:
        continue # 进入下一次循环
    print(i, end=' ') #输出1 2 3 4 6 7 8 9 11 12 13 14 16 17 18 19 

2.4.3pass

占位符,什么也不做,通常用于占据语法上必须有代码的地方。

例子:

def empty_function():
    pass  # 这里不做任何事情

2.5函数定义语句

用于定义一个函数,包含 def 关键字

例子:

def greet(name):
    print(f"Hello, {name}!")

greet("Alice")  # 调用函数,输出Hello, Alice!

2.6异常处理语句

用于捕获和处理可能出现的错误。

2.6.1try-except-finally

try:
    result = 10 / 0  # 触发异常
except ZeroDivisionError:
    print("除数不能为零")
else:
    print("没有错误")
finally:
    print("无论如何都会执行")

2.6.2raise

raise关键字用于显式地抛出异常,通常用于自定义异常或在代码中手动触发错误。

# 在函数中根据条件抛出异常
def divide(a, b):
    if b == 0:
        raise ZeroDivisionError("除数不能为0")
    return a / b

print(divide(4, 2))  # 2.0
print(divide(4, 0))  # 抛出 ZeroDivisionError

2.6.3assert

assert主要用于开发和调试时检查某个条件是否成立。

x = 10
assert x > 5  # 通过,不会报错
assert x < 5, "x 必须小于 5"  # 失败,抛出 AssertionError: x 必须小于 5

2.6.3 错误类型

错误类型 说明
ZeroDivisionError 除(或取模)零 (所有数据类型)
ValueError 传入无效的参数
AssertionError 断言语句失败
StopIteration 迭代器没有更多的值
IndexError 序列中没有此索引(index)
IndentationError 缩进错误
OSError 输入/输出操作失败
ImportError 导入模块/对象失败
NameError 未声明/初始化对象 (没有属性)
AttributeError 对象没有这个属性

2.7导入语句

导入语句用于导入模块或包,使得程序可以使用外部代码和库

import math  # 导入math模块
print(math.sqrt(16))  # 使用math模块中的sqrt函数

2.8 注释语句

注释语句用于解释代码,Python 解释器会忽略这些注释。单行注释使用 #,多行注释可以用三个引号

# 这是一个单行注释
x = 5  # 这是一个行尾注释

"""
这是一个多行注释
可以用于更长的解释
"""

2.9with语句

with 语句用于处理资源管理(如文件操作),确保资源在使用后被正确关闭或释放

with open("file.txt", "r") as file:
    content = file.read()
    print(content)

3.内置函数

Python提供了大量的可直接使用的内置函数,主要执行一些常见的操作:数据处理、类型转换、数学计算、输入输出等。

Python的内置函数有很多,下面将编码实现两个简单Python内置函数的功能。

3.1abs()

abs()的功能是将一个数转换为它的绝对值。

def abs(x):
    assert isinstance(x, (int, float)), TypeError('类型不正确')
    return x if x >=0 else -x


print(abs(-100)) #输出100
print(abs(300)) #输出300

3.2all(iterable)

all()的功能是如果 iterable 的所有元素均为真值(或可迭代对象为空)则返回 True 。

def all(ia):
    try:
        for i in ia:
            if not i:
                # return 之后的代码不会执行
                return False 
    except   TypeError:
        raise TypeError('类型错误') 
    
    return True

print(all([1, 2])) #输出True
print(all([0, 2])) #输出False

4.总结

推导式让代码更简洁,循环与条件语句搭建逻辑框架,内置函数则像工具箱,大幅提升效率。但需注意推导式别过度嵌套,语句缩进要规范。

你可能感兴趣的:(算法)