Уведомления

Группа в Telegram: @pythonsu

#1 Март 4, 2015 00:58:50

Nell
Зарегистрирован: 2014-08-17
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с циклом

Приветствую, господа программисты! Простите за возможно глупую задачу, но бьюсь уже часа три. Прошу помощи.

Если вкратце: то программа должна брать содержимое файла goroda.txt, затем добавлять построчно каждый город к каждой переменной из массива spisok. Хотя бы так. На сохранение в файл пока еще не претендую. Но возникла проблема с тем, что не могу правильно задать цикл - либо она перестает выполняться, либо куча ошибок.

goroda = open('C:\\goroda.txt').readlines()
spisok = ["перем1", "перем2", "перем3", "перем4", "перем5", "перем6", "перем7",]
z = 0
for elm in goroda:
    print(spisok[z]+" "+elm)
z+=1

Заранее благодарю всех ответивших!

Офлайн

#2 Март 4, 2015 01:26:31

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Проблема с циклом

мне кажется что количество строк больше количества элементов в списке
запустите этот код и увидите

goroda = open('C:\\goroda.txt').readlines()
spisok = ["перем1", "перем2", "перем3", "перем4", "перем5", "перем6", "перем7"]
z = 0
for elm in goroda:
    if z >= len(spisok):
        print("в файле больше строк чем элементов в списке")
        break
    print(spisok[z] + " " + elm)
    z+=1



————————————————
-*- Simple is better than complex -*-

Офлайн

#3 Март 4, 2015 15:55:15

Nell
Зарегистрирован: 2014-08-17
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с циклом

Да, я увидел, спасибо. Переменных в городах 47 вообще.
Но вопрос все равно остался неясен: можно ли при помощи цикла for обойти весь массив так, чтобы к каждой переменной из spisok добавлялись поочередно, а затем выводились все переменные из файла?
Прошу прощения за, вероятно, тривиальный вопрос, но мозг кипит.

Офлайн

#4 Март 4, 2015 16:23:04

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Проблема с циклом

goroda = open('C:\\goroda.txt').readlines()
spisok = ["перем1", "перем2", "перем3", "перем4", "перем5", "перем6", "перем7"]
z = 0
for elm in goroda:
    if z >= len(spisok):
        print(elm)
    else:
        print(spisok[z] + " " + elm)
        z+=1
goroda.close()
или так, здесь если в файле строк меньше чем элементов в списке, то элементы будут прост выводится
goroda = open('test.txt')
spisok = ["перем1", "перем2", "перем3", "перем4", "перем5", "перем6", "перем7"]
for i in spisok:
    print(i + ' ' + goroda.readline().rstrip())
for i in goroda.readlines():
    print(i.rstrip())
goroda.close()
а еще лучше
spisok = ["перем1", "перем2", "перем3", "перем4", "перем5", "перем6", "перем7"]
with open('test.txt') as goroda:
    for i in spisok:
        print(i + ' ' + goroda.readline().rstrip())
    for i in goroda.readlines():
        print(i.rstrip())



————————————————
-*- Simple is better than complex -*-

Отредактировано terabayt (Март 4, 2015 16:25:13)

Офлайн

#5 Март 6, 2015 04:06:04

Nell
Зарегистрирован: 2014-08-17
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с циклом

Варианты действительно идентичны, но выдают текст

перем1 Одинцово
перем2 Красногорск
перем3 Люберцы
перем4 Химки
перем5 Мытищи
перем6 Королев
перем7 Реутов
Долгопрудный
Видное
Подольск
Щербинка
…. (и еще куча городов без переменных в начале)

(простите, не знаю как спрятать под хайд).

Нужно же, чтобы к каждой переменной (перем1-7) добавлялись по порядку все города.

Офлайн

#6 Март 6, 2015 04:26:36

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Проблема с циклом

Nell
Нужно же, чтобы к каждой переменной (перем1-7) добавлялись по порядку все города.
следующий раз приводите пример
и нам лучше и вам быстрее
spisok = ["перем1", "перем2", "перем3", "перем4", "перем5", "перем6", "перем7"]
with open('test.txt') as goroda:
    g = goroda.readlines()
for i in spisok:
    for j in g:
        print(i, j, end='')



————————————————
-*- Simple is better than complex -*-

Офлайн

#7 Март 6, 2015 17:09:56

Nell
Зарегистрирован: 2014-08-17
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с циклом

Да, заработало верно! Спасибо Вам большое!
P.S. Прошу прощения что сразу не полностью описал задачу.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version