在 Python 中按长度验证用户输入



我有一些代码:

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所述,使用此解决方案很容易打印错误消息。代码的问题在于:

  1. while 循环是在调用 return 语句之后,因此它在情感上呈现为静音。
  2. 您的 while 循环是无限的 - 它不会给用户重试的机会!

相关内容

  • 没有找到相关文章

最新更新