Помощник
|
Несколько слов о Python для новичков |
alexdrob
|
Сообщение
#1
|
||
|
|
||
|
|||
alexdrob
|
Сообщение
#2
|
|
например у нас есть кортеж
[PHP]nums = (1, 2, 3)[/PHP] если мы хотим получить список новый в котором каждый элемент кортежа умножен на 2, то можно написать так [PHP]nums = (1, 2, 3) new_nums = [] for num in nums: new_nums .append(num * 2) [/PHP] а можно так [PHP]nums = (1, 2, 3) new_nums = [num * 2 for num in nums] [/PHP] что бы получить список где элементы умножены на 3 и элементы больше 1 [PHP]nums = (1, 2, 3) new_nums = [num * 3 for num in nums if num > 1] [/PHP] результат [6, 9] рассмотрим пример с ссылками, с кортежа с адресами создадим список ссылок [PHP]urls = ('http://google.com', 'http://html.by', 'http://vk.com') links = ['<a href="%s">%s</a>' % (url, url) for url in urls][/PHP] links будет содержать [PHP]['<a href="http://google.com">http://google.com</a>', '<a href="http://html.by">http://html.by</a>', '<a href="http://vk.com">http://vk.com</a>'][/PHP] что бы объединить список ссылок в строку разделённую например тегом br можно написать так str = '<br>'.join(links) после этого str будет равно <a href="http://google.com">http://google.com</a><br><a href="http://html.by">http://html.by</a><br><a href="http://vk.com">http://vk.com</a> |
|
|
alexdrob
|
Сообщение
#3
|
|
например у вас есть кортеж
[PHP]urls = ('http://google.com', 'http://html.by', 'http://vk.com')[/PHP] что бы присвоить его элементы переменным можно сделать так [PHP]google, html, vk = urls[/PHP] теперь у нас переменная google = http://google.com, html = http://html.by и vk = http://vk.com присвоение нескольким переменным в цикле. например есть такой словарь [PHP]d = {'user': (1, 1, 5), 'redactor': (2, 5, 15), 'moderator': (3, 10, 25) }[/PHP] тип учётной записи: id записи, сила голоса при голосовании, количество голосов в день можно разбить сразу элементы кортежа с параметрами учётной записи в переменные [PHP]for group, (id, power, count) in d.items(): print "Группа: %s, id: %u, сила голоса: %u, голосов в день: %u" % (group,id,power,count)[/PHP] в результате вывод будет такой Группа: moderator, id: 3, сила голоса: 10, голосов в день: 25 Группа: redactor, id: 2, сила голоса: 5, голосов в день: 15 Группа: user, id: 1, сила голоса: 1, голосов в день: 5 ну или просто получить параметры записи в переменные по имени учётки, например редактора [PHP]id, power, count = d['redactor'][/PHP] далее в коде нам доступны переменные id = 2, power = 5 и count = 15 |
|
|
alexdrob
|
Сообщение
#4
|
|
пример
[PHP] #!D:/Python/python.exe # -*- coding: UTF-8 -*- html = '''<html> <head> <title>%(title)s</title> </head> <body> <div id="menu"> %(menu)s </div> <div id="content"> %(content)s </div> </body> </html> ''' menu = {'главная':'/', 'новости':'/news/', 'форум':'/forum/'} def application(environ, start_response): status = '200 OK' output = {'title':'', 'menu':'', 'content':''} output.update(main(environ)) output = html % output response_headers = [('Content-type', 'text/html'), ('Content-Length', str(len(output)))] start_response(status, response_headers) return [output] def main(environ): path = environ['PATH_INFO'].strip('/').split('/') if not path[0]: path[0] = 'index' page_name = path[0] action = globals()[page_name + 'Action'] res = {} res['menu'] = '<ul>' for name, link in menu.items(): res['menu'] += '<li><a href="%s">%s</a></li>' % (link, name) res['menu'] += '</ul>' res.update(action(environ, path).items()) return res def indexAction(environ, path): res = {} res['title'] = 'Сайт на Python' res['content'] = 'Привет, Мир!' return res def newsAction(environ, path): res = {} res['title'] = 'Новости сайта на Python' res['content'] = 'Тут новости' return res def forumAction(environ, path): res = {} res['title'] = 'Форум сайта на Python' res['content'] = 'Тут форум' return res [/PHP] при использовании wsgi сразу вызывается application далее вызываем вспомогательную функцию main, которая формирует менюшку и парсит адрес страницы, от которого вызываем одну из функций это просто демонстрация небольшая, вообще в реальном сайте шаблон вынести лучше, и так же страницы можно вынести отдельно ну или по модулям группировать. |
|
|
SEVI |
4.9.2011, 15:55;
Ответить: SEVI
Сообщение
#5
|
|
alexdrob, спасибо огрмное! очень много для себя подчеркнул и понял.
|
|
|
Mulder_hb |
6.1.2012, 15:10;
Ответить: Mulder_hb
Сообщение
#6
|
|
Начал изучать python 3. Кто знает, можно ли зная ветку 3.х, успешно работать на django? Или нужно бросать 3 и начать изучать вторую ветку?
|
|
|
alexdrob
|
Сообщение
#7
|
|
Ну... джанго то на 3 не станет работать, если именно для данного фв, то толку от 3+ питона не будет, так писать придётся максимум под 2.7 на данный момент.
А вообще, когда мне нужно было написать маленький скриптик на питоне 3, если выскакивала ошибка, я смотрел в доку, что там поменяли) для быстрого исправления хватало инфы, а для более глобального изучения новшеств в питоне 3 пока не как не дойду :) А если не для django, то однозначно питон 3+, говорят он намного быстрей стал и удобней :) |
|
|
Mulder_hb |
7.1.2012, 1:13;
Ответить: Mulder_hb
Сообщение
#8
|
|
Ну... джанго то на 3 не станет работать Сама версия языка не проблема. На оси стоят две одновременно. Предполагается само изучение языка. Т.е. изучаю я 3 ветку. Достаточно ли будет изучить 3 ветку + изменения между ветками, чтобы не учить саму вторую ветку? ЗЫ. Джанго сообщество планирует постепенный переход начиная уже с марта сего года. |
|
|
alexdrob
|
Сообщение
#9
|
|
|
Ну лично я 3 ветку не учил, со знанием 2.7 мануал по 3 не проблема :)
Но опять же, я не углу***лся. Сама версия языка не проблема. На оси стоят две одновременно. Ну я немного не о том, я имел ввиду, что если вы писать будите с использованием jango, то вам нужен синтаксис под 2.7. С другой стороны, раз уж начинать, тем более раз планируют и django на 3 переходить, то лучше наверное всё же учить 3+ версию. Если учить 2 то при переходе на третью, вы напишите print "Hello!" а вам ошибка, вы посмотрите, нужно в 3+ так print ("Hello!") и поправите. а выучите 3, напишите с использованием jango print ("Hello!") вам ошибка, вы посмотрите мануал 2.7 а там print "Hello" и опять же исправите. то есть как не крути, одно и тоже получается, но питон 3 вышел уже давно, а значит питон 2 всё таки будет устаревать, хоть как ие 6 совсем он не пропадёт, но питон 3 будет по любому нужнее :) имхо питон 3 учить
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Партнерская программа для Эзотерики, Магии, Таро партнерка для эзотерики |
0 | LiveExpert | 342 | Вчера, 15:13 автор: LiveExpert |
|
Партнерская программа для Эзотерики, Магии, Таро партнерка для эзотерики |
0 | LiveExpert | 317 | Вчера, 15:13 автор: LiveExpert |
|
Azinomoney.com - гемблинг-партнерка с 65%RS для каждого Гарантированный заработок на гемблинг-трафике |
65 | AzinoMoney | 29182 | 27.3.2024, 19:10 автор: AzinoMoney |
|
Делаю полностью уникальный дизайн для сайтов! | 46 | AlexDIZ | 93484 | 26.3.2024, 20:03 автор: AlexDIZ |
|
Большие ставки для кликов в Я.Директ. Как удешевить? | 2 | rownong27 | 1120 | 26.3.2024, 14:13 автор: knezevolk |
Текстовая версия | Сейчас: 29.3.2024, 2:04 |