Проверка введенных данных пользователя. Нубовопрос

B3rn4dette

Новичок
Пользователь
Июн 2, 2022
7
0
1
Изучаю пайтон и сразу же практикую полученные знания. И сейчас, я разбираю операции or и and в if.
По этой причине, написал свой самый простейший пример, но кроме знаний появились еще и вопросы.
Сам пример:

Python:
print ("Введи свое имя")
name = input ()

print ("Введи свою фамилию")
last_name = input ()

print ("Твои введенные данные:", name, last_name)

if name or last_name == True:
    print ("Пожалуйста, укажи все данные")
elif name or last_name == False:
    print ("Спасибо за указание данных")

Вопрос 1: Если добавить оператор равенства к условиям и сравнить их с True, то сравниваться будет только одно или два условия?
Вопрос 2: Код не работает, думаю понимающим это ясно с первого взгляда, как сделать так, чтобы была проверка вводимых данных в одном условии?
К примеру, если в строке с именем нет хотя бы двух букв (пример имени: Ян), то будет выполняться действие if'a.

Так как, если выполняется хотя бы одно условие с or, то будет выполняться указанный блок кода, то
это значит, что с or никак нельзя будет сделать проверку? Потому что, если пользователь укажет хотя бы одно условие, то все равно запустится блок кода.
Помогите..
Забыл спросить, input вообще можно сравнивать с типом данных boolean? Если да, то только 1, 0 и с самим boolean?
 
Последнее редактирование:

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 581
457
83
Вопрос 1: Если добавить оператор равенства к условиям и сравнить их с True, то сравниваться будет только одно или два условия?
в вашем коде только второе сравнивается
вы не верно используете оператор or, if name or last_name == True: - тут вы говорите если name истинно или last_name равно True, не пустая строка всегда истина
а нужно так if name == True or last_name == True:
и строки не нужно сравнивать с True или False, так как пустая строка это False, не пустая - True

Так как, если выполняется хотя бы одно условие с or, то будет выполняться указанный блок кода, то
это значит, что с or никак нельзя будет сделать проверку? Потому что, если пользователь укажет хотя бы одно условие, то все равно запустится блок кода.
не верно, or идет до первой истины. условия, которые идут после истинного условия, отбрасываться

Забыл спросить, input вообще можно сравнивать с типом данных boolean? Если да, то только 1, 0 и с самим boolean?
input это функция, она возвращает строку, про сравнения строк написал выше

вы наверное хотели так
Python:
print("Введи свое имя")
name = input()

print("Введи свою фамилию")
last_name = input()

print("Твои введеные данные:", name, last_name)

if not name or not last_name:
    print("Пожалуйста, укажи все данные")
else:
    print("Спасибо за указание данных")
 
  • Мне нравится
Реакции: B3rn4dette

B3rn4dette

Новичок
Пользователь
Июн 2, 2022
7
0
1
Спасибо за подробное обьяснение, теперь мне понятно
 

Ципихович Эндрю

Активный пользователь
Пользователь
Мар 27, 2021
490
25
28
ТС
Код:
print("Введи свое имя")
name = input()
это одна строка кода обычно:
Код:
name = input('Введите своё имя и нажмите Enter: ')
 

B3rn4dette

Новичок
Пользователь
Июн 2, 2022
7
0
1
ТС
Код:
print("Введи свое имя")
name = input()
это одна строка кода обычно:
Код:
name = input('Введите своё имя и нажмите Enter: ')
Да, я это понял
 

Форум IT Специалистов