[Programming Basics] Python - Обръщение според пол и възраст
Здравейте! Наскоро се записах за Programming Basics with C#. Реших да поразгледам малко из Judge. Тъй като знам малко Python 3 реших да се пробвам да реша една задачка "Обръщение според пол и възраст". Написах сорс кода, тествах го с repl.it, и той работеше чудесно. Когато изпратих сорс кода в Judge обаче получих грешка. В детайли видях, че са ми отчетени две грешки, на ред 3 и на ред 31. Добре, обаче аз не открих грешки. Грешката на ред 31 е EOF. Първо помислих, че съм изпуснал някоя скоба, но след като погледнах сорс кода всичко ми изглежда наред. Ето error message-а:
Traceback (most recent call last): File "C:\Users\Administrator\AppData\Local\Temp\tmp60D9.tmp", line 44, in <module> choice_cont() File "C:\Users\Administrator\AppData\Local\Temp\tmp60D9.tmp", line 42, in choice_cont choice_cont() File "C:\Users\Administrator\AppData\Local\Temp\tmp60D9.tmp", line 31, in choice_cont cont=input("Желаете ли да продължите? Въведете y/n:") EOFError: EOF when reading a line
На мен реда ми изглежда ОК. Скобите са затворени, кавичките са налице. Не ми е ясно защо се получава EOFError.
На ред 3 ми е отчетена ValueError, но аз още не съм въвел стойност! Ето error message-a: "
Traceback (most recent call last): File "C:\Users\Administrator\AppData\Local\Temp\tmp60D9.tmp", line 27, in <module> main() File "C:\Users\Administrator\AppData\Local\Temp\tmp60D9.tmp", line 3, in main age=int(input("Моля въведете възраст:")) ValueError: invalid literal for int() with base 10: '13.5'
Откъде дойде това 13.5? Ако ми обясните в какво точно се състоят грешките ще съм ви много благодарен. Благодаря предварително!
Разбира се! Пълен код:
def main():
age=int(input("Моля въведете възраст:"))
f_lib=[("f"), ("female"), ("ж"), ("жена"), ("женски")]
m_lib=[("m"), ("male"), ("м"), ("мъж"), ("мъжки")]
sex=input("Моля въведете пол:")
if age<=12 and sex in f_lib:
print("Момиченце")
elif age<=12 and sex in m_lib:
print("Момченце")
elif age>12 and age<18 and sex in f_lib:
print("Девойка")
elif age>12 and age<18 and sex in m_lib:
print("Младеж")
elif age>=18 and sex in f_lib:
print("Дама")
elif age>=18 and sex in m_lib:
print("Господин")
else:
print("Неваледен пол, моля опитайте отново.")
main()
main()
def choice_cont():
cont=input("Желаете ли да продължите? Въведете y/n:")
cont_lib_aff=[("y"), ("Y"), ("yes"), ("д"), ("да")]
cont_lib_neg=[("n"), ("N"), ("no"), ("н"), ("не")]
if cont in cont_lib_aff:
main()
choice_cont()
elif cont in cont_lib_neg:
print("Довиждане и приятен ден!")
else:
choice_cont()
choice_cont()
Задача: SoftUni Judge/ Състезания/ Programming Basics/ Programming Basics- Python/ По-сложни логически проверки/ Обръщение според възраст и пол.
П.С: Благодаря за своевременните отговори!