Проверка строки с помощью оператора if в Python

Я хочу проверить, совпадает ли ввод со строкой или нет. Но мой код не может видеть оператор if. Я думаю, что проблема в уравнении оператора if:

    name = input("Name: ")
    if name != str:
        print("Please enter letter answer ...")
        name = str(input("Name: "))
    else:
        print(input(name))             

Думаю, я не могу написать name! = Str. Но я не знаю, как проверить, что ввод равен строке. ???


person Deniz Güvel    schedule 04.11.2020    source источник
comment
Ваш ввод не может быть ничем, кроме строки.   -  person khelwood    schedule 04.11.2020
comment
Отвечает ли это на ваш вопрос? Как узнать, является ли объект Python строка?   -  person funie200    schedule 04.11.2020
comment
Добро пожаловать в Stackoverflow! Задавая свой вопрос, постарайтесь правильно отформатировать код, используя правильные отступы, особенно в Python, где отступы имеют значение.   -  person expressjs123    schedule 04.11.2020


Ответы (4)


Во-первых, вы не можете проверить входную строку на соответствие типу str. входы всегда будут иметь тип str. Если вы хотите проверить наличие строк в целом, вы можете использовать type(var) == str.

person expressjs123    schedule 04.11.2020

input всегда будет возвращать строку, поэтому вам не нужно проверять, является ли это строкой.

Кроме того, эта строка: print(input(name)) снова запрашивает ввод, вы, вероятно, просто хотите print(name)

Этот код должен отлично работать для того, что вам нужно:

name = input("Name: ")
print(name)

Если вы хотите, чтобы имя не содержало никаких цифр или пробелов, поэтому это было просто одно имя, вы можете попробовать isalpha():

if name.isalpha():
    pass # Do your stuff with the name here
person funie200    schedule 04.11.2020

Я бы рекомендовал использовать функцию isinstance (объект, тип), потому что это уже логическая функция, например: if isinstance(name,str):

вы также можете использовать функцию type (), если хотите использовать подход, более похожий на то, что вы уже используете. Функция type () может быть полезна в целом, например:

if type(name) != str:
   print("Error; name is ",type(name))
person Ponyboy    schedule 04.11.2020

В Python все, что вы вводите в качестве ввода, функция input () преобразует в строку. Если вы введете целочисленное значение, оно все равно преобразует его в строку.

Используя isaplha() как @ funie200, сказал:

while True:
    name = input("Name: ")

    if name.isalpha():
        print(name.title)
        break
    else:
        print("Please enter your name...")
person Community    schedule 04.11.2020