python language: basics - github pages wise...python language: basics the fossee group department of...

48
Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic Python 1 / 45

Upload: others

Post on 12-Sep-2020

18 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Python language: Basics

The FOSSEE Group

Department of Aerospace EngineeringIIT Bombay

Mumbai, India

FOSSEE Team (FOSSEE – IITB) Basic Python 1 / 45

Page 2: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Outline

1 Data typesNumbersBooleansStrings

2 Operators

3 Simple IO

FOSSEE Team (FOSSEE – IITB) Basic Python 2 / 45

Page 3: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Data types

Outline

1 Data typesNumbersBooleansStrings

2 Operators

3 Simple IO

FOSSEE Team (FOSSEE – IITB) Basic Python 3 / 45

Page 4: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Data types

Primitive Data types

Numbers: float, int, complexStringsBooleans

FOSSEE Team (FOSSEE – IITB) Basic Python 4 / 45

Page 5: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Data types Numbers

Outline

1 Data typesNumbersBooleansStrings

2 Operators

3 Simple IO

FOSSEE Team (FOSSEE – IITB) Basic Python 5 / 45

Page 6: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Data types Numbers

Numbers

intwhole number, no matter what the size!

In []: a = 13

In []: b = 99999999999999999999

float

In []: p = 3.141592

complex

In []: c = 3+4jIn []: c = complex(3, 4)

FOSSEE Team (FOSSEE – IITB) Basic Python 6 / 45

Page 7: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Data types Booleans

Outline

1 Data typesNumbersBooleansStrings

2 Operators

3 Simple IO

FOSSEE Team (FOSSEE – IITB) Basic Python 7 / 45

Page 8: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Data types Booleans

Booleans

In []: t = True

In []: F = not t

In []: F or tOut[]: True

In []: F and tOut[]: False

FOSSEE Team (FOSSEE – IITB) Basic Python 8 / 45

Page 9: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Data types Booleans

( ) for precedence

In []: a = FalseIn []: b = TrueIn []: c = True

In []: (a and b) or cOut[]: True

In []: a and (b or c)Out[]: False

FOSSEE Team (FOSSEE – IITB) Basic Python 9 / 45

Page 10: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Data types Strings

Outline

1 Data typesNumbersBooleansStrings

2 Operators

3 Simple IO

FOSSEE Team (FOSSEE – IITB) Basic Python 10 / 45

Page 11: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Data types Strings

Strings

Anything within “quotes” is a string!

’ This is a string ’" This too! """" This one too! """’’’ And one more! ’’’

FOSSEE Team (FOSSEE – IITB) Basic Python 11 / 45

Page 12: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Data types Strings

Strings

Why so many?

’ "Do or do not. No try." said Yoda.’" ’ is a mighty lonely quote."

The triple quoted ones can span multiple lines!

""" The quick brownfox jumped over

the lazy dingbat."""

FOSSEE Team (FOSSEE – IITB) Basic Python 12 / 45

Page 13: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Data types Strings

Strings

In []: w = "hello"

In []: print(w[0], w[1], w[-1])

In []: len(w)Out[]: 5

FOSSEE Team (FOSSEE – IITB) Basic Python 13 / 45

Page 14: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Data types Strings

Strings . . .

Strings are immutable

In []: w[0] = ’H’

--------------------------------------------TypeError Traceback (most recent call last)

<ipython console> in <module>()

TypeError: ’str’ object does notsupport item assignment

FOSSEE Team (FOSSEE – IITB) Basic Python 14 / 45

Page 15: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Data types Strings

Strings . . .

Strings are immutable

In []: w[0] = ’H’

--------------------------------------------TypeError Traceback (most recent call last)

<ipython console> in <module>()

TypeError: ’str’ object does notsupport item assignment

FOSSEE Team (FOSSEE – IITB) Basic Python 14 / 45

Page 16: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Data types Strings

Finding the type

In []: a = 1.0In []: type(a)Out[]: floatIn []: type(1)Out[]: int

In []: type(1+1j)Out[]: complex

In []: type(’hello’)Out[]: str

FOSSEE Team (FOSSEE – IITB) Basic Python 15 / 45

Page 17: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Operators

Outline

1 Data typesNumbersBooleansStrings

2 Operators

3 Simple IO

FOSSEE Team (FOSSEE – IITB) Basic Python 16 / 45

Page 18: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Operators

Arithmetic operators

In []: 1786 % 12Out[]: 10

In []: 45 % 2Out[]: 1

In []: 864675 % 10Out[]: 5

In []: 3124 * 126789Out[]: 396088836

In []: big = 1234567891234567890 ** 3

In []: verybig = big * big * big * bigFOSSEE Team (FOSSEE – IITB) Basic Python 17 / 45

Page 19: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Operators

Arithmetic operators

In []: 17 / 2Out[]: 8.5 # 8 on Python 2.x

In []: 17 / 2.0Out[]: 8.5

In []: 17.0 / 2Out[]: 8.5

In []: 17.0 / 8.5Out[]: 2.0

FOSSEE Team (FOSSEE – IITB) Basic Python 18 / 45

Page 20: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Operators

Arithmetic operators: floor division

In []: 17 // 2Out[]: 8

In []: 17 // 2.0Out[]: 8.0

In []: 17.0 // 2.0Out[]: 8.0

In []: 17.0 // 8.6Out[]: 1.0

FOSSEE Team (FOSSEE – IITB) Basic Python 19 / 45

Page 21: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Operators

Arithmetic operators

In []: c = 3+4j

In []: abs(c)Out[]: 5.0

In []: c.imagOut[]: 4.0In []: c.realOut[]: 3.0

In []: c.conjugate()(3-4j)

FOSSEE Team (FOSSEE – IITB) Basic Python 20 / 45

Page 22: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Operators

Arithmetic operators

In []: a = 7546

In []: a += 1In []: aOut[]: 7547

In []: a -= 5In []: a

In []: a *= 2

In []: a /= 5FOSSEE Team (FOSSEE – IITB) Basic Python 21 / 45

Page 23: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Operators

String operations

In []: s = ’Hello’

In []: p = ’World’

In []: s + pOut[]: ’HelloWorld’

In []: s * 4Out[]: ’HelloHelloHelloHello’

FOSSEE Team (FOSSEE – IITB) Basic Python 22 / 45

Page 24: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Operators

String operations . . .

In []: s * s

--------------------------------------------TypeError Traceback (most recent call last)

<ipython console> in <module>()

TypeError: can‘t multiply sequence bynon-int of type ‘str‘

FOSSEE Team (FOSSEE – IITB) Basic Python 23 / 45

Page 25: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Operators

String operations . . .

In []: s * s

--------------------------------------------TypeError Traceback (most recent call last)

<ipython console> in <module>()

TypeError: can‘t multiply sequence bynon-int of type ‘str‘

FOSSEE Team (FOSSEE – IITB) Basic Python 23 / 45

Page 26: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Operators

String methods

In []: a = ’Hello World’In []: a.startswith(’Hell’)Out[]: True

In []: a.endswith(’ld’)Out[]: True

In []: a.upper()Out[]: ’HELLO WORLD’

In []: a.lower()Out[]: ’hello world’

FOSSEE Team (FOSSEE – IITB) Basic Python 24 / 45

Page 27: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Operators

String methods

In []: a = ’ Hello World ’In []: b = a.strip()In []: bOut[]: ’Hello World’

In []: b.index(’ll’)Out[]: 2In []: b.replace(’Hello’, ’Goodbye’)Out[]: ’Goodbye World’

FOSSEE Team (FOSSEE – IITB) Basic Python 25 / 45

Page 28: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Operators

Strings: split & join

In []: chars = ’a b c’In []: chars.split()Out[]: [’a’, ’b’, ’c’]In []: ’ ’.join([’a’, ’b’, ’c’])Out[]: ’a b c’

In []: alpha = ’, ’.join([’a’, ’b’, ’c’])In []: alphaOut[]: ’a, b, c’In []: alpha.split(’, ’)Out[]: [’a’, ’b’, ’c’]

FOSSEE Team (FOSSEE – IITB) Basic Python 26 / 45

Page 29: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Operators

String formatting

In []: x, y = 1, 1.234

In []: ’x is %s, y is %s’ %(x, y)Out[]: ’x is 1, y is 1.234’

%d, %f etc. available

http://docs.python.org/library/stdtypes.html

FOSSEE Team (FOSSEE – IITB) Basic Python 27 / 45

Page 30: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Operators

Relational and logical operators

In []: p, z, n = 1, 0, -1In []: p == nOut[]: False

In []: p >= nOut[]: True

In []: n < z < pOut[]: True

In []: p + n != zOut[]: False

FOSSEE Team (FOSSEE – IITB) Basic Python 28 / 45

Page 31: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Operators

The assert statement

You will see it in tests and your exam!

In []: assert p != nIn []: assert p == n------------------------------------------------------AssertionError Traceback (most recent call last)----> 1 assert p == n

AssertionError:

No error if condition is TrueRaises error if False

FOSSEE Team (FOSSEE – IITB) Basic Python 29 / 45

Page 32: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Operators

assert examples

In []: assert p == n, "Oops condition failed"------------------------------------------------------AssertionError Traceback (most recent call last)----> 1 assert p == n

AssertionError: Oops condition failed

Can supply an optional message

FOSSEE Team (FOSSEE – IITB) Basic Python 30 / 45

Page 33: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Operators

String containership

In []: fruits = ’apple, banana, pear’In []: ’apple’ in fruitsOut[]: True

In []: ’potato’ in fruitsOut[]: False

Use tab complete to list other string methodsUse ? to find more information

FOSSEE Team (FOSSEE – IITB) Basic Python 31 / 45

Page 34: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Operators

Built-ins

In []: int(17 / 2.0)Out[]: 8

In []: float(17 // 2)Out[]: 8.0

In []: str(17 / 2.0)Out[]: ’8.5’

In []: round( 7.5 )Out[]: 8.0

FOSSEE Team (FOSSEE – IITB) Basic Python 32 / 45

Page 35: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Operators

Odds and ends

Case sensitiveDynamically typed ⇒ need not specify a type

In []: a = 1In []: a = 1.1In []: a = "Now I am a string!"

Comments:

In []: a = 1 # In-line commentsIn []: # A comment line.In []: a = "# Not a comment!"

FOSSEE Team (FOSSEE – IITB) Basic Python 33 / 45

Page 36: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Operators

Exercise 1

Given a 2 digit integer x, find the digits of the number.

For example, let us say x = 38

Find a way to get a = 3 and b = 8 using x?

FOSSEE Team (FOSSEE – IITB) Basic Python 34 / 45

Page 37: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Operators

Possible Solution

In []: a = x//10In []: b = x%10In []: a*10 + b == x

FOSSEE Team (FOSSEE – IITB) Basic Python 35 / 45

Page 38: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Operators

Another Solution

In []: sx = str(x)In []: a = int(sx[0])In []: b = int(sx[1])In []: a*10 + b == x

FOSSEE Team (FOSSEE – IITB) Basic Python 36 / 45

Page 39: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Operators

Exercise 2

Given an arbitrary integer, count the number of digits ithas.

FOSSEE Team (FOSSEE – IITB) Basic Python 37 / 45

Page 40: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Operators

Possible solution

In []: x = 12345678In []: len(str(x))

Sneaky solution!

FOSSEE Team (FOSSEE – IITB) Basic Python 38 / 45

Page 41: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Simple IO

Outline

1 Data typesNumbersBooleansStrings

2 Operators

3 Simple IO

FOSSEE Team (FOSSEE – IITB) Basic Python 39 / 45

Page 42: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Simple IO

Simple IO: Console Input

input() waits for user input.

In []: a = input()5

In []: aOut[]: ’5’ # Python 3.x!

In []: a = input(’Enter a value: ’)Enter a value: 5

Prompt string is optional.

input produces strings (Python 3.x)

int() converts string to int.

FOSSEE Team (FOSSEE – IITB) Basic Python 40 / 45

Page 43: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Simple IO

Simple IO: Python 2.x vs 3.x

print is familiar to usChanged from Python 2.x to 3.xWe use the Python 3 convention here

If on Python 2.x do this:In []: from __future__ import print_function

Safe to use in Python 3.x also

FOSSEE Team (FOSSEE – IITB) Basic Python 41 / 45

Page 44: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Simple IO

Simple IO: Console output

Put the following code snippet in a file hello1.py

from __future__ import print_functionprint("Hello", "World")print("Goodbye", "World")

Now run it like so:

In []: %run hello1.pyHello WorldGoodbye World

FOSSEE Team (FOSSEE – IITB) Basic Python 42 / 45

Page 45: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Simple IO

Simple IO: Console output . . .Put the following code snippet in a file hello2.py

from __future__ import print_functionprint("Hello", end=’ ’)print("World")

Now run it like so:

In []: %run hello2.pyHello World

Mini ExerciseRead docs for printRemember: use print?

FOSSEE Team (FOSSEE – IITB) Basic Python 43 / 45

Page 46: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Simple IO

Simple IO: Console output . . .Put the following code snippet in a file hello2.py

from __future__ import print_functionprint("Hello", end=’ ’)print("World")

Now run it like so:

In []: %run hello2.pyHello World

Mini ExerciseRead docs for printRemember: use print?

FOSSEE Team (FOSSEE – IITB) Basic Python 43 / 45

Page 47: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Simple IO

What did we learn?

Data types: int, float, complex, boolean, stringUse type builtin function to find the typeOperators: +, -, *, /, %, **, +=, -=, *=, /=, >, <, <=,>=, ==, !=, a < b < cSimple IO: input and print

FOSSEE Team (FOSSEE – IITB) Basic Python 44 / 45

Page 48: Python language: Basics - GitHub Pages Wise...Python language: Basics The FOSSEE Group Department of Aerospace Engineering IIT Bombay Mumbai, India FOSSEE Team (FOSSEE – IITB) Basic

Simple IO

Homework

Explore the various string methodsRead the documentation for the string methodsExplore the different builtins seen so far also

FOSSEE Team (FOSSEE – IITB) Basic Python 45 / 45