python - york university · 2019-09-30 · python intro •most in-demand ... supports multiple...

15
CSE 4482 Network Security Instructor: N. Vlajic , Fall 2019 Python

Upload: others

Post on 06-Jun-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Python - York University · 2019-09-30 · Python Intro •Most In-Demand ... supports multiple inheritance, unlike Java. If you’re any familiar with languages like C++, you must

CSE 4482Network Security

Instructor: N. Vlajic, Fall 2019

Python

Page 2: Python - York University · 2019-09-30 · Python Intro •Most In-Demand ... supports multiple inheritance, unlike Java. If you’re any familiar with languages like C++, you must

Python Intro• Most In-Demand Programming Languages 2019

https://codingnomads.co/blog/business/why-learn-java/http://www.globenewswire.com/NewsRoom/AttachmentNg/5d020743-2bc8-413e-a0cb-794f5e1f90bb/en

Page 3: Python - York University · 2019-09-30 · Python Intro •Most In-Demand ... supports multiple inheritance, unlike Java. If you’re any familiar with languages like C++, you must

Python Intro (cont.)

• Most Popular Programming Languages 2019The PYPL PopularitY of Programming Language Index is created by analyzing how often language tutorials are searched on Google.

http://pypl.github.io/PYPL.html

Page 4: Python - York University · 2019-09-30 · Python Intro •Most In-Demand ... supports multiple inheritance, unlike Java. If you’re any familiar with languages like C++, you must

Python Intro (cont.)

Page 5: Python - York University · 2019-09-30 · Python Intro •Most In-Demand ... supports multiple inheritance, unlike Java. If you’re any familiar with languages like C++, you must

Python Intro (cont.)

https://data-flair.training/blogs/python-tutorial/

Python supports both procedure-oriented and object-oriented programming which is one of the key python features. It also supports multiple inheritance, unlike Java.

If you’re any familiar with languages like C++, you must first compile it, and then run it. But in Python, there is no need to compile it. Internally, its source code is converted into an immediate form called bytecode.By interpreted, we mean the source code is executed line by line, and not all at once. Because of this, it is easier to debug your code. Also, interpreting makes it just slightly slower than C++, but that does not matter compared to the benefits it has to offer.

You can take one code and run it on any machine, there is no need to write different code for different machines.

Page 6: Python - York University · 2019-09-30 · Python Intro •Most In-Demand ... supports multiple inheritance, unlike Java. If you’re any familiar with languages like C++, you must

• What can be done with Python??

Python Intro (cont.)

https://data-flair.training/blogs/python-tutorial/

Page 7: Python - York University · 2019-09-30 · Python Intro •Most In-Demand ... supports multiple inheritance, unlike Java. If you’re any familiar with languages like C++, you must

Python Intro (cont.)

Page 8: Python - York University · 2019-09-30 · Python Intro •Most In-Demand ... supports multiple inheritance, unlike Java. If you’re any familiar with languages like C++, you must

Python Intro (cont.)

https://www.slideshare.net/p3infotech_solutions/python-programming-essentials-m2-introduction-to-python

Page 9: Python - York University · 2019-09-30 · Python Intro •Most In-Demand ... supports multiple inheritance, unlike Java. If you’re any familiar with languages like C++, you must

Python Intro (cont.)

https://www.slideshare.net/p3infotech_solutions/python-programming-essentials-m2-introduction-to-python

Page 10: Python - York University · 2019-09-30 · Python Intro •Most In-Demand ... supports multiple inheritance, unlike Java. If you’re any familiar with languages like C++, you must

Python (cont.)

• Python = a preferred languageof cyber security professionalsincluding hackers …

EASY TO LEARN

EASY DEBUGGING→ ‘compact’ language, uses minimum code, easy to spot errors

EXTENSIVE SUPPORT LIBRARIES→ comes with many useful libraries dealing with protocols, Web,

cryptography, … => improved programmer’s productivity

OPEN SOURCE→ available at zero cost

Page 11: Python - York University · 2019-09-30 · Python Intro •Most In-Demand ... supports multiple inheritance, unlike Java. If you’re any familiar with languages like C++, you must

Python (cont.)

• Python uses in cyber security industry …

→ Exploit Development→ Networking→ Debugging→ Encryption / Decryption→ Reverse Engineering→ Web→ Forensics→ Malware Analysis

Page 12: Python - York University · 2019-09-30 · Python Intro •Most In-Demand ... supports multiple inheritance, unlike Java. If you’re any familiar with languages like C++, you must

Python Intro (cont.)

• Python History developed in 1989 by Guido van Rossum (Netherlands) named after BBC TV show Monty Python’s Flying Circus Python 1.0 (1994) - full functional programming features Python 2.0 (2000) - garbage collection, pure OO, …

Python 3.0 (2008) - a whole bunch of changes, includingbetter support for Unicode

“I chose Python as a working title for the project, being in a slightly

irreverent mood (and a big fan of Monty Python's Flying Circus)."

→ will NOT be maintained beyond 2020

→ NOT backward compatible with Python 2→ see: https://docs.python.org/3/whatsnew/3.0.html

Page 13: Python - York University · 2019-09-30 · Python Intro •Most In-Demand ... supports multiple inheritance, unlike Java. If you’re any familiar with languages like C++, you must

Python Intro (cont.)

• The Zen of Python (2004) guiding principles for Python’s design expressed as 20

aphorisms (19 of which have been written down) by Tom Peters

Page 14: Python - York University · 2019-09-30 · Python Intro •Most In-Demand ... supports multiple inheritance, unlike Java. If you’re any familiar with languages like C++, you must

Basics of Python Language• Installing Python on Your Machine

go to https://python.org/download/ slightly different procedure for Linux, Mac, Windows …

Page 15: Python - York University · 2019-09-30 · Python Intro •Most In-Demand ... supports multiple inheritance, unlike Java. If you’re any familiar with languages like C++, you must

Basics of Python Language (cont.)

• Running Python on Your Machine can work in interactive mode

→ invoke Python interpreter and interact with it directly → simply type ‘py’ in terminal (in Windows 10)

→ lines starting with >>> prompt is where you should type inyour commands; lines after is where results are shown

→ very convenient for testing Python commands→ however, if you exit terminal, all commands are gone …