Софтуерно Инженерство
Loading...
+ Нов въпрос
kirilof93 avatar kirilof93 1 Точки

Salary - Python Basics

Здравейте,

някой може ли да ми отговори защо на тази задача, при долу посочения код, получавам 77/100 точки в Джъдж системата. Аутпута и там и в IDE-то е идентично, като това в условието на задачата. Също така, нали Джъдж следи само за правилния аутпут, а не и за кода, който е написан. Защо при работещ код, получавам грешка:

Zero test #1 (Runtime error)

The zero tests are not included in the final result.

Show input

Traceback (most recent call last):
  File "C:\Windows\TEMP\ExecutionStrategies\vonmeoko.juj\tmpF7FD.tmp", line 7, in <module>
    site_name = input()
EOFError: EOF when reading a line


open_tabs = int(input())
salary = int(input())

fine = 0

for site in range(open_tabs):
    site_name = input()

    if site_name == "Facebook":
        fine = 150
        salary -= fine
        if salary <= 0:
            print("You have lost your salary.")
        site += 1
    elif site_name == "Instagram":
        fine = 100
        salary -= fine
        if salary <= 0:
            print("You have lost your salary.")
        site += 1
    elif site_name == "Reddit":
        fine = 50
        salary -= fine
        if salary <= 0:
            print("You have lost your salary.")
        site += 1
    else:
        site += 1

print(salary)
Тагове:
0
Python
aquaruiz avatar aquaruiz 85 Точки

Здравей,
Грешката ти  в нулевия тест идва от това, че се опитваш да завъртиш цикъла 10 пъти, но подаваш само 7 имена на отворени в браузера таба. Не успях да намеря условието на самата задача, но предполагам, че когато заплата ти падне под 0, трябва да спреш програмата и да принтираш съобщение.

Когато пишеш for loop в python, променливата ти, която изполваш да завътиш цикъла, се увеличава служебно. Така, че редът site += 1 не е необходим, а само бърка програмата, защото site се увеличава с 1, а и ти го увеличаваш с още едно, т.е. site прескача през 2 единици.

Предлагам ти следната редакция на твоя код, за да разбереш идеята:
https://pastebin.com/7bL8qisR

Иначе според мен би било по-ясно да решиш задачата по следния начин:
https://pastebin.com/zukcQPdS

0
07/06/2019 18:38:23
kirilof93 avatar kirilof93 1 Точки

Мерси много за отговора! Вашето решение наистина изглежда доста по-добре! yes

1