# Codecademy's Python 2 Course https://www.codecademy.com/courses/learn-python/lessons/python-syntax/ It's gratis and accepts Python 3 syntax. # Object-oriented "The main goal of an object oriented language is to make code reusable – we do this through the use of classes and objects. If we want to design a new type of car, we can start with what they all have in common: wheels, seats, a frame. Now that we’ve determined what cars have in common, we can more easily implement any type of car we want by starting from that basic blueprint." https://discuss.codecademy.com/t/what-does-it-mean-that-python-is-an-object-oriented-language/297314 # Errors (ex6, CH1, P3) "SyntaxError means there is something wrong with the way your program is written — punctuation that does not belong, a command where it is not expected, or a missing parenthesis can all trigger a SyntaxError. A NameError occurs when the Python interpreter sees a word it does not recognize. Code that contains something that looks like a variable but was never defined will throw a NameError." SyntaxError example: `SyntaxError: EOL while scanning string literal` # Math (ex6) ``` mirthful_addition = 12381 + 91817 amazing_subtraction = 981 - 312 trippy_multiplication = 38 * 902 happy_division = 540 / 45 sassy_combinations = 129 * 1345 + 120 / 6 - 12 exponents = (16 ** 0.5) # 16 to the 1/2th power. (4) remainder = (15 % 2) # The remainder (and thus the result) equals 1 ``` ## Find the remainder of a number using % ``` is_this_number_odd = 15 % 2 is_this_number_divisible_by_seven = 133 % 7 ``` # Updating variables / operators. ``` sandwich_price += sales_tax ``` is the same as: ``` sandwich_price = sandwich_price + sales_tax ``` but is much shorter. ## Comments Are indicated by # or """This is not for running""" # Numbers An integer is like `5`, a float is a number with a decimal point like `5.0`. They can also be in scientific notation like `2.3e7` In Python 2, you need to make sure math like `7/2` = `3.5` is correct is by inputting it into Python like `7./2.` or `float(7)/2` ## Limitations of floats Floats are limited by the number of digits. For example `1/3 = 0.3` ``` >>> format(math.pi, '.12g') # give 12 significant digits '3.14159265359' >>> format(math.pi, '.2f') # give 2 digits after the point '3.14' ``` # Strings Multi-line strings are marked by ```""" Mulit- line strings""" ``` # Booleans (True/False) True = int(1) False = int(0) # Datatypes Force treating as a string: str(7) Force treating as an integer: int("7") Froce treating as a float: float(7) # Escaping Characters Simply add a `\` to escape a character that would otherwise cause issues. # Arrays / Indexes `cows = "cows"[0]` This sets the variable `cows` to the 0th letter of the string `"cows"` which is `c`. These indexes start at 0, not 1. # Strings ## String Methods `len(var)` Get length of string. `var.lower()` Force lowercase `var.upper()` Force uppercase `str(var)` Force treating variable as a string. If it uses dot notation like `.lower()`, it works exclusively on strings. ## Concatenation `"Ten times a cow is equal to " + result + " with 10 times as many breeding opportunities."` or `print(var, var2, var3)` or `string1 += string2` ## String Formatting with % `"%s %s - 2020" % (month, day) # Replace %s with a variable. First the month, then the day.` `Add %03d to specify a signed integer padded 2 places with zeros. For example, 2 becomes 02.` This is super useful for displaying dates like this: `print("%02d-%02d-%02d") % (now.month, now.day, now.year)` or time like this: `print '%02d:%02d:%04d' % (now.hour, now.minute, now.second)` (Ch3, Ex. 4) ## Date and Time (Ch3) Grab the current time: ``` from datetime import datetime now = datetime.now() year = now.year month = now.month day = now.day ``` # Function P3 Ch.2 ## Defining a Function ``` def greet_customer(): print("Welcome!") ``` ## Calling Functions ``` greet_customer() ``` or if it has parameters: ``` greet_customer(1,ten) ``` # Fun Projects Design a shop using Ex7 and Ex9 as a frame: 7: ``` money_in_wallet = 40 sandwich_price = 7.50 sales_tax = .08 * sandwich_price sandwich_price += sales_tax money_in_wallet -= sandwich_price ``` 9: ``` cucumbers = 1 price_per_cucumber = 3.25 total_cost = cucumbers * price_per_cucumber print(total_cost) ``` `total_price += nice_sweater` Cool concept from Ch2 Ex15: ``` name = raw_input("What is your name? ") quest = raw_input("What is your quest? ") color = raw_input("What is your favorite color? ") print "Ah, so your name is %s, your quest is %s, " \ "and your favorite color is %s." % (name, quest, color) ```