0% found this document useful (0 votes)
4 views100 pages

justenoughpython_221218_175001

The document provides an introduction to Python programming, covering basic syntax, data types, control flow, operators, and functions. It emphasizes the importance of indentation, data type checking, and the use of various data structures such as lists, tuples, sets, and dictionaries. Additionally, it outlines control flow statements and demonstrates how to define and use functions in Python.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views100 pages

justenoughpython_221218_175001

The document provides an introduction to Python programming, covering basic syntax, data types, control flow, operators, and functions. It emphasizes the importance of indentation, data type checking, and the use of various data structures such as lists, tuples, sets, and dictionaries. Additionally, it outlines control flow statements and demonstrates how to define and use functions in Python.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 100

PYTHON PROGRAMMING

CUHK-BME
JUST ENOUGH PYTHON

DR. ALEX NG

alex@gorex.com.hk
How to write your Python code?

1.Jupyter Notebook
2. Script
3. Visual Studio Code
4. PyCharm
5. CoLab
PYTHON BASIC SYNTAX

3
#!/usr/bin/python3
Comments start with #
# first.py
Empty lines are ignored
print ("Hello World! 我是陳大文")
Prints out a line of text
Non-empty line should start at column 1, except in a suite

4
Indentation
• Indenting
– ; is a delimiter not a terminator in Python
– Python statement is terminated by return
– Indenting is to identify a suite
• Python does not use { } to enclose multi-line
statements
• Indentation in the same suite must be exactly
the same
–if and else are two different suites

5
Even though you may use different indentation for a
cluster of suites, you are highly recommended to use
the SAME indentation for the whole cluster.

6
Beware of nested if indentations

7
One more
space here

8
About indentation
• Use SPACE instead of TAB
– As you cannot tell the difference between 8
spaces and tab
– Very difficult to debug as you do not see anything
wrong visually
– Some Python editors will auto-convert tab to
spaces
• Convention is 4 spaces
• Use an editor that will do auto-indentation
9
There are various data types in Python. Some
of the important types are listed below:

1. Numbers Data Type


2. List Data Type
3. Tuple Data Type
4. Strings Data Type
5. Set Data Type
6. Dictionary Data Type

10
Data type checking

Output

11
Type conversion
• Integer, Float, Complex computation will do
auto type conversion
• You may explicitly change type by the
functions
int(), float(), complex(), str()

12
1.Numbers Data Type
1.Numbers Data Type 2.List Data Type
3.Tuple Data Type
4.Strings Data Type
Integer, floating-point numbers, and complex 5.Set Data Type
numbers under the category of Python numbers. 6.Dictionary Data Type

Output

13
1.Numbers Data Type
2.List Data Type 2.List Data Type
3.Tuple Data Type
4.Strings Data Type
5.Set Data Type
List data types hold different types 6.Dictionary Data Type
of data. it does not need to be of the
same type. The items stored in the
list are separated with a comma (,)
and enclosed within square brackets
[]

Output

14
List methods

15
16
17
18
19
Other useful operations

20
1.Numbers Data Type
3.Tuple Data Type 2.List Data Type
3.Tuple Data Type
4.Strings Data Type
A tuples data type is alike to list data type. only 5.Set Data Type
6.Dictionary Data Type
one difference, once tuples created can not be
changed/modify.
The items of the tuple are separated with a
comma (,) and enclosed in parentheses ().

Output

21
22
23
24
We cannot change the elements in a tuple. It means that
we cannot delete or remove items from a tuple.

Deleting a tuple entirely, however, is possible using the


keyword del

25
Tuple methods

26
1.Numbers Data Type
4.String Data Type 2.List Data Type
3.Tuple Data Type
4.Strings Data Type
A string is a sequence of characters in 5.Set Data Type
6.Dictionary Data Type
Python. In python, Strings are either
enclosed with single quotes, double,
and triple quotes.

Output

27
String Operators
• + on string is concatenation
• You may do * on string
( “ab” * 3 -> “ababab” )
• % on string is the format operator
– (to be covered)
• To remove leading spaces from a string, use
the strip function

Note that Python using the


Object Orientated notation using
the DOT to invoke a function 28
String methods
String Method Description
capitalize() Returns a version of the original string in which only the
first letter is capitalized. Converts any other capital letters
to lowercase.

center( width ) Returns a copy of the original string centered (using


spaces) in a string of width characters.
count( substring[, start[, end]] ) Returns the number of times substring occurs in the
original string. If argument start is specified, searching
begins at that index. If argument end is indicated,
searching begins at start and stops at end.

encode( [encoding[, errors] ) Returns an encoded string. Python’s default encoding is


normally ASCII. Argument errors defines the type of
error handling used; by default, errors is "strict".

endswith( substring[, start[, end]] ) Returns 1 if the string ends with substring. Returns 0
otherwise. If argument start is specified, searching begins
at that index. If argument end is specified, the method
searches through the slice start:end.

expandtabs( [tabsize] ) Returns a new string in which all tabs are replaced by
spaces. Optional argument tabsize specifies the number of
space characters that replace a tab character. The default
value is 8.

29
More strings methods
find( substring[, start[, end]] ) Returns the lowest index at which substring occurs in the
string; returns –1 if the string does not contain substring.
If argument start is specified, searching begins at that
index. If argument end is specified, the method searches
through the slice start:end.

index( substring[, start[, end]] ) Performs the same operation as find, but raises a
ValueError exception if the string does not contain
substring.
isalnum() Returns 1 if the string contains only alphanumeric characters
(i.e., numbers and letters); otherwise, returns 0.

isalpha() Returns 1 if the string contains only alphabetic characters


(i.e., letters); returns 0 otherwise.
isdigit() Returns 1 if the string contains only numerical characters
(e.g., "0", "1", "2"); otherwise, returns 0.

islower() Returns 1 if all alphabetic characters in the string are lower-


case characters (e.g., "a", "b", "c"); otherwise,
returns 0.
isspace() Returns 1 if the string contains only whitespace characters;
otherwise, returns 0.
istitle() Returns 1 if the first character of each word in the string is
the only uppercase character in the word; otherwise, returns
0.

isupper() Returns 1 if all alphabetic characters in the string are


uppercase characters (e.g., "A", "B", "C"); otherwise,
returns 0.

30
join( sequence ) Returns a string that concatenates the strings in sequence using the
original string as the separator between concatenated strings.

ljust( width ) Returns a new string left-aligned in a whitespace string of width


characters.
lower() Returns a new string in which all characters in the original string are
lowercase.
lstrip() Returns a new string in which all leading whitespace is removed.

replace( old, new[, maximum ] ) Returns a new string in which all occurrences of old in the original
string are replaced with new. Optional argument maximum indicates the
maximum number of replacements to perform.

rfind( substring[, start[, end]] ) Returns the highest index value in which substring occurs in the string
or –1 if the string does not contain substring. If argument start is
specified, searching begins at that index. If argument end is specified,
the method searches the slice start:end.

rindex( substring[, start[, end]] ) Performs the same operation as rfind, but raises a ValueError
exception if the string does not contain substring.

rjust( width ) Returns a new string right-aligned in a string of width characters.

rstrip() Returns a new string in which all trailing whitespace is removed.

31
split( [separator] ) Returns a list of substrings created by splitting the original string at each
separator. If optional argument separator is omitted or None, the string
is separated by any sequence of whitespace, effectively returning a list of
words.
splitlines( [keepbreaks] ) Returns a list of substrings created by splitting the original string at each
newline character. If optional argument keepbreaks is 1, the substrings in
the returned list retain the newline character.
startswith( substring[, start[, end]] ) Returns 1 if the string starts with substring; otherwise, returns 0. If
argument start is specified, searching begins at that index. If argument
end is specified, the method searches through the slice start:end.

strip() Returns a new string in which all leading and trailing whitespace is
removed.
swapcase() Returns a new string in which uppercase characters are converted to
lowercase characters and lower-case characters are converted to
uppercase characters.
title() Returns a new string in which the first character of each word in the
string is the only uppercase character in the word.
translate( table[, delete ] ) Translates the original string to a new string. The translation is performed
by first deleting any characters in optional argument delete, then by
replacing each character c in the original string with the value table[
ord( c ) ].

32
1.Numbers Data Type
2.List Data Type
Set data types hold unordered 3.Tuple Data Type
collection of unique items. The 4.Strings Data Type
5.Set Data Type
items stored in the set data types 6.Dictionary Data Type
are separated with a comma (,) and
enclosed within square brackets { }.

Output

33
Add elements

34
Delete elements

35
Set Operations - Union

36
Set Operations - Intersection

37
Set Operations - Difference

38
39
1.Numbers Data Type
Dictionary data types is held data in 2.List Data Type
3.Tuple Data Type
key and value pairs. 4.Strings Data Type
5.Set Data Type
A dictionary data type does not 6.Dictionary Data Type
allow duplicate keys in collection.
But the values ​can be duplicate

Output

40
Changing and Adding Dictionary elements

41
Removing
elements
from Dictionary

42
Iterating Through a Dictionary

43
44
CONTROL FLOW

45
Control flow (if, for, while - only)
• No switch
• No repeat-until
• No do-while
• No label-break
• No label-continue
• No goto

• if-elif-else, while, break, continue, pass


• for
– need the iterator function range()
46
1.If
2.For
3.While

1.If

2.If … else

3.If …elif… else

47
1.If
2.For
3.While

Nested if statements

48
1.If
2.For
3.While

49
1.If
2.For
range() function 3.While

1.range(n): generates a set of whole numbers starting from 0 to (n-1).


2.range(start, stop): generates a set of whole numbers starting from start
to stop-1.
3.range(start, stop, increment): The default increment is 1.

50
1.If
2.For
3.While

51
1.If
2.For
python for loop with else, The ‘else’ block executes 3.While
only when the loop has completed all the
iterations.

52
1.If
Python while Loop 2.For
3.While

Python while Loop with else

53
While with a break
# Using the break statement to drop out of a loop
total = 0 # sum of grades
gradeCounter = 0 # number of grades entered
A forever loop
while True:
grade = input( "Enter grade, -1 to end: " )
grade = int( grade )
# exit loop if user inputs -1 If the user enters –1
if grade == -1: then the loop ends
break
total += grade
gradeCounter += 1

# termination phase
if gradeCounter != 0:
average = total / gradeCounter
print ("Class average is", average)
else:
print ("No grades were entered“) 54
Continue will skip rest of the loop

• 1 # continue example
• 2 # Using the continue statement in a for/in structure.
• 3
• 4 for x in range( 1, 11 ):
• 5 The loop will continue if the
• 6 if x == 5: value equals 5
• 7 continue
• 8 The value 5 will never be
output but all the others will
• 9 print (x, end=" " )
• 10
• 11 print ( "\nUsed continue to skip printing the value 5")
1 2 3 4 6 7 8 9 10
Used continue to skip printing the value 5
55
Mini-while.py
Mini-Exercise

Using while loop, if statement and str() function; iterate


through the list and if there is a 100, print it with its index
number. i.e.: "There is a 100 at index no: 12"

lst=[10, 99, 98, 85, 45, 59, 65, 66, 76, 12, 35, 13, 100, 80,
95]

Expected output: There is a 100 at index no: 12

56
OPERATORS

57
1. Arithmetic
2.Comparison
3.Logical

ADD + Subtraction - Multiplication *

58
1. Arithmetic
Modulus % 2.Comparison
3.Logical
Division /

Exponentiation **

59
1. Arithmetic
2.Comparison
3.Logical

Python has six comparison operators,


which are as follows:

- Less than ( < )


- Less than or equal to (<=)
- Greater than (>)
- Greater than or equal to (>=)
- Equal to ( == )
- Not equal to ( != )

60
1. Arithmetic
2.Comparison
Python has three logical 3.Logical

operators:

- and
- or
- not

61
FUNCTIONS

62
1.Simple function
2.With arguments
3.With multiple arguments
4.With default arguments
5.Return a value
6.Return multiple values

What is a function
A function is a named code block that performs a job
or returns a value.
Simple Function (no arguments/no return values)

def my_func():
print("Hello! Hope you're doing well")

my_func()
# Output
Hello! Hope you're doing well

63
1.Simple function
Function with arguments 2.With arguments
3.With multiple arguments
4.With default arguments
1. positional arguments 5.Return a value
6.Return multiple values
def my_func(name,place):
print(f"Hello {name}! Are you from {place}?")

my_func("Jane","Paris")
# Output
Hello Jane! Are you from Paris?

2. keyword arguments
my_func(place="Hawaii",name="Robert")
# Output
Hello Robert! Are you from Hawaii?

64
1.Simple function
Function that Returns a Value 2.With arguments
3.With multiple arguments
4.With default arguments
5.Return a value
6.Return multiple values

def volume_of_cuboid(length,breadth,height):
return length*breadth*height

volume = volume_of_cuboid(5.5,20,6)
print(f"Volume of the cuboid is {volume} cubic units")
# Output
Volume of the cuboid is 660.0 cubic units

65
1.Simple function
2.With arguments
Function that Returns Multiple Values 3.With multiple arguments
4.With default arguments
5.Return a value
def cube(side): 6.Return multiple values
volume = side **3
surface_area = 6 * (side**2)
return volume, surface_area

returned_values = cube(8)
print(returned_values)
# Output
(512, 384)

unpack the tuple and store the values in two different variables.
volume, area = cube(6.5)
print(f"Volume of the cube is {volume} cubic units and the total surface
area is {area} sq. units")
# Outputs
Volume of the cube is 274.625 cubic units and the total surface area is
253.5 sq. units 66
What is a module?

If you create a single Python file to perform some tasks, that’s called a script.
If you create a Python file to store functions, classes, and other definitions,
that’s called a module. We use modules by importing from them, using the
Python import statement.

Import a module
Module function
Specific function

Short form
67
Why do you need Python modules?

1. They allow us to organize code. For example, you could


store all functions and data related to math in a module
called ‘math.py’. This is exactly what Python does in the
math module, actually!

2. We can reuse code more easily. Instead of copying the


same functions from one project to the next, we can now
use the module instead. And if we properly package the
module, we can even share it with others on the Python
package index.

68
pricing.py

main.py

69
1.alias

2.import specific function

70
3.rename a specific function

4.import everything

Risky. Functions can be overridden if the name is the same

71
What will happen? What is the result? 72
OS module in python
• You may perform ALL OS functions using Python
(like start a program, kill a program, find the
environment variables, etc) in
Linux/Unix/MacOSx
• However, MOST of the OS module functions
DOES NOT work on Microsoft Windows
• Reason: Python make calls to POSIX like
functions and MS windows is NOT POSIX
compatible
• However, some file OS functions like
renaming files, deleting files may work on MS
Windows
73
OS functions that SHOULD work on
Microsoft
• os.rename
• os.remove (which is alias of os.unlink)
• os.mkdir
• os.chdir
• os.getcwd
• os.rmdir

Any os functions involve file ownership will NOT work as


Microsoft file system is not POSIX compatible

74
OS File functions Expect Linux file system.
os.access(path, mode) os.chdir(path) os.chflags(path, flags)
os.chmod(path, mode) os.chown(path, uid, gid) os.chroot(path)
os.close(fd) os.closerange(fd_low, fd_high) os.dup(fd) os.dup2(fd, fd2)
os.fchdir(fd) os.fchmod(fd, mode) os.fchown(fd, uid, gid) os.fdatasync(fd)
os.fdopen(fd[, mode[, bufsize]]) os.fpathconf(fd, name) os.fstat(fd)
os.fstatvfs(fd) os.fstatvfs(fd) os.ftruncate(fd, length) os.getcwd()
os.getcwdu() os.isatty(fd) os.lchflags(path, flags) os.lchmod(path, mode)
os.lchown(path, uid, gid) os.link(src, dst) os.listdir(path)
os.lseek(fd, pos, how) os.lstat(path) os.major(device) os.major(device)
os.makedirs(path[, mode]) os.minor(device) os.mkdir(path[, mode])
os.mkfifo(path[, mode]) os.mknod(filename[, mode=0600, device])
os.open(file, flags[, mode]) os.openpty() os.pathconf(path, name)
os.pipe() os.popen(command[, mode[, bufsize]]) os.read(fd, n)
os.readlink(path) os.remove(path) os.removedirs(path)
os.rename(src, dst) os.renames(old, new) os.rmdir(path) os.stat(path)
os.stat_float_times([newvalue]) os.statvfs(path) os.symlink(src, dst)
os.tcgetpgrp(fd) os.tcsetpgrp(fd, pg) os.tempnam([dir[, prefix]])
os.tmpfile() os.tmpnam() os.ttyname(fd) os.unlink(path)
os.utime(path, times)
os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])
os.write(fd, str) Read python manual for details
75
EXCEPTION HANDLING

76
Because the program abruptly terminates on
encountering an exception, it may cause
damage to system resources, such as files.
Hence, the exceptions should be properly
handled so that an abrupt termination of the
program is prevented.

77
78
You can specify the error type

79
80
81
Case1

Case2

82
Case3

83
Raise an Exception
It causes an exception to be generated explicitly.

84
Exception
• Cannot print an error message in an object’s
method, otherwise it may corrupt the display
• Need some way to tell the caller something
go wrong
• Exception
– special event during program execution
• Python creates traceback objects when it
encounters exceptions

85
86
87
Python Exception Hierarchy
Python exceptions
Exception

SystemExit
StopIteration
StandardError
KeyboardInterrupt
ImportError
EnvironmentError
IOError
OSError
WindowsError (Note: Defined on Windows platforms only)
EOFError
RuntimeError
NotImplementedError
NameError
UnboundLocalError
AttributeError
SyntaxError
IndentationError
TabError
TypeError
AssertionError

88
Python Exception Hierarchy
LookupError
IndexError
KeyError
ArithmeticError
OverflowError
ZeroDivisionError
FloatingPointError
ValueError
UnicodeError
ReferenceError
SystemError
MemoryError
Warning
UserWarning
DeprecationWarning
SyntaxWarning
OverflowWarning
RuntimeWarning

89
FILE IO

90
Files

A file operation takes place in the following


order:

1.Open a file
2.Read or write (perform operation)
3.Close the file

91
92
Closing Files

We don't need to explicitly call the close() method. It is done


internally.

93
94
Readline()

95
Writing to Files

This program will create a new file named


test.txt in the current directory if it does not
exist. If it does exist, it is overwritten.

96
File Open Mode
Mode Description
"a" Writes all output to the end of the file. If the
indicated file does not exist, it is created.
"r" Opens a file for input. If the file does not exist, an
IOError exception is raised.
"r+" Opens a file for input and output. If the file does
not exist, causes an IOError exception.
"w" Opens a file for output. If the file exists, it is
truncated. If the file does not exist, one is created.
"w+" Opens a file for input and output. If the file exists,
it is truncated. If the file does not exist, one is
created.
"ab", Opens a file for binary (i.e., non-text) input or
"rb", output. [Note: These modes are supported only on
"r+b", the Windows and Macintosh platforms.]
"wb",
"w+b"
File-open modes.

97
File Object Methods
Method Description
close() Closes the file object.

fileno() Returns an integer that is the file’s file descriptor (i.e., the
number the operating system uses to maintain information about
the file).
flush() Flushes the file’s buffer. A buffer contains the information to
be written to or read from a file. Flushing the buffer performs the
read or write operation.

isatty() Returns 1 if the file object is a tty (terminal) device.


read( [size] ) Reads data from the file. If size is not specified, the method
reads all data to the end of the file. If argument size is specified,
the method reads at most size bytes from the file.
readline( [size] ) Reads one line from the file. If size is not specified, the method
reads to the end of the line. If size is specified, the method reads
at most size bytes from the line.
readlines( [size] ) Reads lines from the file and returns the lines in a list. If size is
not specified, the method reads to the end of the file. If size is
specified, the method reads at most size bytes.
seek( offset[, Moves the file position offset bytes. If location is not
location] ) specified, the file position moves offset bytes from the
beginning of the file. If location is specified, the file position
moves offset bytes from location.

98
More methods
Method Description
tell() Returns the file’s current position.
truncate( [size] ) Truncates data in the file. If size is not specified, all data is deleted. If size
is specified, the file is truncated to contain at most size bytes.

write( output ) Writes the string output to the file.


writelines( Writes each string in outputList to the file.
outputList )
File-object methods.

99
1.Numbers Data Type 1.If 1.Simple function
2.List Data Type 2.For 2.With arguments
3.Tuple Data Type 3.While 3.With multiple arguments
4.Strings Data Type 4.With default arguments
5.Set Data Type 5.Return a value
6.Dictionary Data 6.Return multiple values
Type

1. Arithmetic 1.Module
2.Comparison 2.Exception
3.Logical 3.File IO

100

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy