# Part 1

# question 1 (4')
# We use tuple when we dont want that anyone will change our program,
# list has more builtin function than tuple though

# question 2 (2.5')
# we use dictionary when we want a key to store another thing

# question 3 (1')
# when the loops or the functions are too long, they may affect the quality of your program

# question 4 (4.5')
# No, because 1.1 + 2.2 isn't equal to 3.3

# question 5 (2.5')
# a multi-package program is a project with a lot of python package and a multi-file program is one of those package

# question 6 (3.5')
# syntax for exception handling:
# try, except, else, finally
# we use them to avoid errors if you aren't sure of your program

# question 7 (4')
# the recursion function is slow and requires more storage

# question 8 (5')
# a magic number or a magic value is a number or a value that the user doesnt know why its here,
# the user will not understand if you write them, we just need to put a variable before it to avoid them

# question 9 (3')
# when we produce a software, we need to write a plan and a requirement file

# question 10 (4')
# try to reformat your file, put function, try to avoid magic numbers and put some comments and a docstring


# Part 2

# question 1  (22')
import shutil
original = r'file_to_copy.py'
target = r'final_exam_guangzhu.py'
shutil.copyfile(original, target)

# question 2  (15')
a = {'1': 1, '3': 3, '2': 2, '4': 4}
b = sorted(a)
print(b)


