I719 Fundamentals of Python/lecture1v2
Lesson 1
Running Python
There are executables python
, python2
, and python3
By default on ubuntu and most systems, python
is symlinked to python2
python 2 or 3?
- v2 is more commonly used
- v3 is the official standard
- all the code we write today will run on both versions
interactive
many interactive shells
- default repl,
python3
- IPython (recommended),
ipython3
- bpython,
bpython3
Run a python script
python3 my_script.py
Writing python
The editor must recognize that python requires a 4 space indent.
- Use what ever editor you want
- If you do not know what to do, use Spyder
- If you want to learn something new, I recommend learning vim or emacs
- PyCharm is a popular IDE
Language basics
Whitespace dependent
- 4 space indent
- no brackets
{
}
like in java - no semicolons
- indent level replaces brackets
For example in javascript:
function hi (name) { // uses '{' to determine what is in function body
return "Hi " + name;
}
would become in python:
def hi(name): # code indented after the function definition is the function body, and is executed when the function is called
return 'Hi {}'.format(name)
Comments and Documentation
- use
#
for comments - use
"""
orto start and close multiline strings that will become documentation
def hi(name):
"""
Prepend 'Hi ' before name. This is documentation
"""
result = 'Hi {}'.format(name) # this is a comment
return result
Types
- to find the type of a symbol
a
, usetype(a)
Strings
hello = 'Hello World!'
print(hello)
- double or single quotes are fine
- length of string determined by function
len()
- concatenate strings with
+
hello = 'Hello'
world = 'World'
hello_world = hello + ' ' + world # 'Hello World'
substitute variable in a template string with
format
template_string = 'Hi {}' hi_bob = template_string.format('Bob') # 'Hi Bob'
Arithmetic
- uses operators like most other languages
- similar to java,
1 + 1
returns2
functions
- to define a function, start with
def
- then the function name
- functions are always in snake case. always lower case and words are separated by underscores
- add the end of the name, list of arguments in parethesis
- to document function, use triple quoted string after function definition
- functions can use named arguments, which allow a default value for the argument. They are called 'Keyword Arguments'
- Arguments can be made in order they are in the function definition, or be named specifically
Lists
lists in Python are like arrays in Java. They do not have predetermined length, and elements can be any type
a = [1, 2, 3] # defines a list
For loops
Python's for
is different from other languages. It is a "foreach" loop. It goes through each element of an iterator.
"""
0
1
2
"""
for i in range(3):
print(i)
i
in this example becomes an element of the iterator being iterated.
"""
H
e
l
l
o
"""
for character in "Hello":
print(character)
Tasks
Task 1
"Write a program that prints the numbers from 1 to 100. But for multiples of three print “Fizz” instead of the number and for the multiples of five print “Buzz”. For numbers which are multiples of both three and five print “FizzBuzz”."
Example Solution
for x in range(1,101):
if x % 15 == 0:
print("FizzBuzz") # Catch multiples of both first.
elif x % 3 == 0:
print("Fizz")
elif x % 5 == 0:
print("Buzz")
else:
print(x)
Task 2
Write a function that meets these requirements:
Args: name: a string exclamation: optional, defaults to 'Hi'
Returns: string with name prefixed by the exclamation.
>>> test_function('Bob') 'Hi Bob!' >>> test_function('Sally', exclamation='Bye') 'Bye Sally!'
Example solution
def hi(name, exclamation='Hi'):
return '{e} {n}'.format(n=name, e=exclamation)
Task 2
Write a function that meets these requirements:
Args: numbers - a list of numbers
Returns: Boolean True if an odd number exists in the list of numbers False if only even numbers exist in numbers.
>>> test_function([2,1]) # 1 is an odd number True >>> test_function([2,4]) # Both 2 and 4 are even numbers False
Example solution
def has_odd(l):
for i in l:
if i % 2 != 0:
return True
return False