LINUX.ORG.RU

Знакомство с Python 3: Часть 1. Что нового в новой версии

 ,


0

0

В этой статье — первой из серии статей о Python 3— освещаются следующие темы: новая функция print(), функция input(), изменения в работе с вводом/выводом (I/O), новый тип данных bytes, изменения в строках и их форматировании, и наконец, изменения во встроенном типе данных dict. Эта статья адресована программистам, уже знакомым с Python, которые хотели бы узнать об изменениях в новой версии, но не желают разбираться в длинном списке Предложений по Улучшению Python.

>>> Подробности

★★★

Проверено: Shaman007 ()

Re: Знакомство с Python 3: Часть 1. Что нового в новой версии

Python модернизируется и становится все более похожим на Basic, что не может не радовать.

Nxx ★★★★★ ()

Re: Знакомство с Python 3: Часть 1. Что нового в новой версии

новый принт - это безусловно регресс
:-)

kto_tama ★★★★★ ()

Re: Знакомство с Python 3: Часть 1. Что нового в новой версии

> новый принт - это безусловно регресс

Да ну прям регресс. Скобочки поставить не архисложно, зато его теперь можно юзать как обычную функцию: пихать во всякие лямбды, списки итд итп.

const86 ★★★★★ ()

Re: Знакомство с Python 3: Часть 1. Что нового в новой версии

>> Также теперь в строках допускаются не ASCII-идентификаторы

офигительно

kto_tama ★★★★★ ()

Re: Знакомство с Python 3: Часть 1. Что нового в новой версии

> Python модернизируется и становится все более похожим на Basic

Может, я уже забыл васик (видел последний раз лет 10 назад), но питон на него похож не больше, чем на любой другой язык.

const86 ★★★★★ ()

Re: Знакомство с Python 3: Часть 1. Что нового в новой версии

> Некоторые разработчики могут не пожелать проводить миграцию своих проектов

а придецца

kto_tama ★★★★★ ()

Re: Знакомство с Python 3: Часть 1. Что нового в новой версии

По-моему, все, кому это нужно, уже давно прочитали, что же там нового. Но статья неплохая. Жду вторую часть про abc, а то я так и не понял, зачем оно надо.

Laz ★★★★ ()

Re: Знакомство с Python 3: Часть 1. Что нового в новой версии

Хм. Очень интересный пример в статье:

>>>d = {1:"dead", 2:"parrot"}

>>>for values in d.items():
...     print(values) 
...
dead
parrot

Можно было б даже так:

>>>for values in sorted(d.items(), reverse=True):
...     print(values)

^_^

baverman ★★★ ()

Re: Знакомство с Python 3: Часть 1. Что нового в новой версии

я вот села изучать второго питона. бросить и перекинуться на третий? или третий еще не нужен так сильно как второй?

OperaSoftware ()

Re: Знакомство с Python 3: Часть 1. Что нового в новой версии

кто это там переводил?

настоящее деление. жуть. real всегда переовдилось как вещественное в данном контексте.

vasaka ★★★ ()

Re: Знакомство с Python 3: Часть 1. Что нового в новой версии

которые Ъ, дайте по ссылке пройти, а то я уже в очереди замучался стоять! :-p

sniper21 ★★★★★ ()

Re: Знакомство с Python 3: Часть 1. Что нового в новой версии

С 3.Х пока проблемы - большинство библиотек не портированы и когда портируют сказать сложно. Если изучать, то имеет смысл 2-ю ветку - на третью перейдешь потом. Тем более, что 2.6 очень совместим с 3-кой, а скоро выйдет и 2.7

cab ★★★★ ()

Re: Знакомство с Python 3: Часть 1. Что нового в новой версии

учи второй, потом почитай чейнжлог для третьего. изменения не судьбоносны, сильно "переучиваться" не прийдеться.
легаси полезно, т.к. есть вероятность работать над поддержкой и развитием более старых проэктов. но и от жизни отставать нельзя.

val-amart ★★★★★ ()

Re: Знакомство с Python 3: Часть 1. Что нового в новой версии

Особо ничего страшного для 2.х не видно, изменения есть, но не критичные.

stave ★★★★★ ()

Re: Знакомство с Python 3: Часть 1. Что нового в новой версии

> На какой из многочисленных Basic'ов?

* Деление с плавающей точкой - на любой начиная с начала 80-х

* Кейворды для True и False - на любой VB

* Метод для print вместо кейворда - на VB (а требование скобок - на VB.NET)

и т.д.

Python повторяет тот же путь, который прошел Basic, но с запозданием.

Nxx ★★★★★ ()

Re: Знакомство с Python 3: Часть 1. Что нового в новой версии

> кто это там переводил?

> настоящее деление. жуть. real всегда переовдилось как вещественное в данном контексте.

нмда - перевод - это что то с чем то ;)

real_maverick ★★★ ()

Re: Знакомство с Python 3: Часть 1. Что нового в новой версии

лучше бы статью про аннототаторы написали

real_maverick ★★★ ()

Re: Знакомство с Python 3: Часть 1. Что нового в новой версии

> Python повторяет тот же путь, который прошел Basic, но с запозданием.

Бред человека, никогда не имевшего дела с питоном. Такими гениальными сравнениями можно доказать родство бейсика и хаскеля, например.

mamay_cozak ()

Re: Знакомство с Python 3: Часть 1. Что нового в новой версии

>> На какой из многочисленных Basic'ов?

>* Деление с плавающей точкой - на любой начиная с начала 80-х

Запишем: поциент думает, что раздельные операторы для целого и плавающего деления есть только в Басике.

>* Кейворды для True и False - на любой VB

поциент так же думает, что ключевые слова True и False изобретены в Басике

>* Метод для print вместо кейворда - на VB

поциент вдобавок считает питоновский print методом.

> (а требование скобок - на VB.NET)

поциент откровенно бредит.

Диагноз: смерть мозга от ожирения; рекомендуемое лечение: внутричерепная липосакция и ударные дозы эвтаназепама.

tailgunner ★★★★★ ()

Re: Знакомство с Python 3: Часть 1. Что нового в новой версии

Тон статьи явно доставляющий.

"Так как print теперь является функцией, вам нужно будет привыкать писать print("hello") вместо print "hello". Я знаю, что это болезненно." (с)

Bioreactor ★★★★★ ()

Re: Знакомство с Python 3: Часть 1. Что нового в новой версии

Сложно это всё. Вот у меня сейчас такая штука установлена

Jython 2.2.1 on java1.6.0_13
Type "copyright", "credits" or "license" for more information.
>>> print "Принт!"
Принт!
>>>

И работает.

Bioreactor ★★★★★ ()

Re: Знакомство с Python 3: Часть 1. Что нового в новой версии

Статья-то неплохая, вот только перевод смешной. Почему IBM'овцы имя автора статьи-оригинала указывают, а переводчика -- нет?

Demon37 ★★★★ ()

Re: Знакомство с Python 3: Часть 1. Что нового в новой версии

> Почему IBM'овцы имя автора статьи-оригинала указывают, а переводчика -- нет?

Переводчики IBM, как правило, хотят оставаться анонимными. На всякий случай :)

a3 ()

Re: Знакомство с Python 3: Часть 1. Что нового в новой версии

Там то же самое

Jython 2.5b3 (Release_2_5beta3:6092, Mar 10 2009, 15:34:57)
[Java HotSpot(TM) Client VM (Sun Microsystems Inc.)] on java1.6.0_13
Type "help", "copyright", "credits" or "license" for more information.
>>> print "Hello"
Hello
>>> print ("Hello")
Hello
>>>

Это не "болезненно"(с), пользуясь бимерской терминологией.

Bioreactor ★★★★★ ()

Re: Знакомство с Python 3: Часть 1. Что нового в новой версии

> Сложно это всё. Вот у меня сейчас такая штука установлена Jython 2.2.1 on java1.6.0_13

Слушай, скажи пжалста, этот Jython может запускать любые программы на питоне поверх виртуальной машины Java? Или есть какие-то ограничения, несовместимости? Без ускорителей, типа Psyco и так далее питон мне мало интересен... Но вот если поверх жабы пускать - другое дело. Надо один очень сложные проект на питоне, не мой, ускорить малость...

I-Love-Microsoft ★★★★★ ()

Re: Знакомство с Python 3: Часть 1. Что нового в новой версии

Я не большой спец по питону. Можно скачать, попробовать.

Мне интересно, как джайфон джавовские классы в пайфон "заглатывает". А это он делает хорошо. По меньшей мере, для моих задач.

Bioreactor ★★★★★ ()

Re: Знакомство с Python 3: Часть 1. Что нового в новой версии

vytмне больше интерестно вот что. наткнулся тут http://www.python.org/dev/peps/pep-3100/#core-language на третий пункт:
- Add optional declarations for static typing [45] [10] [done]
и это в ПЕПе питон3000. как это понимать? я правильно понимаю, что это, по сути, опциональная статическая типизация, по крайней мере, для параметров функции?

val-amart ★★★★★ ()

Re: Знакомство с Python 3: Часть 1. Что нового в новой версии

Jython не совместим на уровне РЕР-ов. Например, при работе с СУБД. По причине того, что работает с джавой, в которой многое по другому. Но, много чего совместимо с СРython

cab ★★★★ ()

Re: Знакомство с Python 3: Часть 1. Что нового в новой версии

> и это в ПЕПе питон3000. как это понимать? я правильно понимаю, что это, по сути, опциональная статическая типизация, по крайней мере, для параметров функции?

Это если подходить к вопросу _очень_ формально. На самом деле, это чисто текстовые аннотации, на которые стандартный компилятор не обращает внимания.

tailgunner ★★★★★ ()

Re: Знакомство с Python 3: Часть 1. Что нового в новой версии

Судя по этой статье совершенно ничего интересного и полезного, что бы оправдывало поломку обратной совместимости, в языке не появилось. Знатоки Питона, поделитесь пожалуйста ссылками на полный перечень изменений.

Hjorn ()

Re: Знакомство с Python 3: Часть 1. Что нового в новой версии

Это не совсем статическая типизация, т.к. проверка, само собой, будет проводится во время выполнения, но зато проверять можно не только типы параметров, но и много чего ещё. http://code.activestate.com/recipes/572161/ Вот пример реализации.

Laz ★★★★ ()

Re: Знакомство с Python 3: Часть 1. Что нового в новой версии

>Статья-то неплохая, вот только перевод смешной. Почему IBM'овцы имя автора статьи-оригинала указывают, а переводчика -- нет?

Это видимо IBM_dW, либо, по крайней мере на том же движке

madcore ★★★★★ ()

Re: Знакомство с Python 3: Часть 1. Что нового в новой версии

>поделитесь пожалуйста ссылками на полный перечень изменений.

Вот этих двух линков должно хватить. http://docs.python.org/whatsnew/2.6.html http://docs.python.org/3.0/whatsnew/3.0.html

Laz ★★★★ ()

Re: Знакомство с Python 3: Часть 1. Что нового в новой версии

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

from pawt import swing
from java.lang import System
import java

def exit(e): System.exit(0)

f = swing.JFrame('Jython', visible=1)
b = swing.JButton('OK', actionPerformed=exit)
f.contentPane.add(b)
f.setSize(200, 100)

Не надо специального кода для actionPerformed.

Для баз данных - прямо можно обращаться к наработкам на Хибернейте.

Bioreactor ★★★★★ ()

Re: Знакомство с Python 3: Часть 1. Что нового в новой версии

Терпеть не могу, когда _требуют_ указывать в строке аргументы по номеру.

Для отладки бывает очень удобно писать print "%s %s" %(x,y), а потом если надо добавить еще один, то дописывать print "%s %s %s" %(x,y,z).

накой хрем мне каждый раз заниматься арифметикой первого класса, нумеруя переменные?

Да, я согласен, когда нумерация, удобна и полезна, и таких случаев много. Но не надо уж убивать старый добрый позиционный метод-то!

alexey_ ()

Re: Знакомство с Python 3: Часть 1. Что нового в новой версии

> Терпеть не могу, когда _требуют_ указывать в строке аргументы по номеру.

Читайте внимательнее.

"Этот стиль является недостаточно гибким, поэтому в Python 3 появился новый способ форматирования строк (хотя и оператор %, и модуль string.Template в версии 3 остались)."

Nikon_NLG ()

Re: Знакомство с Python 3: Часть 1. Что нового в новой версии

Ситуация, как и с аналогом на Це. Когда нужна скорость, то лучше чистая джава, чем жабозмей. Плюч приплываем к проблеме динамической типизации. А вот для всяких правил - жабозмей вполне ниче. Хотя лучше Rhino - он жрет всего 0,5 метра, в то время как жабозмей - 37.

cab ★★★★ ()

Re: Знакомство с Python 3: Часть 1. Что нового в новой версии

> Начать можно отсюда: http://docs.python.org/3.0/whatsnew/3.0.html

Спасибо. Поизучаю на досуге. Хотя беглый обзор ничего интересного не выявил. Одни только сглаживания шероховатостей не добавляют мотивации использовать 3.0. Насколько я понимаю, опциональную статическую типизацию не осилили. А ведь Гвидо вроде обещал ещё лет пять назад. Наверно проще язык с нуля создать, чем адаптировать Питон под статику.

Hjorn ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.