Python

Помогите пожалуйста с кодом. Python

n = input("Введи свое имя:")
pol = input("Укажи свой пол:")
age = int(input("Введи свой возраст:"))


#Муж
if pol == "Мужской":
age1 == int(input("Введи свой возраст:"))
if age1 < 55:
print("Твой возраст является пенсионным.")
elif:
print("Твой возраст не является пенсионным.")

#Жен
else pol == "Женский":
age = int(input("Введи свой возраст:"))
if age < 53:
print("Твой возраст является пенсионным.")
elif:
print("Твой возраст не является пенсионным.")



что тут не так?
можно создать функцию, если да, то как?
Твой код ДВА раза запрашивает ввод возраста. Ты УЖЕ узнал возраст - сразу после пола. Так ЗАЧЕМ ты ещё раз спрашиваешь возраст внутри if?

Без нормально опубликованного - со всеми отступами - кода (специально для этого кнопочку <> в редактор добавили; но нет, в упор её игнорируют) что-то сказать о других ошибках невозможно.
Сергей Косолапов
Сергей Косолапов
67 946
Лучший ответ
С контролем ввода:
 name = input('Введи свое имя: ')  
while not (gender := input('Укажи свой пол: ').capitalize()) in (genders := ('Мужской', 'Женский')):
print('Неправильно указан пол.')
while True:
if (a := input('Введи свой возраст: ')).isnumeric() and (age := int(a)) > 0:
break
else:
print('Неправильно указан возраст.')
part = ('', 'не ')[(gender == genders[0] and age < 55) or (gender == genders[1] and age < 53)]
print(f'Твой возраст {part}является пенсионным.')
Через функцию:
 name = input('Введи свое имя: ') 
while not (gender := input('Укажи свой пол: ').capitalize()) in (genders := ('Мужской', 'Женский')):
print('Неправильно указан пол.')
while True:
if (a := input('Введи свой возраст: ')).isnumeric() and (age := int(a)) > 0:
break
else:
print('Неправильно указан возраст.')
def is_pensioner(gender, age):
return age < (55, 53)[genders.index(gender)]
print(f'Твой возраст {("", "не ")[is_pensioner(gender, age)]}является пенсионным.')
Немного кривовато выглядит из-за использования `genders` "извне" , дублировать кортеж не хотелось.
В вашем коде есть несколько ошибок:

Вы используете age1 вместо age, что вызывает ошибку.
Вы используете elif без условия, что также вызывает ошибку.
Вы дублируете вызов для ввода возраста, когда определяете пол.
Для решения этих проблем можете исправить ваш код следующим образом:
 def is_pensioner(gender, age): 
if gender == "Мужской":
pension_age = 55
elif gender == "Женский":
pension_age = 53
else:
return "Неизвестный пол"
return "Твой возраст является пенсионным." if age < pension_age else "Твой возраст не является пенсионным."

n = input("Введи свое имя:")
pol = input("Укажи свой пол:")
age = int(input("Введи свой возраст:"))

print(is_pensioner(pol, age))
Alex Kashirkin
Alex Kashirkin
1 109
Александр Шинкарюк у вас тоже ошибка, при вводе женского возраста меньше 53 пишет что возраст пенсионный, а если ввести больше 53 - то не пенсионный. Но все равно спасибо за помощь.