Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 15, 2014 16:16:30

Defalt
Зарегистрирован: 2014-06-12
Сообщения: 35
Репутация: +  -2  -
Профиль   Отправить e-mail  

Мелкие вопросы новичков

Оператор for работает как перечисление по порядку елементов списка или кортежа?! И все? Только с списками и кортежами он работает?

Офлайн

#2 Июнь 15, 2014 16:27:52

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Мелкие вопросы новичков

Defalt
И все?
Нет.



Офлайн

#3 Июнь 15, 2014 16:50:22

ajib6ept
От: От: От: От: От: От: От: От:
Зарегистрирован: 2013-08-04
Сообщения: 297
Репутация: +  26  -
Профиль   Отправить e-mail  

Мелкие вопросы новичков

Defalt
Оператор for работает как перечисление по порядку елементов списка или кортежа?! И все? Только с списками и кортежами он работает?

Нет



_________________________
Python golden rule: Do not PEP 8 unto others; only PEP 8 thy self.
Don't let PEP 8 make you insanely intolerant of other people's code.

Офлайн

#4 Июнь 15, 2014 19:19:24

ingfa_1981
Зарегистрирован: 2014-01-25
Сообщения: 200
Репутация: +  1  -
Профиль   Адрес электронной почты  

Мелкие вопросы новичков

Вам необходимо изучить итерации. А вообще все, что является последовательностью все итерируется.
Your text to link here…

Офлайн

#5 Июнь 15, 2014 21:08:06

Defalt
Зарегистрирован: 2014-06-12
Сообщения: 35
Репутация: +  -2  -
Профиль   Отправить e-mail  

Мелкие вопросы новичков

ingfa_1981
Вам необходимо изучить итерации. А вообще все, что является последовательностью все итерируется. Your text to link here…
Спасибо за инфу.
Сразу по первому коду вопросы:
for n in [1,2,3,4,5,6,7,8,9]:
    print "2 в степени %d = %d" % (n, 2**n)
Почему они print пишут без ()? (Пробовал у запустит без (), выдает ошибку)
Что за %d?
В скобках тоже не все ясно (откуда взялась переменная n. Создалась оператором for - применяя последовательно все значения из списка?! (2**n). Что она тогда делает в начале скобок(n, 2**n)?
P.S: При выполнении кода выводит:
2 в степени 1 = 2
2 в степени 2 = 4
2 в степени 3 = 8
2 в степени 4 = 16
2 в степени 5 = 32
2 в степени 6 = 64
2 в степени 7 = 128
2 в степени 8 = 256
2 в степени 9 = 512

Отредактировано Defalt (Июнь 15, 2014 21:11:04)

Офлайн

#6 Июнь 15, 2014 21:27:11

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

Мелкие вопросы новичков

Defalt
В скобках тоже не все ясно (откуда взялась переменная n. Создалась оператором for - применяя последовательно все значения из списка?! (2**n).
да
Defalt
Что она тогда делает в начале скобок(n, 2**n)?
https://docs.python.org/2/library/stdtypes.html#string-formatting

Офлайн

#7 Июнь 15, 2014 21:56:28

ingfa_1981
Зарегистрирован: 2014-01-25
Сообщения: 200
Репутация: +  1  -
Профиль   Адрес электронной почты  

Мелкие вопросы новичков

Defalt
В скобках тоже не все ясно (откуда взялась переменная n. Создалась оператором for
Вам необходимо почитать книгу, например Лутца. Лутц Она есть в разделе книги, тут на форуме.
В python 3 версии print это функция значения в скобках. В версии 2 значения без скобок.
Например:
Для версии 3
print (“Privet medved”)
Для версии 2
print “Privet medved”
Цикл for:
Если бы ты сделал так
# -*- coding: utf-8 -*-
spisok = [1,2,3,4,5,6,7,8,9]
for blabla in spisok:
    print blabla
то ты бы получил
1
2
3
4
5
6
7
8
9
то есть за одну итерацию blabla поочередно принимал бы значение 1 потом 2 потом 3 и.т.д. и.т.п.

Отредактировано ingfa_1981 (Июнь 15, 2014 22:01:42)

Офлайн

#8 Июнь 15, 2014 21:59:50

ingfa_1981
Зарегистрирован: 2014-01-25
Сообщения: 200
Репутация: +  1  -
Профиль   Адрес электронной почты  

Мелкие вопросы новичков

Форматирование строк. Два метода.
первый это %
%
второй это format
format

Офлайн

#9 Июнь 15, 2014 22:13:50

Defalt
Зарегистрирован: 2014-06-12
Сообщения: 35
Репутация: +  -2  -
Профиль   Отправить e-mail  

Мелкие вопросы новичков

Singularity
https://docs.python.org/2/library/stdtypes.html#string-formatting
English я не очень то хорошо знаю, по этому инфу из сайто на англ. тяжелее понимать, т.к. нужно еще подумать, вспомнить перевод. По этой ссылке, из первых строк можно узнать, что % это “operator (modulo)”. А вот пример который там написан:
>>> print ‘%(language)s has %(number)03d quote types.’ % \
… {“language”: “Python”, “number”: 2}
Python has 002 quote types.
С примера можно предположить, что оператор “модуль?!” использует словарь (а в примере который я привел, еще и кортеж. Тогда наверное и списки тоже). Возможно это каким-то образом удобнее, если словарь задан в самом начале а не каждый раз в print. Если же как переменную, то возможно удобнее было бы использовать “”? (закрытие и открытие скобок).
В общем спасибо за инфу. Эта строка стала понятной
for n in :
print “2 в степени %d = %d” % (n, 2**n)
Остается еще один вопрос по ней. Почему не указаны скобки() ни в том примере, что я привел, ни в том, что на оф. сайте пайтона?
UPD: Еще два ответа появились пока я писал этот пост. thx

UUPD: В общем for х in y: берет значения из ‘y’ по порядку и подставляет в ‘x’. ‘y’ может быть (1)=список, кортеж, словарь, range. И все! Т.к. только в (1) может быть несколько значений. В принципе почти так как я и думал, а с инфой которую вы привели стало яснее.

Отредактировано Defalt (Июнь 15, 2014 22:27:48)

Офлайн

#10 Июнь 15, 2014 22:35:08

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Мелкие вопросы новичков

Defalt
Почему не указаны скобки() ни в том примере, что я привел, ни в том, что на оф. сайте пайтона?
Был дан пример для языка второй версии. Док для третей:
https://docs.python.org/3/library/stdtypes.html?highlight=string%20formatting#printf-style-string-formatting

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version