我有一些代码:
def GetPlayerName():
print()
PlayerName = input('Please enter your name: ')
print()
return PlayerName
我怎样才能一直询问玩家的名字,直到他们输入一个超过一个字符长的名字,并告诉他们如果他们将字段留空,他们必须输入一个有效的名字?
我试过了
def GetPlayerName():
print()
PlayerName = input('Please enter your name: ')
print()
return PlayerName
while len(PlayerName) < 1:
print("You must enter a name!")
但一直没有成功。
使用 while 循环重复获取input
:
def get_player_name():
print()
player_name = ""
while len(player_name) <= 1:
player_name = input('Please enter your name: ')
print()
return player_name
您当前使用它的方式是使用 while
语句仅打印错误消息。
PS:我已经将您的变量名称等转换为small_caps_format因为这是 PEP 的建议。
def GetPlayerName():
print()
while True:
PlayerName = input('Please enter your name: ')
if len(PlayerName) > 1:
break
print("Your name is too short! :c")
print()
return PlayerName
一个解决方案,不需要 while 循环之外的任何变量。如@jme所述,使用此解决方案很容易打印错误消息。代码的问题在于:
- while 循环是在调用
return
语句之后,因此它在情感上呈现为静音。 - 您的 while 循环是无限的 - 它不会给用户重试的机会!