Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вложеные итерации 
V
    Опции темы
eshofot
Дата 31.1.2010, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 21.10.2009

Репутация: нет
Всего: нет



Пожалуйста , подскажите в чем ошибка  
Код

1 #! /usr/bin/env python2.6
  2 tera = [234, 345, 57, 937, 5646,89599, 536]
  3 i = y = 0
  4 for i in range (0, 23):
  5     for y in range (0, 23):
  6            if   tera[y] >tera[i]:
  7                   tera[i] = tera[y]
  8 print tera

вообще такая конструкция  допустима?


PM MAIL   Вверх
kemiisto
  Дата 31.1.2010, 23:43 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: нет
Всего: 160



eshofot, в чём задача-то?

Я, конечно, в Python не силён, но такого кхм... плохого кода ещё не видел...

Код
i = y = 0

Зачем эта строчка?

Код
for i in range (0, 23):

Во-первых, можно просто range(23).
Во-вторых, делайте осмысленные пробелы в коде. Зачем пробел перед скобкой в вызове функции?
В-третьих, эммм... А ничего, что у Вас в списке 7 элементов, а Вы запрашиваете 7-ой, 8-ой, 9-ый и т.д. до 22-ого включительно.

Если убрать заключительный print
Код
for i in range(23):
    for y in range(23):
        if tera[y] > tera[i]:
            tera[i] = tera[y]

То получаем 
Код

Traceback (most recent call last):
  File "<pyshell#25>", line 3, in <module>
    if tera[y] > tera[i]:
IndexError: list index out of range



--------------------
PM MAIL WWW GTalk Jabber   Вверх
Karadul
Дата 1.2.2010, 08:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.5.2006

Репутация: нет
Всего: 1



Этот код засовывает во все ячейки минимальное значение, не?
PM MAIL   Вверх
Леопольд
Дата 1.2.2010, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: нет
Всего: 13



Вот код:
Код

#!/usr/bin/env python2

import time

tera = [0,1,2,3,4,5,6,7,8,9]
for i in range (10):
    for y in range (10):
        if   tera[y] >tera[i]:
            tera[i] = tera[y]
print tera

time.sleep(3)

вот вывод. Похоже на то что все приняли минимальное значение? По моему не очень. smile
[9, 9, 9, 9, 9, 9, 9, 9, 9, 9]

Не проще ли было сначала за один проход найти минимум, а потом за второй проход все им "залить"? Сложность алгоритма константная - 2n (2*10=20). 
Сейчас у тебя n в квадрате (10*10=100).


Питон и вложенные циклы, вообще ни при чём. Всё дело в руках того кто это написал. Я имел ввиду неопытность. Однако это дело поправимое...

Это сообщение отредактировал(а) Леопольд - 1.2.2010, 12:50


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
Karadul
Дата 1.2.2010, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.5.2006

Репутация: нет
Всего: 1



Цитата(Леопольд @  1.2.2010,  09:43 Найти цитируемый пост)
Похоже на то что все приняли минимальное значение? По моему не очень. 

Ну максимальное, ну не посмотрел, что чему присваивается, подумаешь smile

П.С. http://lurkmore.ru/Индусский_код http://lurkmore.ru/Быдлокодер
PM MAIL   Вверх
eshofot
Дата 19.2.2010, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 21.10.2009

Репутация: нет
Всего: нет



надо был эффект пузырька  smile  . и правда просматриваеться прямая аналогия с индуским кодом
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.2210 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.