为何Python中这段while循环乘法表代码失效?能否用while实现正确乘法表?
你的while循环为啥没运行?核心问题在这!
首先得说,你写的while循环压根没进入执行环节,问题出在循环的判断条件上:
你初始化了count = 10,但循环条件写的是while count < 0:——这意味着只有当count小于0的时候才会触发循环,可初始值10远大于0,程序一看条件不满足,直接跳过了整个循环,自然啥输出都没有。
反观你的for循环,range(1,11)是从1遍历到10(因为range的右边界是开区间,所以11实际只会到10),刚好覆盖了你要的1到10的范围,所以能正常生成乘法表。
当然能用while循环实现!给你两种写法
完全可以用while循环做出和for循环一样的效果,这里给你两种贴合需求的写法:
写法1:和for循环逻辑一致(从1递增到10)
n = int(input("Type a number: ")) count = 1 while count <= 10: print(f"{count} x {n} = {n * count}") count += 1 # 等价于count = count +1,写法更简洁
这里循环条件设为count <=10,只要count没超过10就继续执行,每次循环后count加1,直到count变成11时,条件不满足,循环结束,刚好输出1×n到10×n的结果。
写法2:沿用你最初的递减思路(从10到1)
如果你想保留从10开始往下数的想法,只需要把循环条件改成count >=1就行:
n = int(input("Type a number: ")) count = 10 while count >= 1: print(f"{count} x {n} = {n * count}") count -= 1 # 等价于count = count -1
这样初始count=10满足>=1的条件,会进入循环,每次count减1,直到count变成0时退出,就能输出10×n到1×n的乘法表。如果想要和for循环一样的顺序,选第一种写法就好。
内容的提问来源于stack exchange,提问作者Pokerboy
相关产品推荐
相关产品推荐

