Самостоятельная работа. Вариант 1

Вам дано 6 программ, решающих одну и ту же задачу. Некоторые из этих программ правильные, некоторые - неправильные.

Для каждой программы укажите, правильная ли она или нет. Если нет, то укажите почему: если возможно, укажите, как ее исправить, или напишите, что именно в ней неправильно (если это возможно).

Задача, для которой написаны программы

Во входном файле записаны натуральные числа, которые могут быть разделены пробелами и концами строк (в том числе между числами может быть несколько пробелов, пустые строки и т.п.). Гарантируется, что количество чисел не меньше двух.

Выведите в выходной файл сумму всех чисел, кроме последнего.

Ввод Вывод
1    2
3
 4  

5 6
15

Решение A1

Скачать программу a1.py

with open("input.txt") as fin:
	data = fin.read().split()

sum = 0
for cur in data[:-1]:
	sum += int(cur)

with open("output.txt", "w") as fout:
	print(sum, file=fout)

Решение A2

Скачать программу a2.py

sum = 0

fin = open("input.txt")

for curline in fin:
	for i in range(len(curline)):
		if curline[i].isdigit():
			sum += int(curline[i])
			last = int(curline[i])

sum = sum - last

fout = open("output.txt", "w")

print(sum, file=fout)

fin.close()
fout.close()

Решение A3

Скачать программу a3.py

with open("input.txt") as fin:
	with open("output.txt", "w") as fout:
		sum = 0
		data = fin.read().strip().split()

		for cur in range(len(data)):
			data[cur] = int(data[cur])
			sum += data[cur]

		sum = sum - data[-1]

		print(sum)

Решение A4

Скачать программу a4.py

sum = 0

with open("input.txt") as fin:
	data = fin.readlines()
	for cur in range(len(data) - 1):
		sum += int(data[cur])

with open("output.txt", "w") as fout:
	print(sum, file=fout)

Решение A5

Скачать программу a5.py

sum = 0

with open("input.txt") as fin:
	for curline in fin:
		curlist = curline.split()

		for cur in curlist:
			sum += int(cur)
			last = int(cur)

sum = sum - last

with open("output.txt", "w") as fout:
	print(sum, file=fout)

Решение A6

Скачать программу a6.py

sum = 0

with open("input.txt") as fin:
	curline = ":-)"
	while curline != "":
		curline = fin.readline()
		curlist = curline.split()
		for cur in curlist:
			sum += int(cur)
		if curline != "":
			last = int(curlist[-1])

sum = sum - last

with open("output.txt", "w") as fout:
	print(sum, file=fout)