Найти - Пользователи
Полная версия: Бьюсь челом
Начало » Центр помощи » Бьюсь челом
1
Vlad_Ki
Друзья, помогите пожалуйста решить такого рода вопрос.
Код:
def read_data():
	otveti = (".ans", ".tans")
	_line = ""
	dict_with_ans = collections.defaultdict (list)
	dict_with_tans = collections.defaultdict (list)
	fh = open("questions2.txt", encoding = "utf-8")
	for line in fh:
		line = line.strip("\n").strip("")
		if line.endswith(".qs"):
			line = line.rstrip(".qs")
			_line += line + "\n"
		if line.endswith(otveti):
			x = dict_with_tans[_line]
			y = dict_with_ans[_line]
			_line = ""
			if line.endswith(".ans"):
				line = line.rstrip(".ans")
				y.append(line)
			elif line.endswith(".tans"):
				line = line.rstrip(".tans").lower()
				x.append(line)
				y.append(line)
		else:
			_line += line + "\n"
	return dict_with_ans, dict_with_tans

Пример строк в файле:
Возвращает копию строки s, в которой все символы приведены.qs
к нижнему регистру
s.lower().tans

Функция распихивает по словарям вопросы и ответы к тесту.
Первая строчка вопроса помечена расширением .qs
правильный ответ помечен .tans
Вопрос: почему строка с расширением .qs попадает в словарь дважды?
Уже не в состоянии думать над этой проблемой. Заранее спасибо за помощь.
r00tl3ss
if line.endswith(".qs"): # выполняется, когда строка заканчивается на .qs
    ...
    _line += line + "\n" 
if line.endswith(otveti): # собственно здесь будет false
    ...
else: # и будет выполняться это условие, т.е. уже второй раз.
    _line += line + "\n"
FishHook
Бьюсь челом
сначала неправильно прочитал
Vlad_Ki
r00tl3ss
Спасибо, что открыли глаза.
Действительно, ошибка детского сада.
FishHook
Вы в любом случае не прогадали. Я вчера бился всем, чем только можно.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB