Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Введение в Python

No description
by

Nikolay Telepenin

on 28 November 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Введение в Python

Введение в Python
Телепенин Николай
twitter: @_prefer
Пирогов Алексей
twitter: @alex_pir
Барс Груп
Python
WTF?
Или
Python 3
Python - Высокоуровневый язык программирования
общего назначения с акцентом на производительность разработчика и читаемость кода
Комик-группа из Великобритании, состоявшая из шести человек
Сейчас работает в компании Dropbox. Половину своего времени он посвящает дальнейшей разработке Python.
Гвидо Ван Россум
PEP
Красивое лучше, чем уродливое.
Явное лучше, чем неявное.
Простое лучше, чем сложное.
Сложное лучше, чем запутанное.
Плоское лучше, чем вложенное.
Разреженное лучше, чем плотное.
Читаемость имеет значение.
Особые случаи не настолько особые, чтобы нарушать правила.
При этом практичность важнее безупречности.
Ошибки никогда не должны замалчиваться.
Если не замалчиваются явно.
Встретив двусмысленность, отбрось искушение угадать.
Должен существовать один — и, желательно, только один — очевидный способ сделать это.
Хотя он поначалу может быть и не очевиден, если вы не голландец[6].
Сейчас лучше, чем никогда.
Хотя никогда зачастую лучше, чем прямо сейчас.
Если реализацию сложно объяснить — идея плоха.
Если реализацию легко объяснить — идея, возможно, хороша.
Пространства имён — отличная штука! Будем делать их побольше!
Влияние других языков
ABC (англ.) — отступы для группировки операторов, высокоуровневые структуры данных;
Modula-3 — пакеты, модули;
Си, C++ — некоторые синтаксические конструкции ;
Smalltalk — объектно-ориентированное программирование;
Lisp — отдельные черты функционального программирования (lambda, map, reduce, filter и другие);
Fortran — срезы массивов, комплексная арифметика;
Haskell — списочные выражения;
Java — модули logging, unittest, threading (часть возможностей оригинального модуля не реализована), xml.sax стандартной библиотеки, совместное использование finally и except при обработке исключений, использование @ для декораторов;
Icon — генераторы.
Кроссплатформенность
Jython
IronPython
PyS 60
Maemo
Android
iPhone?
Windows
Linux
MacOs
Bsd systems
Solaris
Портируемость
Строгая динамическая типизация
Автоматическое управление памятью
Полная интроспекция
Механизм обработки исключений
Поддержка многопоточных вычислений
Удобные высокоуровневые структуры данных
Основные черты
Организация кода
Пакеты
Модули
Классы
Функции
Интерпретируемость
Source
print 'Привет, медвед'
Байт-код
1001
1100
1110
0010
PVM
#include <stdio.h>
int main()
{
printf("Hello, world!\n");
return 0;
}
Begin
WriteLn('Hello, world!');
End.
C:
Pascal:
class HelloWorld {
public static void main (String args []) {
System. out. println ("Hello World");
}
}
Java:
PHP:
<?php
Print "Hello, World!";
?>
Python
print 'Hello world'
Java vs Python
package MyProject

import java.io.BufferedInputStream;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

/**
* This program reads a text file line by line and print to the console. It uses
* FileOutputStream to read the file.
*
*/
public class FileInput {

public static void main(String[] args) {

File file = new File("C:\\MyFile.txt");
FileInputStream fis = null;
BufferedInputStream bis = null;
DataInputStream dis = null;

try {
fis = new FileInputStream(file);

// Here BufferedInputStream is added for fast reading.
bis = new BufferedInputStream(fis);
dis = new DataInputStream(bis);

// dis.available() returns 0 if the file does not have more lines.
while (dis.available() != 0) {

// this statement reads the line from the file and print it to
// the console.
System.out.println(dis.readLine());
}

// dispose all the resources after using them.
fis.close();
bis.close();
dis.close();

} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
open("HelloMP1.py").read()
Производительность
Cartola FC
Blender, Maya
OpenOffice
Zope/Plone
Django
BitTorrent
MoinMoin
Gimp
Gnumeric
Anaconda
Trac
Телепенин Николай
@_prefer
telepenin@bars-open.ru
Увеличена производительность
Нет обратной совместимости (py2to3)
print 'Hello' > print('Hello')
raw_input() -> input()
Все строки являются юникодными
Новый метод в классе str - format
Исключены iterkeys, iteritems, itervalues из dict
Python 3.xx vs Python 2.xx
Кто выбирает Python?
Спасибо за внимание
import this
Визуализированная история Python
http://vimeo.com/1093745
Рейтинг языков программирования
http://dou.ua/lenta/articles/language-rating-jan-2013/
от января 2013
Если бы вы начинали сейчас коммерческий проект, и у вас была бы свобода выбора...
www.tiobe.com
Номинация "Язык года"
Разработки на Python
Индекс удоволетворенности
Full transcript