только входная строка

Как попросить пользователя ввести только строку. Если такого нет, как мне настроить его так, чтобы, если они введут что-то еще, он попросил пользователя ввести его повторно.

Это то, что я пробовал (это не работает):

name = raw_input("Enter name: ")
 if name != str(name):
     name = raw_input("Error, please re-enter : ")

person Hassan    schedule 23.02.2016    source источник
comment
Под строкой вы подразумеваете, что содержит только буквы, если да, то есть ли какие-либо требования к иностранным символам?   -  person Nick Burns    schedule 24.02.2016
comment
Что вы имеете в виду введите только строку? raw_input пользователя всегда является строкой.   -  person jonrsharpe    schedule 24.02.2016
comment
да, но я хочу, чтобы пользователь вводил только текст и ничего больше, например числа   -  person Hassan    schedule 24.02.2016


Ответы (1)


Один из способов сделать это — проверить ввод пользователя, прежде чем продолжить.

В вашем коде вы бы сказали:

name = raw_input("Enter name: ")
    if type(name) != int         #if input isn't int then it's likely to be text so proceed
      if name != str(name):
         name = raw_input("Error, please re-enter : ")

Вы можете сделать это в цикле, чтобы вам не пришлось переписывать свой код.

Это сработало со мной:

x = input("enter letters only")
if type(x) == int:
    print "you entered number"
else:
    print "you entered letters"

Это работает, только если пользователь вводит текст в кавычках, например «том», а не том

person Square-root    schedule 24.02.2016