CS 2120: Topic 2
================
Videos for this week:
^^^^^^^^^^^^^^^^^^^^
Part 1: Background
------------------
.. raw:: html
Part 2: Coding
------------------
.. raw:: html
Welcome back! This week we'll cover a bit of background theory and get into variables, operations, printing to the console, and a few other things.
.. admonition:: Before we start..
:class: Warning
Do you have Python running on your computer? If not, see ":doc:`Getting set up for CS 2120 `"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Background (Theory)
-------------------
What's a program?
^^^^^^^^^^^^^^^^^
* You can think of it as a *recipe* for the computer to do something that you want it to do
* **More formal**: A sequence of instructions that specifies *exactly* how to perform a computation
What's debugging?
^^^^^^^^^^^^^^^^^
* Fixing your errors: syntax, runtime, or semantic
Languages
^^^^^^^^^^
* What's the difference between a "natural language" and a "formal language"?
* Why is ambiguity **a problem** for a formal language?
.. admonition:: Remark
:class: Note
Is the following statement true or false?
``This statement is false.``
Background (Python)
-------------------
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. admonition:: Sanity Check
:class: Note
Write a Python program that prints a message to the console.
Values
^^^^^^
* Values are things that a program manipulates.
* *Strings*: "abcdef"
* *Integers*: 7, 42, 97
* *Floating-point numbers*: 3.792, 0.00005
* To a computer, the integer 1 is not necessarily the same thing as the floating point number 1.0... because they have different *types*
* Python will guess at the *type* of your value if you don't tell it.
* Can I ask Python to tell me its guess for the type of a value?
>>> type(12)
>>> type('Toronto Blue Jays')
>>> type(3.75)
Variables
^^^^^^^^^^^^
* Variables let you store values in a labelled (named) location
* You store *values* into *variables* by using the *assignment operator* **=**
>>> a=5
>>> m='I like variables'
* The '=' symbol here corresponds to variable assignment... it doesn't really mean the same thing as the '=' sign in math.
* In math when we write 'a = 5' we mean that '5' and 'a' are equivalent.
* In Python when we write
>>> a=5
* ... we're telling the Python interpreter to create a variable named ``a`` and store the value ``5`` in it.
What can you do with variables?
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
* Anything you can do with values.
* For example, we can add variables:
>>> a = 5
>>> b = 7
>>> a+b
12
>>> b=5
>>> a+b
10
Choosing variable names
^^^^^^^^^^^^^^^^^^^^^^^^
* Some rules for Python..
* start the name with a letter of the alphabet or an underscore ("_")
* a variable name **can't** start with a number
* a variable name can only be made up of alphanumeric characters and underscores
* variable names are case-sensitive
.. admonition:: Try this
:class: Note
Create two variables, named ``maple`` and ``leafs``, and set them to ``19`` and ``67``, respectively. Try adding them. What happened?
Statements
^^^^^^^^^^^
* A **statement** tells Python to "*do something*".
* for example, printing to the screen (i.e. ``print("a")``)
* it is an *instruction* that can be *executed* by the interpreter.
Expressions
^^^^^^^^^^^^^
* An **expression** is a combination of:
* values (e.g., ``5``)
* variables (e.g., ``whale``)
* operators (e.g., ``+``)
* Example:
>>> leafs * 2 + 7
141
Operators
^^^^^^^^^^
* **Operators** are symbols that tell Python to perform computations on expressions.
* ``+``, ``-``, ``\*``, ``/``
Order of Operations
^^^^^^^^^^^^^^^^^^^^^
* Python follows the usual order of operations (``B-E-D-M-A-S``).
* You can use ``()`` to customize your expressions:
>>> 2 + 5 * 2
12
>>> (2 + 5) * 2
14
Are operators just for numbers?
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
* No
* they work on *strings*, for example
.. admonition:: Try this
:class: Note
Try mixing strings and integers with various operators.
Ways to run Python
^^^^^^^^^^^^^^^^^^
* The engine which runs Python (the *interpreter*) can run in 2 ways:
* **immediate mode**: you type a line of code and the interpreter responds with an output (like the code samples on this page)
* **script mode**: you type all of the code out (i.e. in a PyCharm script), *run* it, the interpreter responds with all of its output in the console window
For next class
^^^^^^^^^^^^^^^
* Read the rest of `chapter 2 of the text `_
* Read `chapter 3 of the text `_