birthday = input("Enter when your birthday: "
mow = input("Are you a man or women(it is important)pls answer 1/2 1=women 2=man:"
if mow == 2:
anketa_v1 = f'Меня зовут {sn} {name} {otchestvo}. Мне {age} лет и я родилcя {birthday}'
print(anketa_v1)
elif mow == 1:
anketa_v2 = f'Меня зовут {sn} {name} {otchestvo}. Мне {age} лет и я родилась {birthday}'
print(anketa_v2)
Это весь код который я написал,в целом он работает,но есть 1 НО,как только идет вопрос mow = input("Are you a man or women(it is important)pls answer 1/2 1=women 2=man:" , то после ответа он просто завершает программу и ничего не пишет.Помогите((
В твоем коде переменная mow содержит строку, но в условии if mow == 2: ты сравниваешь ее с числом 2 (тип int). В Python строка '2' не равна числу 2, поэтому условие всегда будет ложным, и код внутри if и elif блоков никогда не выполнится. Ты можешь использовать функцию int() для преобразования введенной строки в целое число. Тогда сравнение будет происходить между числами. mow = int(input("Are you a man or woman (it is important) please answer 1/2 1=woman 2=man: ")
if mow == 2:
# код для мужчины
elif mow == 1:
# код для женщины Если хочешь оставить mow как строку, просто сравнивай ее с строковыми значениями '1' и '2'. mow = input("Are you a man or woman (it is important) please answer 1/2 1=woman 2=man: "
if mow == '2':
# код для мужчины
elif mow == '1':
# код для женщины
Проблема в том, что в строке с запросом mow = input(...), вы ожидаете, что пользователь введет число, но по умолчанию input() всегда возвращает строку, а не число. Поэтому ваши условия if mow == 2 и elif mow == 1 не выполняются, потому что строки "2" и "1" не равны числам 2 и 1.
Чтобы исправить это, нужно привести ввод к числовому типу с помощью функции int().
name = input("Enter your name: "
age = input("Enter your age: "
sn = input("Enter your second name: "
otchestvo = input("Enter your otchestvo: "
birthday = input("Enter when your birthday: "
mow = input("Are you a man or women(it is important)pls answer 1/2 1=women 2=man: "
# Преобразуем ввод в число
mow = int(mow)
if mow == 2:
anketa_v1 = f'Меня зовут {sn} {name} {otchestvo}. Мне {age} лет и я родился {birthday}'
print(anketa_v1)
elif mow == 1:
anketa_v2 = f'Меня зовут {sn} {name} {otchestvo}. Мне {age} лет и я родилась {birthday}'
def get_input(prompt):
"""Функция для получения пользовательского ввода."""
return input(prompt)
def create_anketa(name, sn, otchestvo, age, birthday, is_man):
"""Функция для создания анкеты."""
if is_man:
return f'Меня зовут {sn} {name} {otchestvo}. Мне {age} лет и я родился {birthday}.'
else:
return f'Меня зовут {sn} {name} {otchestvo}. Мне {age} лет и я родилась {birthday}.'
def print_anketa(anketa):
"""Функция для вывода анкеты на экран."""
print(anketa)
def validate_age(age):
"""Функция для проверки корректности возраста."""
try:
age = int(age)
if age < 0:
raise ValueError("Возраст не может быть отрицательным."
return age
except ValueError:
print("Пожалуйста, введите корректный возраст."
return None
def main():
name = get_input("Введите ваше имя: "
age = validate_age(get_input("Введите ваш возраст: ")
sn = get_input("Введите вашу фамилию: "
otchestvo = get_input("Введите ваше отчество: "
birthday = get_input("Введите вашу дату рождения: "
mow = get_input("Вы мужчина или женщина? (1=женщина, 2=мужчина): "