Loading...
CosmicSalad avatar CosmicSalad 3 Точки

[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? Ако ми обясните в какво точно се състоят грешките ще съм ви много благодарен. Благодаря предварително!

 

 

 

Тагове:
0
Programming Basics 29/06/2017 16:13:11
e.manolov avatar e.manolov 80 Точки

Колега, ако може да ни покажеш целия код , който си написал и точната задача, която решаваш.

Благодаря предварително.

0
CosmicSalad avatar CosmicSalad 3 Точки

Разбира се! Пълен код: 

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/ По-сложни логически проверки/ Обръщение според  възраст и пол.

П.С: Благодаря за своевременните отговори!

0
jivako000 avatar jivako000 296 Точки

Най-вероятно трябва да махнете текста, който подканва да въведете стойност, тъй като Judge следи за тези неща и ако ги има, няма да ви даде точки. 

0
CosmicSalad avatar CosmicSalad 3 Точки

Хм, не знаех, че има такова изискване. От  условието разбрах само, че отговора трябва да е под 16,00KB и че програмата не трябва да хаби над 16 MB ресурси, както и че трябва да се изпълни моментално(под една десета от секундата), но никъде не видях, че не трябва в програмата ми да има функция input. Но това не е проблем! Мога да преструктурирам main функцията и да задам параметри после. Благодаря за съвета.

 

0
24/06/2017 21:08:45
CosmicSalad avatar CosmicSalad 3 Точки

Колеги, когато качих отговора със преструкторирана функция main, установих нещо много важно- задачите се построяват по предварително зададен модел, най-вероятно зададен в края на дадена лекция. Аз просто исках да проверя дали ще мога да се справя със задачата. Май съм поизбързал малко. ;) 

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.