鱼C论坛

 找回密码
 立即注册
查看: 2485|回复: 7

[已解决]新手python课程乘法表倒过来的问题

[复制链接]
发表于 2023-10-8 16:55:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
求助,以下代码为啥会陷入死循环,找不到错误,帮帮




x = 9
y = 1

while y <= 9:
    print(x,"*",y,"=",x * y,end=" ")
    x = x - 1
    if x < y:
         x = 9
         y = y + 1
    else:
        continue

最佳答案
2023-10-10 07:26:09
如果你想打印出九九乘法表,你可以尝试修改你的代码如下:

  1. x = 9
  2. y = 1

  3. while y <= 9:
  4.     while x >= y:
  5.         print(x,"*",y,"=",x * y, end=" ")
  6.         x = x - 1
  7.     print()  # 换行
  8.     y = y + 1
  9.     x = 9
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-10-8 17:06:15 | 显示全部楼层
isdkz 发表于 2023-10-8 16:56
问题出在 if x < y: 的判断条件上。在每次循环中,x 的值会递减,而 y 的值会递增。当 x < y 时,会执行 if ...

但是哥你修改的代码和原来的代码不是一样的吗。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-10-8 17:18:28 | 显示全部楼层
x = 9
y = 1

while y <= 9:
    print(x,"*",y,"=",x * y,end=" ")
    x = x - 1
    if x < y:
        x = 9
        y = y + 1
        print("\n")
        continue
将代码改成以上后问题消失了,但还是不太明白。出现问题的原因不知道。解决的思路是手动在y上升后加个continue回到循环开头继续打印乘法表,但是为啥不加continue会陷入死循环呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-10-9 17:05:23 | 显示全部楼层
Mike_python小 发表于 2023-10-8 18:03
首先,让我们分析一下你提供的代码:

你好。如果没有‘continue’
第一轮当 ‘x’ 小于 ‘y' 时。重置 ’x‘ 为9,’y‘ 为2。在执行换行之后,不是应该继续从  
print(x, "*", y, "=", x * y, end=" ") 继续循环吗。
这样第二轮 'y' 就会等于 3,依次类推直到 ’y' 等于9推出循环。
不是上述我所想的话,请问在换行代码后,会从哪里开始执行呢。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-23 07:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表