COMP1531
🔨 Python
1.3 - Introduction
In this lecture
Why?
- Python is a valuable tool to learn and necessary for the project
What?
- Learning a second language
- Python vs C
- Core python language features
- Python versions
Python is a high level scripting language with rich libraries that has common applications in building simple services, utility tools, and all forms of data science.
Python is the universal go-to language if you had to pick up just one programming language.

def times_tables(size):
lst = []
for i in range(size):
for j in range(size):
lst.append(f"{i} * {j}")
return lst
- Rapidly build applications due to high level nature
- Very straightforward toolchain to setup and use
- It's very structured compared to other scripting languages
- Useful in data science and analytics applications
Why Python?
Learning another programming language is a very comfortable exercise, particularly if the language is from the same programming paradigm.
Other major factors dictate differences between languages - i.e. does it deal with pointers? Is it a typed language?
Learning another language
Procedural | Object-oriented | Typed | Pointers | Compiled | |
---|---|---|---|---|---|
C | Yes | No | Yes | Yes | Yes |
C++ | Yes | Yes | Yes | No | Yes |
Java | No | Yes | Yes | No | Yes |
Python | Yes | Yes | Can be | No | No |
Javascript | Yes | Yes | Can be | No | No |
Of course, there are syntax differences! But syntax differences are easy to pick up.
In the case of learning another language like Python, the main hurdles we have to overcome are:
- Python does not have types, unlike C
- Python has object-oriented components (which we can somewhat ignore), unlike C
- Python does not deal with pointers, unlike C (yay)
- Python is often written at a "higher level" (more abstract)
- Python does not have an intermediate compilation step, like C
Learning another language
Python vs C
def add_two_numbers(one, two):
three = one + two
return [ one, two, three ]
int add_two_numbers(int one, int two) {
int three = one + two
int *arr = malloc(sizeof(int) * 3);
arr[0] = one;
arr[1] = two;
arr[2] = three;
return arr;
}
Python
C
Write a function that takes two numbers, and returns a list of those two numbers along with its sum
Python vs C
Interpreted V compiled
C program
Python program
Machine Code
Output
Output
Compile
Run
Compile & Run
Because you already know C, we will teach Python very quickly and mainly focus on the differences between Python and C.
Unlike C, Python has a sprawling set of capabilities - the language will feel much bigger, and therefore you might feel you have a poorer grasp on it.
Don't expect to know everything about Python this term. Just focus on only learning what you need to solve a problem at hand, and you will learn more super quick.
Learning Python
Python can be run via the command line directly without compiling:
Python
$ python3 myfile.py
print("Hello world!")
myfile.py
name = "Giraffe"
age = 18
height = 2048.11 # mm
num1 = 3 ** 3
num2 = 27 // 3
print("=== Printing Items ===")
print(name + ", " + str(age) + ', ' + str(height))
print(name, age, height, sep = ', ')
print(f"{name}, {age}, {height}")
print("=== Printing Types ===")
print(type(name))
print(type(age))
print(type(height))
print("=== Printing Mixed ===")
print(f"3 ** 3 == {num1}")
print(f"27 // 3 == {num2}")
- Garbage collection
- More info on data types
Python - Basics
types.py
sentence = "My"
sentence = sentence + " name is"
sentence += " Pikachu"
print(sentence)
print("Hi!!" * 10)
Python strings are immutable
Python - Strings
strings.py
# This is a list
names = ['Hayden', 'Jake', 'Nick', 'Emily']
print(f"1 {names}")
print(f"2 {names[0]}")
names[1] = 'Jakeo'
names.append('Rani')
print(f"3 {names}")
print('====================================')
# This is a tuple
animals = ('Giraffe', 'Turtle', 'Elephant')
print(f"4 {animals}"
print(f"4 {animals[0]}"
# animals[1] = 'Dog' PROHIBITED
animals.append('Koala')
[Lists] are for mutable ordered structures of the same type
[Tuples] are for immutable ordered structures of any mix of types
Python - Lists & Tuples
lists-tuples.py
chars = ['a', 'b', 'c', 'd', 'e']
## Normal Array/List stuff
print(chars)
print(chars[0])
print(chars[4])
## Negative Indexes
print(chars[-1])
## Array Slicing
print(chars[0:1])
print(chars[0:2])
print(chars[0:3])
print(chars[0:4])
print(chars[0:5])
print(chars[2:4])
print(chars[3:5])
print(chars[0:15])
print(chars[-2:-4])
Lists/Tuples can be "sliced" to extract a subset of information about them. This is a real standout feature of python.
Python - Slicing
slicing.py
# Note the following:
# - Indentation and colon denotes nesting, not braces
# - Conditions generally lack paranthesis
# - pass used to say "do nothing"
# - i++ is not a language feature
number = 5
if number > 10:
print("Bigger than 10")
elif number < 2:
pass
else:
print("Number between 2 and 9")
print("--------------------------")
i = 0
while i < 5:
print("Hello there")
i += 1
print("--------------------------")
for i in range(5):
print("Hello there")
Python - Control Structures
control-structures.py
def get_even(nums):
evens = []
for i in range(len(nums)):
if number % 2 == 0:
evens.append(number)
return evens
all_numbers = [1,2,3,4,5,6,7,8,9,10]
print(get_even(all_numbers))
Python - Functions
functions.py
student = {
'name': 'Emily',
'score': 99,
'rank': 1,
}
print(student)
print(student['name'])
print(student['score'])
print(student['rank'])
student['height'] = 159
print(student)
Python - Dictionaries
dictionaries.py
Think of dictionaries like structs. You use them when you need a "collection" of items that are identified by a string description, rather than a numerical index (lists)
student1 = { 'name' : 'Hayden', 'score': 50 }
student2 = { 'name' : 'Nick', 'score': 91 }
student3 = { 'name' : 'Emily', 'score': 99 }
students = [student1, student2, student3]
print(students)
# Approach 1
num_students = len(students)
for i in range(num_students):
student = students[i]
if student['score'] >= 85:
print(f"{student['name']} got an HD")
# Approach 2
for student in students:
if student['score'] >= 85:
print(f"{student['name']} got an HD")
Python - Combining
combining1.py
It's possible to create data structures of other data structures
Versions
python2
python3

Python
In COMP1531, we will be using python 3.7 for everything.
If you're on the CSE machines, you can run the python interpreter with "python3" - this will automatically use python3.7
If you're on a local machine, we recommend you run python with "python3.7" - this will ensure you use the right version
Python
Feedback

Copy of COMP1531 22T1 - 1.3 - Python - Intro
By haydensmith
Copy of COMP1531 22T1 - 1.3 - Python - Intro
- 563