Пуля — дура. Пых — молодец.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Пыха информатор 3.1
Еще более удобное оповещение о флуде!

Краснодарское время: 24 Май, 2012, 02:52:04

Страниц: [1] 2 3
Печать
Автор Тема: Циклы в Python  (Прочитано 4615 раз)
0 Пользователей и 3 Гостей смотрят эту тему.
adw0rd    ↓ 
14 Ноябрь, 2009, 03:06:39
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17615
Сила слова: 1.67

Есть два вида циклов while и for
 
Python

L = [1,2,3,4,5]
for x in L:
    print x,
# '1 2 3 4 5'
 

Python

while True:
    reply = raw_input('Enter: ')
    if(reply == 'stop'): break
    print reply.upper()
 
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
adw0rd    ↓ 
15 Ноябрь, 2009, 12:06:18 , спустя 8 часов 59 минут 39 секунд
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17615
Сила слова: 1.67

Рассмотрим for, если ему передать список, строку, кортеж - то будут в "x" значения.
 
Python

L = [1,3,5]
for x in L:
    print x,
# 1 3 5
 
S = 'str'
for x in S:
    print x,
# s t r
 
T = (76, 45, 11)
for x in T:
    print x,
# 76 45 11
 

а если передать словарь - то будут ключи:
 
Python

D = {'a': 'abc', 'd': 'def', 'g': 'ghi'}
for x in D:
    print x,
# a d g
 

Это тоже самое что пройтись по D.keys(), по умолчанию так и делается, чтобы пройтись по значениям надо вызвать метод явно: D.values()
 
Python

D = {'a': 'abc', 'd': 'def', 'g': 'ghi'}
for x in D.values():
    print x,
# abc def ghi
 
Спустя 3 минуты 34 секунды добавил
Некоторым не хватает "нормального фора" как в сях и в php в частности:
 
PHP

for ($i = 0; $i < 100; $i++) {
    echo $i;
}
 

Но, простите чем вам следующее выражение не поведение обычного фора?
Python

for i in range(100):
    print i,
 
Спустя 1 минуту 17 секунд добавил
Python

L = [1,2,3,4,5]
for i in L:
    print i,
 
for i in L.keys():
    print i,
 
« Последнее редактирование: 15 Ноябрь, 2009, 12:06:18 от adw0rd » Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
adw0rd    ↓ 
14 Ноябрь, 2009, 03:38:43 , спустя
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17615
Сила слова: 1.67

В циклах python допустимы такие конструкции как break, continue, else, pass
 
Python
while <expression 1>:
    <statements 1>
    if <expression 2>: continue
    if <expression 3>: break
else:
    <statemens 2>

а pass это просто пустышка:
Python

while True:
    pass
 

для того чтобы заполнить statemens, если оно пустое...
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
adw0rd    ↓ 
14 Ноябрь, 2009, 03:47:30 , спустя 8 минут 47 секунд
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17615
Сила слова: 1.67

пример генераторов списков,
вывод всех нечетных значений в списке:
 
Python

L = [1,2,3,4,5,6]
N = [v for v in L if v % 2]
 

в N будет [1,3,5], так как нечетные будут давать остаток от деления, а четные нет
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
vasa_c    ↓ 
14 Ноябрь, 2009, 09:25:03 , спустя 5 часов 37 минут 33 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: в ухо

Карма: 81
Сообщений: 2459
Сила слова: 3.29

Но, простите чем вам следующее выражение не поведение обычного фора?
Поведение обычного фора можно и через while и через goto и через, прости господи, рекурсию можно получить.
Но лично мне нравится поведение обычного фора получать через for.
Записан

adw0rd    ↓ 
14 Ноябрь, 2009, 10:29:18 , спустя 1 час 4 минуты 15 секунд
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17615
Сила слова: 1.67

vasa_c, имхо, это все капризы
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
phpdude    ↓ 
15 Ноябрь, 2009, 01:41:53 , спустя 3 часа 12 минут 35 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 344
Сообщений: 20784
Сила слова: 1.66


в N будет [1,3,5], так как нечетные будут давать остаток от деления, а четные нет

а это уже жопа прости :)
 
то есть вместо 1млна записей мне придется перебрать два миллиона и откинуть половину? :) на данух такое счастье, ведь суммирование - в разы более простая операция(в 1 такт если не ошибаюсь) нежели деление(а там вообще пиздец сложность :) )
 
нормальных
 
for($i=0; $i<$x; $i+= 2) {}
 
нет?
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
Абырвалг    ↓ 
15 Ноябрь, 2009, 02:02:19 , спустя 20 минут 26 секунд
НЕ ХУЕТА! ХУЕТА!

PHP Infected, симфоеб, маконенавистник
Группа: Джедаи

Карма: 80
Сообщений: 6094
Сила слова: 1.31

так он же вроде по значениям смотрит а не по ключам.
Записан

PHP does the job since 1995
Пожалуйста, не надо делать двойные клики по ссылкам. Это создает избыточную нагрузку на сервер
adw0rd    ↓ 
15 Ноябрь, 2009, 02:07:19 , спустя 5 минут
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17615
Сила слова: 1.67

а это уже жопа прости :)
 
то есть вместо 1млна записей мне придется перебрать два миллиона и откинуть половину? :) на данух такое счастье, ведь суммирование - в разы более простая операция(в 1 такт если не ошибаюсь) нежели деление(а там вообще пиздец сложность :) )
эм, не понял к чему это, я просто привел пример генератора списка, если хочешь приведи другой и я оформлю в виде генератора
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
phpdude    ↓ 
15 Ноябрь, 2009, 02:08:24 , спустя 1 минуту 5 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 344
Сообщений: 20784
Сила слова: 1.66

adw0rd, я просто сказал что итерации с определенным шагом (ты же их делал вроде) должны выглядеть как операции с шагом))
 
Спустя 7 секунд добавил
а не как костыль)
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
adw0rd    ↓ 
15 Ноябрь, 2009, 02:08:55 , спустя 31 секунду
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17615
Сила слова: 1.67

нормальных
 
for($i=0; $i<$x; $i+= 2) {}
 
нет?
такого именно вида нет, я уже об этом сказал.
скажи мне что у тебя в $x и я приведу пример аналога на python
Спустя 27 секунд добавил

adw0rd, я просто сказал что итерации с определенным шагом (ты же их делал вроде) должны выглядеть как операции с шагом))
 
Спустя 7 секунд добавил
а не как костыль)
я не показывал итерации с шагом
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
phpdude    ↓ 
15 Ноябрь, 2009, 02:11:17 , спустя 2 минуты 22 секунды
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 344
Сообщений: 20784
Сила слова: 1.66

adw0rd, в х .. ну например 1млн )))
 
ну пример утрированный, как и сама задача - перебор с шагом != 1 ... я вот почти не разу не юзал вроде ... %)
 
устал я седня. грузчиков двое суток уже работаю, а сегодня еще ыл плотником, сборщиком мебели, сантехником, и блядбь не поверите, программистом на пхп еще придется побыть ))
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
adw0rd    ↓ 
16 Ноябрь, 2009, 05:09:21 , спустя 1 день 14 часов 58 минут 4 секунды
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17615
Сила слова: 1.67

PHP

$x = 1000000;
for($i=0; $i<$x; $i+= 2) {}
 

Python

x = 1000000
i = 0
while i < x:
    i += 2
 

нравятся короткие конструкции?
Python

x=1000000;i=0
while i<x: i+=2
 
« Последнее редактирование: 16 Ноябрь, 2009, 05:09:21 от adw0rd » Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
phpdude    ↓ 
15 Ноябрь, 2009, 02:40:57 , спустя
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 344
Сообщений: 20784
Сила слова: 1.66

ну да, я говорю же чтото неподумал, прости меня эдво, я провинился ...
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
adw0rd    ↓ 
15 Ноябрь, 2009, 02:53:43 , спустя 12 минут 46 секунд
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17615
Сила слова: 1.67

phpdude, да ладно, мы все тебя любим, просто ты бываешь резок, но такой ты уж есть )
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
Страниц: [1] 2 3
Печать
 

Перейти в: