本帖最后由 陶远航 于 2023-8-7 08:05 编辑
你好,我很高兴你对 Python 编程感兴趣。
你写的代码基本上是正确的,但是有一些小问题和改进的地方。我会一一指出并给出建议。
- 你的代码没有考虑到用户输入的不是数字的情况,这可能会导致程序出错。你可以使用 try-except 语句来捕获并处理这种异常,例如:try:
number_user = int(input("Enter a number:"))
except ValueError:
print("Invalid input. Please enter a number.")
- 你的代码在第一次输入数字时就把它加到总数里,这可能会导致第一次输入负数或者能被 9 整除的数时,总数不正确。你可以把第一次输入放到 while 循环里,并在循环开始前初始化总数为 0,例如:
sum_number = 0
while input_time <= 20:
input_time += 1
try:
number_user = int(input("Enter a number:"))
except ValueError:
print("Invalid input. Please enter a number.")
continue # skip the rest of the loop and start the next iteration
if number_user < 0:
break
if number_user%9 == 0:
pass
else:
sum_number += number_user
- 你的代码使用了 pass 语句来跳过能被 9 整除的数,这是可以的,但是也可以使用 continue 语句来直接进入下一次循环,这样可以省略 else 子句,例如:
if number_user%9 == 0:
continue # skip the rest of the loop and start the next iteration
sum_number += number_user # only executed when the number is not divisible by 9
- 你的代码没有给用户一个明确的提示,让他们知道循环结束了。你可以在循环外面打印一个消息,例如:
print("The loop is over.")
- 你的代码没有使用 else 子句来处理正常结束循环的情况。如果用户输入了 20 次数字,而没有输入负数,那么循环会自然结束,此时你可以在 else 子句里打印一个消息,例如:
while input_time <= 20:
# loop body
else:
print("You have entered 20 numbers.")
综上所述,你可以把你的代码改写成这样:
input_time = 0
sum_number = 0
while input_time < 20:
input_time += 1
try:
number_user = int(input("Enter a number:"))
except ValueError:
print("Invalid input. Please enter a number.")
continue # skip the rest of the loop and start the next iteration
if number_user < 0:
break # exit the loop immediately
if number_user%9 == 0:
continue # skip the rest of the loop and start the next iteration
sum_number += number_user # only executed when the number is not negative or divisible by 9
else:
print("You have entered 20 numbers.") # only executed when the loop ends normally
print(sum_number) # print the final sum
print("The loop is over.") # print a message to indicate the end of the loop
希望这些建议对你有帮助。
求一个最佳答案谢谢啦 |