Python逻辑控制语句 之 循环语句--死循环&无限循环

1.死循环和无限循环的异同

死循环无限循环

相同点

在程序执⾏层⾯上看起来是⼀样的, 都是代码⼀直执行不能停止

不同点
  • 是由于 写代码的人 不小心造成bug
  • 是写代码的⼈ 故意这么写
  • ⽆限循环中,⼀般会存在⼀个 if 判断语句, 当这个判断语句的条件成⽴, 执⾏ break 语句,来终止循环

while True:

    xxxx

    xxxx

    if xxxx:

        break

    xxxx


2.break与continue的区别

关键字 break关键字 continue
相同点
  • 都是用于循环语句中结束循环的。
  • break 和 continue 只能用在循环中。
不同点
  • 当程序代码执⾏遇到 break, break 所在的循 环就会被终止执⾏。
  • 终止整个循环。
  • 当程序代码执⾏遇到 continue, continue 后续的代码不执行,但是会继续下⼀次的循环。
  • 结束本次循环,继续 下⼀次循环。

3.循环版本的石头剪刀布

1, 只需要确定哪些代码需要重复执⾏

2, 将需要重复执⾏的代码 写在循环的缩进中(循环体)

(1)使用continue结束本次循环 

# 分析:
# 1. 控制台出拳(⽯头1/剪⼑2/布3) player = input()
# 2. 电脑出拳 computer = 电脑的结果
# 3. 判断胜负
# 3.1 玩家胜利
# 3.1.1 玩家出⽯头, 电脑出剪⼑ player == 1 and computer == 2
# or
# 3.1.2 玩家出剪⼑, 电脑出 布 player == 2 and computer == 3
# or
# 3.1.3 玩家出布, 电脑出 ⽯头 player == 3 and computer == 1
# 3.2 平局 玩家和电脑出的内容⼀样, player == cpmputer
# 3.3 电脑胜利 else:

import random
while True:
    player = int(input('请出拳 石头1/剪刀2/布3/退出0:'))
    if player == 0:
        continue  # 结束本次循环,继续下一次循环
        # print("欢迎下次游戏!")
        # break
    computer = random.randint(1, 3)
    if (player == 1 and computer == 2) or (player == 2 and computer == 3) or (player == 3 and computer == 1):
        print("玩家胜利!")
    elif player == computer:
        print("平局!")
    else:
        print("电脑胜利!")

(2)使用break终止整个循环 

# 分析:
# 1. 控制台出拳(⽯头1/剪⼑2/布3) player = input()
# 2. 电脑出拳 computer = 电脑的结果
# 3. 判断胜负
# 3.1 玩家胜利
# 3.1.1 玩家出⽯头, 电脑出剪⼑ player == 1 and computer == 2
# or
# 3.1.2 玩家出剪⼑, 电脑出 布 player == 2 and computer == 3
# or
# 3.1.3 玩家出布, 电脑出 ⽯头 player == 3 and computer == 1
# 3.2 平局 玩家和电脑出的内容⼀样, player == cpmputer
# 3.3 电脑胜利 else:

import random
while True:
    player = int(input('请出拳 石头1/剪刀2/布3/退出0:'))
    if player == 0:
        # continue  # 结束本次循环,继续下一次循环
        print("欢迎下次游戏!")
        break
    computer = random.randint(1, 3)
    if (player == 1 and computer == 2) or (player == 2 and computer == 3) or (player == 3 and computer == 1):
        print("玩家胜利!")
    elif player == computer:
        print("平局!")
    else:
        print("电脑胜利!")

(3)在以上基础上,添加代码实现:如果玩家赢三次,就结束循环

import random

n = 0
while n < 3:
    player = int(input('请出拳 石头1/剪刀2/布3/退出0:'))
    if player == 0:
        # continue  # 结束本次循环,继续下一次循环
        print("欢迎下次游戏!")
        break
    computer = random.randint(1, 3)
    if (player == 1 and computer == 2) or (player == 2 and computer == 3) or (player == 3 and computer == 1):
        print("玩家胜利!")
        n = n + 1
    elif player == computer:
        print("平局!")
    else:
        print("电脑胜利!")

import random

n = 0
while True:
    player = int(input('请出拳 石头1/剪刀2/布3/退出0:'))
    if player == 0:
        # continue  # 结束本次循环,继续下一次循环
        print("欢迎下次游戏!")
        break
    computer = random.randint(1, 3)
    if (player == 1 and computer == 2) or (player == 2 and computer == 3) or (player == 3 and computer == 1):
        print("玩家胜利!")
        n = n + 1
        if n == 3:
            print("您已胜利三次,游戏结束!")
            break
    elif player == computer:
        print("平局!")
    else:
        print("电脑胜利!")


4.求 1- 100 之间的累加和

1 + 2 + 3 + ... + 99 + 100
使⽤循环产⽣ 1-100 之间的数字
n = 1
sum = 0  # 定义变量 保存求和的结果
while n <= 100:
    sum += n  # 0 + 1 + 2 + 3 + ... + 100
    n += 1
print(f'1-100的和为{sum}')  # 求和的结果 只需要打印⼀次, 所以放在循环的外边


未完待续。。。 

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

埜玊

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值