# Task 1 def task1(): name = input("Enter your name here:") print(f"What's up {name}!") # Task 2 def putinframe(text): l = len(text) print("-"*(l+6)) print("‖"+" "*(l+4) + "‖") print("‖"+ " " + text + " "+ "‖") print("‖"+" "*(l+4) + "‖") print("-"*(l+6)) def task2(): name = input("Type your name:") putinframe(f"Have a lovely day {name}!") # Task 3 def square_table(c1, c2, c3): t = "{:^10}|{:^10}|{:^10}|\n".format(c1[0],c2[0],c3[0]) t += ("-"*len(t)+"\n") for n in range(1, len(c1)): t += ("{:^10}|{:^10}|{:^10}|\n".format(c1[n],c2[n],c3[n])) return(t) def task3(): n_list = ["x"] sq_list = ["x²"] cube_list = ["x³"] for n in range(11): n_list.append(n) sq_list.append(n**2) cube_list.append(n**3) print(square_table(n_list, sq_list, cube_list)) # task 4 def district_table(data, head): # Formats the data into a nice table in a string t = "{:^25}|{:^10}|\n".format(head[0],head[1]) t += ("-"*len(t)+"\n") for n,p in data.items(): t += ("{:^25}|{:^10}|\n".format(n, p)) return(t) def task4(): with open('norway_municipalities_2017.csv') as f: # we will make a dict where the the kei is the district and the value the population d = {} # assume the csv file always has a header l_iter = iter(f) l_iter.__next__() for l in l_iter: # we get a list where 0 is the kommune name, 1 is what fylke it is in and 2 is the population ll = l.strip("\n").split(',') name = ll[1] if name in d.keys(): d.update({name: d.get(name) + int(ll[2])}) else: d.update({name: int(ll[2])}) head = ["District", "Population"] res = {key: val for key, val in sorted(d.items(), key = lambda ele: ele[1], reverse=True)} print(district_table(res, head)) # Task 5 import matplotlib.pyplot as plt import numpy as np def task5(): with open('norway_municipalities_2017.csv') as f: # we will make a dict where the the kei is the district and the value the population d = {} # assume the csv file always has a header l_iter = iter(f) l_iter.__next__() for l in l_iter: # we get a list where 0 is the kommune name, 1 is what fylke it is in and 2 is the population ll = l.strip("\n").split(',') name = ll[1] if name in d.keys(): d.update({name: d.get(name) + int(ll[2])}) else: d.update({name: int(ll[2])}) head = ["District", "Population"] res = {key: val for key, val in sorted(d.items(), key = lambda ele: ele[1], reverse=True)} n = len(res.keys()) x = 0.5 + np.arange(n) y = res.values() fig, ax = plt.subplots() ax.bar(res.keys(), y, edgecolor="white", linewidth=0.7) ax.set(xlabel=head[0], ylabel=head[1]) plt.xticks(rotation = 90) plt.show() if __name__ == "__main__": print("Task 1:") task1() print("\nTask 2:") task2() print("\nTask 3:") task3() print("\nTask 4:") task4() print("\nTask 5:") task5()