Софтуерно Инженерство
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
Основи на програмирането 29/06/2017 16:13:11
e.manolov avatar e.manolov 78 Точки

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

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

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 295 Точки

Най-вероятно трябва да махнете текста, който подканва да въведете стойност, тъй като 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