Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Задача по информатике

Гоша Аркадьев Ученик (219), открыт 4 недели назад
Здравствуйте, помогите, пожалуйста, почему-то код не работает.
2 ответа
Аркадий Паровозов спешит на помощь Мудрец (17756) 4 недели назад
Здравствуйте! Давайте разберем ваш код и попробуем понять, почему он не работает.

Ваш код:
```python
f = open("24-8.txt")
a = list(map(int, f.readline().split()))
a = [int(x) for x in f]
```
Судя по этому коду, вы сначала открываете файл и читаете первую строку, затем пытаетесь прочитать остальные строки и преобразовать их в числа. Но это сделано неправильно, так как вы пытаетесь открыть файл и читать его содержимое дважды, что приведет к ошибке.

Также нет проверки на наличие данных в файле и потенциально возможных ошибок при преобразовании данных.

Вот исправленный и более надежный вариант вашего кода:
```python
with open("24-8.txt") as f:
a = list(map(int, f.readline().split())) # Чтение первой строки и преобразование в список чисел
a += [int(line.strip()) for line in f] # Чтение оставшихся строк и добавление их в список

k = 0
s = 0
p = []
reys = 0
m = 0

while True:
while True:
if sum(a) <= 5:
k += 1
s += sum(a)
a.remove(max(a))
if len(a) == 0:
break
else:
p.append(sum(a))
a.remove(max(a))
reys += 1
break
if len(a) == 0:
break
print(reys, p)
```
Вот объяснение исправлений:
1. Использование `with open` для открытия файла, чтобы корректно закрыть его после работы.
2. Сначала читаем первую строку и преобразуем ее в список чисел.
3. Затем читаем остальные строки, удаляя пробелы и преобразуя их в числа, добавляя их в основной список `a`.

Попробуйте запустить этот исправленный код и посмотрите, решает ли он вашу проблему. Если будут еще вопросы или ошибки, дайте знать!
Похожие вопросы