36
Play with Python Orientation Session ملحوظة: كل الكتب والمراجع و البرامج موجودة على أجهزة معاملكلية الwww.python.org/

Play with python lecture 1

Embed Size (px)

Citation preview

Page 1: Play with python lecture 1

Play with Python

Orientation Session الكلية معامل أجهزة على موجودة البرامج و والمراجع الكتب كل :ملحوظة

www.python.org/

Page 2: Play with python lecture 1

Agenda

• Why?

• Interpreted vs Compiled languages

• Dynamically typed vs Static typed languages

• A Quick Tour of Python

• Course Structure

• Environment and Software Guido van

Rossum

Page 3: Play with python lecture 1

Why?

Easy, Productive, Extensible

Youtube: :"Python is fast enough for our site and allows us to

produce maintainable features in record times, with a minimum of developers"

"NASA code policy is to implement everything in Python, and leave performance critical pieces of code to C++"

Peter Norvig (AI Computer Scientist, Director of Search Quality at

Google, recommends Python for his AI Class): "Today dozens of Google engineers use Python, and we're looking for more people with skills in this language."

Page 4: Play with python lecture 1

Why?

Easy, Productive, Extensible

EVE Online : "Python enabled us to create EVE Online, a massive multiplayer game, in record time. The EVE Online server cluster runs over 50,000 simultaneous players in a shared space simulation, most of which is created in Python"

stackoverflow.com user: “If you are a programmer charging by the hour,

you SHOULD NOT use Python, because it ensures you won't be able to charge your customer much”

Mark Lutz (Python Books Author): "Today, I can safely say that Python has changed my life. I have moved to a different continent."

Page 5: Play with python lecture 1

Why?

Who uses Python ?:

Watch this Google I/O video clip, Wesley

Chun listing the uses of python and what

companies use Python. (from 22:35 to 29:10 )

Page 6: Play with python lecture 1

Why?

Who uses Python ?:

Google

NASA

Yahoo

Youtube

Linux (RedHat, Ubuntu, ...)

Lots of researchers

EVE online (Thousands of online players)

MIT (Programming Intro. Course)

etc...

Watch this Google I/O video clip, Wesley

Chun listing the uses of python and what

companies use Python. (from 22:35 to 29:10 )

Page 7: Play with python lecture 1

Why?

Who uses Python ?:

Google

NASA

Yahoo

Youtube

Linux (RedHat, Ubuntu, ...)

Lots of researchers

EVE online (Thousands of online players)

MIT (Programming Intro. Course)

etc...

Watch this Google I/O video clip, Wesley

Chun listing the uses of python and what

companies use Python. (from 22:35 to 29:10 )

Awards !

Page 8: Play with python lecture 1

Awards ! Why?

Who uses Python ?:

Google

NASA

Yahoo

Youtube

Linux (RedHat, Ubuntu, ...)

Lots of researchers

EVE online (Thousands of online players)

MIT (Programming Intro. Course)

etc...

Watch this Google I/O video clip, Wesley

Chun listing the uses of python and what

companies use Python. (from 22:35 to 29:10 )

is Open Source, free,

even for commercial use !

Page 9: Play with python lecture 1

Python Software Foundation (PSF), the organization that is devoted to advance

python, has these prestigious members

(and many other companies and organizations ....)

Why?

Page 10: Play with python lecture 1

Why?

Python is mainly used in:

• Rapid Prototyping and Experimenting

• Scripting

• Text Processing

• Web applications

• Game Development

• System Administrations

• Fun Stuff that need quick experiments:

o like robotics or any scientific math

• Teaching kids programming :)

Page 11: Play with python lecture 1

Interpreted vs Compiled languages

• Python, Javascript and many other languages are

"Interpreted" languages

o which means there is no compilation phase needed to run the

program

o instead an interpreter interprets your code directly and

executes it

o this means that you don't have to wait for long compilation

times in big projects

• But the down side that is the language is slower

than compiled ones like C/C++/C#/Java

o Often, productivity and development time is much important

than language speed

o in some cases you may need special extra speed, here you

can implement the time critical pieces in a C++ for example

Page 12: Play with python lecture 1

Interpreted vs Compiled languages

• The python interpreter (Demo)

o one of the great advantages of any interpreted language, the

interpreter allows you to instantly execute any piece of code

you need to understand or test

Page 13: Play with python lecture 1

• This allows you to do quick experiments and prototypes for your ideas like

simple programs or even scientific functions (like matlab, maple, octane ...

but with much stronger and easier OOP language)

Interpreted vs Compiled languages

Page 14: Play with python lecture 1

• This allows you to do quick experiments and prototypes for your ideas like

simple programs or even scientific functions (like matlab, maple, octane ...

but with much stronger and easier OOP language)

Interpreted vs Compiled languages

Page 15: Play with python lecture 1

This Makes Python Fun !

BUT, Python is not a replacement to other languages:

A common error some people do, is they tend to put

languages in struggle as if there must be only 1

language to learn

THIS is WRONG!

Python/Javascript/Lisp are great, C++/C#/Java are great,

every language has its role in this world.

You can be a Pythonista and a C++er in the same time

And you can always mix them together to fit your needs

Page 16: Play with python lecture 1

Dynamically typed vs Static typed

languages

• In Java, C#, C/C++, types are explicit:

• int n = 7;

• String s = “Hi”;

• var n = 3;

• in Python, Ruby, Javascript, types are dynamic:

• n = 7

• s = “Hi”

• n = "hello"

No Static Types

Page 17: Play with python lecture 1

A Quick Tour

A Sample Program:

def greetings(name):

if name == "": #This is a comment

msg = "Hello Guest. Welcome!"

else:

msg = "Hello " + name + ". Welcome!"

return msg

====================================

>>> greetings("FCIS")

‘Hello FCIS. Welcome!’

>>> greetings("")

‘Hello FCIS. Welcome!’

Page 18: Play with python lecture 1

A Quick Tour

A Sample Program:

def greetings(name):

if name == "": #This is a comment

msg = "Hello Guest. Welcome!"

else:

msg = "Hello " + name + ". Welcome!"

return msg

====================================

>>> greetings("FCIS")

‘Hello FCIS. Welcome!’

>>> greetings("")

‘Hello FCIS. Welcome!’

Indentation

Function

Variable

Page 19: Play with python lecture 1
Page 20: Play with python lecture 1
Page 21: Play with python lecture 1
Page 22: Play with python lecture 1
Page 23: Play with python lecture 1
Page 24: Play with python lecture 1
Page 25: Play with python lecture 1
Page 26: Play with python lecture 1
Page 27: Play with python lecture 1
Page 28: Play with python lecture 1
Page 29: Play with python lecture 1
Page 30: Play with python lecture 1
Page 31: Play with python lecture 1

Other Python Aspects

• Generators

• Map, Zip

• Lambdas

• List comprehensions

• Closures

• ...

Page 32: Play with python lecture 1

Course Structure • Lecture 1, 2:

• Python Language, Object Oriented

• Lecture 1: Strings, Numbers, Loops, Functions, List, Tuple,

Dictionary

• Lecture 2: , importing packages, Sets, Sorting, Classes, Object

Oriented, Constructors, Destructors, isinstance

• Lecture 3, 4:

• Exceptions

• More Language Features (Map, Zip, Lambdas, Generators)

• Saving and restoring from files

• GUI with PyQt4

• Diverse uses of Python: scientific computing with python,

graphs, visualizations

• Lecture 5, 6:

• Web with Django

• Game with PyGame

Page 33: Play with python lecture 1

Environment and Software • Python language (The Python language)

• Version 2.7.3 http://www.python.org/download/

• Aptana Studio 3 (our main IDE) :

• http://www.aptana.com/products/studio3/download (needs java)

• Pythonxy (Scientific Computing):

• http://code.google.com/p/pythonxy/

• PyGame (Games):

• http://www.pygame.org/download.shtml

• Django (Web):

• https://www.djangoproject.com/download/

• All Free !

(Note: PySide is deleted, we don't' need it, we will work with PyQt4 which is

already included in Pythonxy)

Note: If you want to use Python in visual studio 2010 and don't want to download big downloads like Aptana, you can use Microsoft Official "Python Tools for visual studio" at http://pytools.codeplex.com/, only 4 MB beside python, and you have an excellent full IDE for python.

Page 34: Play with python lecture 1

References ( األهمية حسب الترتيب )

This Presentation References:

• The Official The Python Tutorial: http://docs.python.org/tutorial/

• Official Python Library Reference: http://docs.python.org/library/

• Official Python Language Reference: http://docs.python.org/reference/

• Pyschools Python Intro: http://www.pyschools.com/downloads/A_Quick_Python_Tour.pdf

Page 35: Play with python lecture 1

References ( األهمية حسب الترتيب ) General References for the Course:

• Beginners:

o Concentrated short introductions for the language (directly only to the language and

examples, no other talk about anything else except the language, any one of the following is

good):

The Official The Python Tutorial (link in previous slide)

A byte of Python, for Python 2.x (A Quick Book): http://www.swaroopch.org/notes/Python

PySchools Python Quick Reference Guide (along with online interactive excercises to solve,

very useful): http://doc.pyschools.com/html/index.html, Exercises: http://www.pyschools.com/quiz/view_summary

o Online Interactive Tutorials (interactive exercising during reading, very enjoyable)

University of Waterloo online Interactive Python Tutorial: http://cscircles.cemc.uwaterloo.ca/using-

this-website/

Online Python Tutor (just excercises, I but it here shows automatic code tracing while exercising): http://people.csail.mit.edu/pgbovine/python/tutor.html#mode=edit

learnpython.org's interactive Python tutorial: http://www.learnpython.org/

o Beginners Books (not only language and examples, but everything you need to know about

Python) (*):

Python for Dummies (2006) (Fast short examples like "A byte of Python")

Core Python Programming (2nd Edition) , Chun (2006) (longer examples and explanation)

Learning Python, Mark Lutz (4th Edition) (For the very detailed explanation of everything about

Python, very good if you have time, or want to parachute on specific thing to understand deeply)

(*) https://docs.google.com/file/d/0B2Jt9cH9yJtraE1iOGR0X19zNFk/edit

Page 36: Play with python lecture 1

THANK YOU