网络草包 发表于 2026-5-27 15:26:30

新人学习贴_数星星

本帖最后由 网络草包 于 2026-5-27 15:39 编辑

#需求:提示用户连续输入最多7个整数(每个数在1至50之间,包含1和50).对于每个有效输入(即在1至50之间的数),程序将打印该数个数的*.
#方法1:
num = 0
while num < 7:
    try:
      tem = int(input("请输入1至50之间的整数:"))
      if 51 > tem > 0:
            print("*" * tem)
            num += 1
      else:
            print("无效的数字,请重新输入")
    except:
      print("请输入整数数字")

#方法2:
for i in range(7):
    while True:
      try:
            num = int(input("请输入1至50之间的整数:"))
            if 1 <= num <= 50:
                print("*" * num)
                break
            else:
                print("无效的数字,请重新输入")
      except:
            print("请输入整数数字")

FishC 发表于 2026-5-27 15:26:48

你好,新人!你的代码思路清晰,但有两个小问题需要留意哦。

1. 方法1的问题:循环条件是 while num < 8,这会导致你需要输入 8个 有效数才会停止(因为 num 从 0 开始,0~7 共 8 次)。根据需求“最多7个整数”,应该用 while num < 7 或者 while num <= 6。
2. 方法2的问题:你的代码没有贴完整,推测原本想用 if 1 <= num <= 50: 判断。此外,循环里用了 for num in range(7): 又在内层 while True: 里重新赋值给 num,虽然语法上不会出错(外层的 for 变量每次迭代会重新赋值),但这样容易混淆变量,建议换个变量名,比如 value。

改进建议:统一用一个循环,判断清晰,且注意不遮蔽外部变量。下面是修改后的代码:

count = 0
while count < 7:
    try:
      value = int(input("请输入1至50之间的整数:"))
      if 1 <= value <= 50:
            print("*" * value)
            count += 1
      else:
            print("无效的数字,请重新输入")
    except ValueError:
      print("请输入整数数字")

或者使用 for 循环 + 异常处理:

for i in range(7):
    while True:
      try:
            value = int(input("请输入1至50之间的整数:"))
            if 1 <= value <= 50:
                print("*" * value)
                break
            else:
                print("无效的数字,请重新输入")
      except ValueError:
            print("请输入整数数字")

另外,except: 会捕获所有异常(包括键盘中断等),建议改成 except ValueError: 更精确。

继续加油,你已经掌握了输入输出和循环的基本用法!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 新人学习贴_数星星