python的逻辑控制

python条件控制

# 在python中,不使用括号将条件固定
if exp: # 条件满足则执行,后续语句不执行
    # 不使用{}将执行语句固定,也没有;作为结尾
    statement
elif exp:# 条件满足则执行,后续语句不执行
    statement
else:# 上面的条件都不满足则执行
    statement

以上就是条件语句基本执行过程。

a = [1,2,3,4,5]
if 1 in a:
    print("1在a里面")
else:
    print("1不在a里面")
    
if 1 not in a:
    print("1不在a里面")
elif 1 in a:
    print("在a里面")

在这里插入图片描述

if嵌套
if 表达式1:
    语句
    if 表达式2:
        语句
    elif 表达式3:
        语句
    else:
        语句
elif 表达式4:
    语句
else:
    语句

if语句可以嵌套在if语句中,这样写时需要注意语句的对其方式,因为python是使用空格进行对齐的。

num = int(input("请输入一个数字:"))
if num % 5 == 0:
    if num % 3 == 0:
        print("你的数字可以被5和3整除")
    else:
        print("你的数字可以被5整除,不能被3整除")
else:
    if num % 3 == 0:
        print("你的数字可以被3整除,不能被5整除")
    else:
        print("你的数字不可以被5和3整除")

在这里插入图片描述

循环语句
# while :满足条件执行,不满足条件不执行
while True:
    语句 # 无限循环
# for : 满足条件执行,不满足条件不执行
for 条件循环:
    语句

示例:

# 简单示例
for i in range(1, 6):
    print(i, end=",")
i = 5
while i >= 0:
    print(i, end=",")
    i -= 1

在这里插入图片描述

内置函数range()

range()是在python中比较常用的一个函数,在range()函数参数为数字

range(1,6)范围中等于1小于6的数字:12345

range(1,6,2)范围中1~5,跨步为2–》1,3,5步长也可以为负数,负数就是倒着进行读取

range(stop):可以填写列表,元组,集合以及其他数据类型。

示例:

# 配合函数一起使用
# 简单用法
for i in range(1, 6):
    print(i, end=",")

print("分割线——————————")
# 跨步用法
for i in range(1, 6, 2):
    print(i, end=",")

print("分割线——————————")
# 步长为负数
for i in range(6, 1, -2):
    print(i, end=",")

print("分割线——————————")
# 应用列表
list1 = [1, 2, 3, 4, 5, 6]
for i in range(len(list1)):
    print(i, end=",")

在这里插入图片描述

Pass语句

在一些暂时不用实现的方法来使用pass可以保证暂时不会报错。

在python中同样有bleakcontinue语句,和其他语言都是一样的用法。

break:退出当前循环。

continue:结束当前执行的循环,直接开启下一段循环(如果有的话)。

for i in range(1, 6):
    if i == 5:
        break
    print(i, end=",")
print("\n分割线——————————")
for i in range(1, 6):
    if i == 3:
        continue
    print(i, end=",")

在这里插入图片描述

python迭代器与生成器

iter()和next(),配合使用。首先iter是作为一个对象存在的,而next是用于遍历这个对象存在的。

list = [1,2,3,4]
it = iter(list)
print(next(it))
print(next(it))

在这里插入图片描述

这个next相当于做了一个循环的作用。

在python中创建一个迭代器

在python中创建一个迭代器需要实现两个函数iter(),next()。使用__iter__中返回一个特殊的迭代对象。这个迭代器实现了一个__next__方法将通过标识将迭代完成。

class MyNumbers:
  def __iter__(self):
    self.a = 1
    return self
 
  def __next__(self):
    x = self.a
    self.a += 1
    return x
 
myclass = MyNumbers()
myiter = iter(myclass)
 
print(next(myiter), end=" ")
print(next(myiter), end=" ")
print(next(myiter), end=" ")
print(next(myiter), end=" ")
print(next(myiter), end=" ")

在这里插入图片描述

在实现迭代器中需要使用到一个标识符Stoplteration 用于终止标识迭代的完成。

def __next__(self):
    if self.a <= 20:
      x = self.a
      self.a += 1
      return x
    else:
      raise StopIteration
生成器yield

yield:相当于是一个暂停键!不过也可以将这个看作一个迭代器,因为作为一个生成器,当执行到生成器这段代码时,yield会将结果返回,执行下一段代码,然后执行后又会回到这段代码中。

使用yeild来写一个__斐波那契__数(也就是a = 1 ,b = 1,c = a+b a = b,b = c+a……)相信记得的同学应该可以看明白

import sys
def fibonacci(n):  # 生成器函数
    a, b = 1, 1
    count = 0
    while True:
        if count >= n:  # 检查是否已达到所需的斐波那契数数量
            break  # 退出循环
        yield a
        a, b = b, a + b
        count += 1  # 更新计数
yie = fibonacci(5)  # 生成前5个斐波那契数
while True:
    try:
        print(next(yie), end=" ")
    except StopIteration:
        sys.exit()  # 调用函数来退出程序

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值