Jed Rembold & Fred Agbo
January 29, 2024
Karel starts in the empty world shown at one of the marked positions and runs the below code. One of the starting positions will result in an error before the code finishes. Which one?
for i in range(3):
move()
turn_left()
for i in range(2):
if front_is_blocked():
turn_around()
move()
turn_right()
int
for integers and whole
numbers
1, 2, 3, 10, 1001010101, -231
float
for numbers containing a
decimal point
1.23, 3.14, 10.001, 0.0, -8.23
complex
for numbers with an imaginary
component (which we won’t deal with)
i + j
the sum of
i
and j
i - j
the difference between
i
and j
i * j
the product of
i
and j
i // j
the floor division of
i
by j
i / j
the division of
i
by j
†i % j
the remainder when
i
is divided by
j
i ** j
i
to the power of j
-j
the negation of
j
– Returns
int
if both i
and j
are integers,
float
otherwise
† – Returns
float
always
**
(exponents, executed right to
left)-n
(negative numbers)*
, /
,
//
, %
, executed
from left to right+
and -
,
executed from left to rightWhat is the value of the below expression?
1 * 2 * 3 + (4 + 5) % 6 + (7 * 8) // 9
You create a variable by assigning it a value with Python’s
assignment statement =
:
variable_name = expression
The variable name must appear on the left of the
=
Python first computes the value of the righthand side of the equals and then assigns to the name on the left
The same variable name can seem to appear on both sides of the equals!
total = total + value
total
on the right represents some
existing valuetotal
on the left is the new label
of whatever the right summed toWhen you assign a new value to a variable, the old value is lost
>>> A = 10
>>> print(A)
10
>>> B = A + 5
>>> print(B)
15
>>> A = B
>>> print(A)
15
Variables defined in terms of others do not get automatically updated
>>> A = 10
>>> B = A + 2
>>> A = 8
>>> print(B)
12
this_is_amazing
thisIsAmazing
MAX_WIDTH
radius
and
Radius
are different variable names!It is very common to want to adjust an existing variable
balance = balance + deposit
Python gives you a shorter expression to describe this relationship:
balance += deposit
You can do this with any operation (op) following the general form:
variable op= expression
You can name multiple variables at once by separating with commas
A, B, C = 1, 2, 3
The general form of a function definition looks like:
def name(parameter_list):
#statements in function body
name
is your chosen name for the
functionparameter_list
is a
comma-separated list of variable names that will hold
each input valueYou can return or output a value from the function by including a return statement
return expression
expression
is the value you want to
return or outputreturn
statement is included,
Python will by default return None
Convert Fahrenheit temperatures to their Celsius equivalent
def f_to_c(f):
return 5 / 9 * (f - 32)
Using the function:
print(f_to_c(45))
Computes the volume of a cylinder of height
h
and radius
r
def cylinder_volume(r, h):
return 3.14159 * r**2 * h
Using the function:
print(cylinder_volume(2,10))
Function | Description |
---|---|
abs(x) |
The absolute value of x |
max(x,y,...) |
The largest of all the arguments |
min(x,y,...) |
The smallest of all the arguments |
round(x) |
The value of x rounded to the nearest integer |
int(x) |
The value of x truncated to an integer |
float(x) |
The value of x as a decimal |
.py
. Such files are called
modules.print
print()
command will display whatever is
between the ()
to the screenSeparate each thing by a comma inside the
print
statement. This will insert a space
between each when printed.
print(1,2,'blue')
Concatenate what you want together with
+
, converting to strings as needed
python print('2000' + ' - ' + '2023')
print(str(1) + ' ' + str(2) + ' blue')
Python defines two types of operators that work with Boolean data: relational operators and logical operators
Relational operators compare values of other types and produce a
True
/False
result:
== |
Equals | != |
Not equals | |||
< |
Less than | <= |
Less than or equal too | |||
> |
Greater than | >= |
Greater than or equal to |
Be careful! ==
compares two
booleans. A single =
assigns a
variable. The odds are high you’ll use one when you meant the other at
least once this semester!
Logical operators act on Boolean pairings
Operator | Description |
---|---|
A and B |
True if both terms True, False otherwise |
A or B |
True if any term is True, False otherwise |
not A |
True if A False, False if A True (opposite) |
or
is
still True
if both options are
True
not
with and
and
or
not A or B
What value is printed when the code to the right runs?
True
False
"4Quiz"
A = 10
B = 4
C = "Quiz"
A *= B
if A > 40 and C != "C":
print(str(B)+C)
else:
print(A < B or not (C == "C"))
Example: if n=0
, then the
x % n == 0
is never actually checked in the
statement
n != 0 and x % n == 0
since n != 0
already is
False
and
False and
anything is always
False
x % n == 0
statement would have erred out if
n=0
input
To retrieve data from a user, we can use Python’s built-in
input()
function
The form will generally look like:
variable = input(prompt_text)
variable
is the variable name you want
to assign the user’s typed input toprompt_text
is the string that will be
displayed on the screen to communicate to the user what they should be
doingThe input()
function always
returns a string
If you want to get an integer from the user, you will need to convert it yourself after retrieving it
num = int(input('Pick a number between 1 and 10: '))