Повторяю до тех пор - PullRequest
       45

Повторяю до тех пор

0 голосов
/ 17 июня 2020

Итак, я получил этот код и хочу, чтобы он повторялся, пока пользователь не заставит свое имя пользователя не начинаться с символа или числа.

  name=name.capitalize()
    print(name)
    surname= input("surname")
    surname=surname.capitalize()
    print(surname)
    password= input("password")
    username= input("username")
    first_char = username[0]
    if first_char.isalpha():
        print('done')
    else: print('username must start with a letter')

Ответы [ 3 ]

1 голос
/ 17 июня 2020

Я не тестировал этот код, но похоже, что все, что вам нужно, это просто while l oop вот так:

surname = input("surname")
while not surname[0].isalpha():
    print("surname must start with a letter")
    surname = input("surname")
0 голосов
/ 17 июня 2020

Если вы используете python 3.8, вы можете использовать оператор := для удобного написания этого:

while not (username := input("username: "))[0].isalpha():
    print('username must start with a letter')
# do stuff

В противном случае ваш выбор будет:

(a) Повторите строку кода

username = input("username: ")
while not username[0].isalpha():
    print('username must start with a letter')
    username = input("username: ")
# do stuff

или (b) Используйте бесконечный вид с break:

while True:
    username = input("username: ")
    if username[0].isalpha():
        break
    print('username must start with a letter')
# do stuff
0 голосов
/ 17 июня 2020

Вы близки:

name = input("Name:").capitalize()
print(name)
surname = input("Surname:").capitalize()
password = input("Password:")
username = input("Username:")
while not username[0].isalpha():
print('Done')

Альтернатива:

name, surname, password, username = input("Name:").capitalize(), input('Surname:').capitalize(), input('Password'), input('Username')
while not username[0].isalpha():
        print('Username must start with a letter')
print('Done')
...