שאלות ממבחני עבר

שאלות ממבחני עבר#

בחלק זה תתרגלו מספר שאלות שנשאלו במבחני עבר. נסו לפתור אותן בעצמכם - מומלץ אפילו בדף ועט! לאחר מכן בדקו את תשובותיכם. קיימים גם פתרונות אפשריים שמוצעים לכם פה, אך מדובר בפתרון אחד אפשרי. אם הפתרון שלכם עובד, הוא יקבל את הנקודות.

פתחו את המבחן 2223BmoedA וענו על שאלות: 1.א, 1.ב.

1.A

def read_msgs(infile_lst):
    dic = {}
    for infile in infile_lst:
        f = open(infile, 'r')
        for line in f:
            line = line.rstrip()
            msgs = line.split(',')
            for msg in msgs:
                writer, msg = msg.split(':')
                dic[writer] = dic.get(writer, []) + [msg]
        f.close()
    return dic
open('files/infile1.txt', 'w').write("Avia:Good,Maor:Tel\nAvia:Luck")
open('files/infile2.txt', 'w').write("Maor:Aviv\nMaor:University")

read_msgs(['files/infile1.txt','files/infile2.txt'])
{'Avia': ['Good', 'Luck'], 'Maor': ['Tel', 'Aviv', 'University']}

1.B

def write_msgs(dic, outfile):
    f = open(outfile, 'w')
    for key in dic:
        f.write(f'{key}:{dic[key]}\n')
    f.close()
write_msgs({'Avia': ['Good', 'Luck'], 'Maor': ['Tel', 'Aviv', 'University']}, 'files/out.txt')
print(open('files/out.txt','r').read())
Avia:['Good', 'Luck']
Maor:['Tel', 'Aviv', 'University']

פתחו את המבחן 2223BmoedB וענו על שאלות: 1.א, 1.ב.

1.A

def foods_calories(calories_file):
    f = open(calories_file, 'r')
    dic = {}
    for line in f:
        lst = line.strip().split()
        dic[lst[0][:-1]] = int(lst[1])
    f.close()
    return dic
open('files/foods.txt','w').write("Apple: 120\nBamba: 300\nEgg: 80\nPita: 250") 

foods_calories('files/foods.txt')
{'Apple': 120, 'Bamba': 300, 'Egg': 80, 'Pita': 250}

1.B

def daily_calories(calories_file, days_lst):
    dic = foods_calories(calories_file)
    tot_lst = []
    for file in days_lst:
        tot = 0
        f = open(file, 'r')
        for line in f:
            lst = line.strip().split('*')
            tot += dic.get(lst[1], 100) * int(lst[0])
        tot_lst.append(tot)
    f.close()
    return tot_lst
open('files/sunday.txt','w').write("4*Apple\n1*Bamba\n3*Egg\n2*Pita")
open('files/monday.txt','w').write("3*Pita\n2*Tomato\n4*Egg")

daily_calories('files/foods.txt',['files/sunday.txt','files/monday.txt'])
[1520, 1270]