新人学习贴_数星星
本帖最后由 网络草包 于 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("请输入整数数字") 你好,新人!你的代码思路清晰,但有两个小问题需要留意哦。
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]