--- title: Python Basics - Python Cheatsheet description: The basics of python. We all need to start somewhere, so how about doing it here. --- Python Basics We all need to start somewhere, so how about doing it here. From the Python 3 tutorial Python is an easy to learn, powerful programming language [...] Python’s elegant syntax and dynamic typing, together with its interpreted nature, make it an ideal language for scripting and rapid application development. ## Math Operators From **highest** to **lowest** precedence: | Operators | Operation | Example | | --------- | ----------------- | --------------- | | \*\* | Exponent | `2 ** 3 = 8` | | % | Modulus/Remainder | `22 % 8 = 6` | | // | Integer division | `22 // 8 = 2` | | / | Division | `22 / 8 = 2.75` | | \* | Multiplication | `3 * 3 = 9` | | - | Subtraction | `5 - 2 = 3` | | + | Addition | `2 + 2 = 4` | Examples of expressions: ```python >>> 2 + 3 * 6 # 20 >>> (2 + 3) * 6 # 30 >>> 2 ** 8 #256 >>> 23 // 7 # 3 >>> 23 % 7 # 2 >>> (5 - 1) * ((7 + 1) / (3 - 1)) # 16.0 ``` ## Augmented Assignment Operators | Operator | Equivalent | | ----------- | ---------------- | | `var += 1` | `var = var + 1` | | `var -= 1` | `var = var - 1` | | `var *= 1` | `var = var * 1` | | `var /= 1` | `var = var / 1` | | `var //= 1` | `var = var // 1` | | `var %= 1` | `var = var % 1` | | `var **= 1` | `var = var ** 1` | Examples: ```python >>> greeting = 'Hello' >>> greeting += ' world!' >>> greeting # 'Hello world!' >>> number = 1 >>> number += 1 >>> number # 2 >>> my_list = ['item'] >>> my_list *= 3 >>> my_list # ['item', 'item', 'item'] ``` ## Walrus Operator The Walrus Operator allows assignment of variables within an expression while returning the value of the variable Example: ```python >>> print(my_var:="Hello World!") # 'Hello world!' >>> my_var="Yes" >>> print(my_var) # 'Yes' >>> print(my_var:="Hello") # 'Hello' ``` The _Walrus Operator_, or **Assignment Expression Operator** was firstly introduced in 2018 via [PEP 572](https://peps.python.org/pep-0572/), and then officially released with **Python 3.8** in October 2019. Syntax Semantics & Examples The PEP 572 provides the syntax, semantics and examples for the Walrus Operator. ## Data Types | Data Type | Examples | | ---------------------- | ----------------------------------------- | | Integers | `-2, -1, 0, 1, 2, 3, 4, 5` | | Floating-point numbers | `-1.25, -1.0, --0.5, 0.0, 0.5, 1.0, 1.25` | | Strings | `'a', 'aa', 'aaa', 'Hello!', '11 cats'` | ## Concatenation and Replication String concatenation: ```python >>> 'Alice' 'Bob' # 'AliceBob' ``` String replication: ```python >>> 'Alice' * 5 # 'AliceAliceAliceAliceAlice' ``` ## Variables You can name a variable anything as long as it obeys the following rules: 1. It can be only one word. ```python >>> # bad >>> my variable = 'Hello' >>> # good >>> var = 'Hello' ``` 2. It can use only letters, numbers, and the underscore (`_`) character. ```python >>> # bad >>> %$@variable = 'Hello' >>> # good >>> my_var = 'Hello' >>> # good >>> my_var_2 = 'Hello' ``` 3. It can’t begin with a number. ```python >>> # this wont work >>> 23_var = 'hello' ``` 4. Variable name starting with an underscore (`_`) are considered as "unuseful". ```python >>> # _spam should not be used again in the code >>> _spam = 'Hello' ``` ## Comments Inline comment: ```python # This is a comment ``` Multiline comment: ```python # This is a # multiline comment ``` Code with a comment: ```python a = 1 # initialization ``` Please note the two spaces in front of the comment. Function docstring: ```python def foo(): """ This is a function docstring You can also use: ''' Function Docstring ''' """ ``` ## The print() Function The `print()` function writes the value of the argument(s) it is given. [...] it handles multiple arguments, floating point-quantities, and strings. Strings are printed without quotes, and a space is inserted between items, so you can format things nicely: ```python >>> print('Hello world!') # Hello world! >>> a = 1 >>> print('Hello world!', a) # Hello world! 1 ``` ### The end keyword The keyword argument `end` can be used to avoid the newline after the output, or end the output with a different string: ```python phrase = ['printed', 'with', 'a', 'dash', 'in', 'between'] >>> for word in phrase: ... print(word, end='-') ... # printed-with-a-dash-in-between- ``` ### The sep keyword The keyword `sep` specify how to separate the objects, if there is more than one: ```python print('cats', 'dogs', 'mice', sep=',') # cats,dogs,mice ``` ## The input() Function This function takes the input from the user and converts it into a string: ```python >>> print('What is your name?') # ask for their name >>> my_name = input() >>> print('Hi, {}'.format(my_name)) # What is your name? # Martha # Hi, Martha ``` `input()` can also set a default message without using `print()`: ```python >>> my_name = input('What is your name? ') # default message >>> print('Hi, {}'.format(my_name)) # What is your name? Martha # Hi, Martha ``` It is also possible to use formatted strings to avoid using .format: ```python >>> my_name = input('What is your name? ') # default message >>> print(f'Hi, {my_name}') # What is your name? Martha # Hi, Martha ``` ## The len() Function Evaluates to the integer value of the number of characters in a string, list, dictionary, etc.: ```python >>> len('hello') # 5 >>> len(['cat', 3, 'dog']) # 3 ``` Test of emptiness Test of emptiness of strings, lists, dictionaries, etc., should not use len, but prefer direct boolean evaluation. Test of emptiness example: ```python >>> a = [1, 2, 3] # bad >>> if len(a) > 0: # evaluates to True ... print("the list is not empty!") ... # the list is not empty! # good >>> if a: # evaluates to True ... print("the list is not empty!") ... # the list is not empty! ``` ## The str(), int(), and float() Functions These functions allow you to change the type of variable. For example, you can transform from an `integer` or `float` to a `string`: ```python >>> str(29) # '29' >>> str(-3.14) # '-3.14' ``` Or from a `string` to an `integer` or `float`: ```python >>> int('11') # 11 >>> float('3.14') # 3.14 ```