Как вы предотвращаете ввод пустой строки через пользовательский ввод в python3? - PullRequest
0 голосов
/ 11 ноября 2019

Пытаясь сделать простую игру и не дать игроку иметь пустую строку или пустое имя на входе.

Я пробовал несколько комбинаций в списке пробелов.

     ####what's in a name
    question1="Hello stranger. What's your name? Please enter it below.\n"
    for character in question1:
        sys.stdout.write(character)
        sys.stdout.flush()
        time.sleep(0.10)  
    player_name=input("==> ")  # where you enter your name for the game
    spaces=[None, '', ' ', "     ", '  ', "  ", "", """"""]
    while input in spaces:
        print("#! HEY ____ YOU GOT A NAME RIGHT ? TYPE IT IN ... !#")
        player_name = input("==> ")
    else:
        myPlayer.name=player_name

У меня может быть пустое имя или имя пробела с указанным выше кодом при запуске игры в редакторе кода или терминале.

Неправильный ли цикл while?

1 Ответ

0 голосов
/ 11 ноября 2019

Используя Regex (вы можете удалить player_name! = 'None' условие, если вы принимаете 'None' в качестве ввода): -

import re
regex = r'(.*?)\w(.*?)'
player_name=input("==> ")
while (True):
    if player_name != 'None' and (re.match(regex, player_name)):
        myPlayer.name = player_name
        break
    else:
        print("#! HEY ____ YOU GOT A NAME RIGHT ? TYPE IT IN ... !#")
        player_name = input("==> ")
...