Python基础:控制流

控制流

条件语句

了解条件语句
普通条件判断

#普通条件判断
if a > 0:
    print("positive")
else:
    #嵌套判断
    if a < 0:
        print("negative")
    else:
        print("zero")

多条件判断

#多条件判断01 if elif else
#使用elif是互斥条件,只要if/elif条件成立,后面elif语句不执行,效率高
if a > 0:
    print("positive")
elif a < 0:
    print("negative")
else:
    print("zero")

#多条件判断02 if if else
#使用连续if是独立条件,即使if条件成立,后面的if语句仍然运行,效率低
if a > 0:
    print("positive")
if a < 0:
    print("negative")
else:
    print("zero")

三元(目)表达式

# 三元表达式01
"even" if a % 2 == 0 else "odd"
#三元表达式02
print("positive") if a > 0 else print("negative") if a < 0 else print("zero")

循环结构

可迭代对象

可迭代对象一次返回一个元素所以适用于循环。Python包括序列:字符串、列表、元组等;字典和集合;文件对象;迭代器对象(iterator);生成器函数(generator)

for循环语句

06for循环

for语句用于遍历可迭代对象集合中的元素,并对集合中每个元素执行一次相关嵌入的语句。当集合中所有元素完成迭代后,控制传递给for 之和的下一个语句。

注意:for…else…的执行顺序:

​ 当迭代对象完成所有迭代后且此时迭代对象为空,如果存在else子句则执行else子句,没有则继续执行后续代码;如果迭代对象因为某种原因(如果带有break关键字)提出退出迭代,则else子句不会被执行,程序将会直接跳过else子句继续执行后续代码。(循环完整执行完没有被中途break打断则运行else语句)

for i in range(10):
    if i == 5:
        print("循环被打断")
        break
else:
    print("循环完整运行完")
#output:循环被打断
for i in range(10):
    if i == 10:
        print("循环被打断")
        break
else:
    print("循环完整运行完")
#output:循环完整运行完
for 变量 in 对象集合:
    循环体语句()1
else:
    语句()2
等价于:
while(条件表达式):
    循环体语句()1
else:
    语句()2

while循环语句

05while循环

死循环

如果while循环结构中的循环控制条件一直为真,则循环将无限继续,程序将一直运行下去,从而形成死循环。

while True:
    #这是一个死循环
    pass

大多数计算机系统可以通过Ctrl+C组合键中止当前程序运行

在Python中,for循环和while循环的工作方式是不同的:

  1. for循环:它是一个迭代循环,用于遍历任何序列(如列表、元组、字符串)或其他可迭代对象。在每次循环中,for循环将序列中的元素依次赋值给迭代变量,并执行一次循环体。for循环会使用可迭代对象的__iter__方法来获取一个迭代器,然后在每次迭代中使用__next__方法获取下一个元素。
  2. while循环:它是一个条件循环,只要其条件为真(即结果为True),就会不断地执行循环体。while循环不会使用任何魔法方法,它只是简单地检查条件是否为真。

虽然forwhile都是循环结构,但它们的用途是不同的:for通常用于遍历序列或迭代器,而while则用于根据条件重复执行某些代码。

注意:从理论上讲,任何for循环都可以用一个等效的while循环来替换,反之亦然。这是因为这两种类型的循环都是基本的控制结构,可以用于实现任意形式的循环。

编写循环技巧

python提供了一套内置函数,可以在for循环中定制迭代

  • 内置函数range:返回一系列连续增加的整数,可作为for中的索引

  • 内置函数zip:返回一系列并行元素的元组

    • names = ['Alice', 'Bob', 'Charlie']
      ages = [25, 30, 35]
      countries = ['USA', 'Canada', 'UK']
      
      for name, age, country in zip(names, ages, countries):
          print(f'{name}的年龄是{age},来自{country}')
      
      # 输出:
      # Alice的年龄是25,来自USA
      # Bob的年龄是30,来自Canada
      # Charlie的年龄是35,来自UK
      
  • 内置函数enumerate:同时生成可迭代对象中元素的值和索引,因而不必再手动计数

  • 内置函数map:用于将一个函数应用于一个可迭代对象的每个元素,并返回一个包含结果的迭代器。

    • numbers = [1, 2, 3, 4, 5]
      doubled_numbers = map(lambda x: x * 2, numbers)
      print(list(doubled_numbers))  # 输出: [2, 4, 6, 8, 10]
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

企鹅君-Jared

有钱的捧个钱场,没钱的点的赞

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值