Найти - Пользователи
Полная версия: Проблема с циклом
Начало » Центр помощи » Проблема с циклом
1
Nell
Приветствую, господа программисты! Простите за возможно глупую задачу, но бьюсь уже часа три. Прошу помощи.

Если вкратце: то программа должна брать содержимое файла 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

Заранее благодарю всех ответивших!
terabayt
мне кажется что количество строк больше количества элементов в списке
запустите этот код и увидите
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
Nell
Да, я увидел, спасибо. Переменных в городах 47 вообще.
Но вопрос все равно остался неясен: можно ли при помощи цикла for обойти весь массив так, чтобы к каждой переменной из spisok добавлялись поочередно, а затем выводились все переменные из файла?
Прошу прощения за, вероятно, тривиальный вопрос, но мозг кипит.
terabayt
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())
Nell
Варианты действительно идентичны, но выдают текст

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

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

Нужно же, чтобы к каждой переменной (перем1-7) добавлялись по порядку все города.
terabayt
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='')
Nell
Да, заработало верно! Спасибо Вам большое!
P.S. Прошу прощения что сразу не полностью описал задачу.
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