I719 Fundamentals of Python/lecture2v2

From ICO wiki

Lecture 2

Dictionaries, Importing, HTTP Requests, and Classes

Dictionaries

Map keys to values

# Make a list
>>> a = [1, 2, 3]
# get element of a list using the index of an element 
>>> a[1]
2
>>> a[0]
1
# get character in a string using the index of a character
>>> hello = "hello"
>>> hello[1]
'e'
# create a dictionary, with name of a programming language as a key
# and the year created as the value
>>> example_dict = {'python': 1991}
>>> example_dict
{'python': 1991}
# get value from a dictionary using the key
>>> example_dict['python']
1991
# accessing a key that does not exist
>>> example_dict['p']
Traceback (most recent call last):
  File "<input>", line 1, in <module>
    example_dict['p']
KeyError: 'p'
>>> example_dict.get('python')
1991
>>> example_dict.get('pythons')
>>> example_dict.get('pythons', 1990)
1990
# adding a new item (key and value pair) to a dictionary
>>> example_dict['javascript'] = 1995
>>> example_dict
{'javascript': 1995, 'python': 1991}
>>>

Example creation of dictionary

Make a dictionary mapping numbers to squares

def map_numbers_to_squares(numbers):
    result = {}
    for number in numbers:
        result[number] = number ** 2
    return result

TASK 1

Args: multiplier: a number to multiply numbers by numbers: a list of numbers

Returns: dict of numbers, mapping each number to the number multiplied by the multiplier number is the key, the product is the value

>>> test_function(4, [1,2])
# 1*4 = 4, 2*4 = 8
{1: 3, 2: 8}

Answer:

def map_products(multiplier, numbers):
    result = {}
    for number in numbers:
        result[number] = number * multiplier
    return result

Importing

import requests
import requests as r
from requests import get

Requests library

pip3 install requests

import requests

response = requests.get('http://google.com')

response.text  # get the response body as a string

response.json()  # if the response is json, convert it into python native types

TASK 2

Get the bitcoin price in euros, and print it.

Importable thing

TASK 3

make a function that returns the bitcoin price. From another file, print the price

Classes

This is a basic intro to classes. Classes organize code and provide the basis for the object/type system of python. An object has data and behavior. Classes define new objects. This python course will not require object oriented design, but you should know the basics of a python class.

# define a class
class Animal:
    # this is a magic method.
    # __init__ is called when the class is instantiated
    # `my_animal = Animal('masha')` makes a new Animal, executes this method, and assigns the new animal to 'my_animal'
    def __init__(self, name):
        # self refers to newly created instance of the class.
        print(id(self))
        # this creates an instance attribute 'name' 
        self.name = name


# define a Dog, which is Animal
# Dog also has the same __init__ method from animal
class Dog(Animal):
    def change_name(self, name):
        self.name = name


# define a Cat, which is an Animal
class Cat(Animal):
    def kak_zavut(self):
        return 'minu nimi on {}'.format(self.name)