【发布时间】:2019-02-28 08:20:13
【问题描述】:
我创建了我的所有 Python 初学者版本的游戏:Battleship。 用户必须定义两个坐标,X 和 Y。
我进行了验证,它拒绝任何不是整数的输入。如果输入为整数,则代码继续执行。然而,最后,我需要将当前用户输入硬编码到一个字符串中,否则代码将不会进入 while 循环并在下一轮开始时重新提示用户输入另一组坐标。
这实际上工作得很好,但我觉得这不是处理这个问题的最干净的方法。
谁能提出一个更好的方法来做到这一点?
# ships are positioned, user must sink them
for turn in range(num_of_turns):
print("Turn", turn + 1)
while type(guess_col) is not int:
try:
guess_col = input("Enter coordinate X: ")
guess_col = int(guess_col)
except ValueError:
print("Enter coordinate X again")
continue
while type(guess_row) is not int:
try:
guess_row = input("Enter coordinate Y: ")
guess_row = int(guess_row)
except ValueError:
print("Enter coordinate Y again")
continue
# do stuff (sink ships, miss ships, etc...)
guess_col = str(guess_col)
guess_row = str(guess_row)
【问题讨论】:
-
@Artem 他的代码确实提供了所有这些东西。
标签: python python-3.x for-loop while-loop user-input