└── arithmetic.py /arithmetic.py: -------------------------------------------------------------------------------- 1 | import random 2 | 3 | 4 | def answer(score, solution): 5 | while True: 6 | try: 7 | user_answer = int(input()) 8 | if solution == user_answer: 9 | print('Right!') 10 | score += 1 11 | return score 12 | else: 13 | print('Wrong!') 14 | return score 15 | except ValueError: 16 | print('Incorrect format.') 17 | 18 | 19 | def save_score(score, difficulty_level, level_description, i_): 20 | file_store = input(f'Your mark is {score}/{i_}. Would you like to save the result? Enter yes or no.\n') 21 | if file_store in ['yes', 'YES', 'y', 'Yes']: 22 | user_name = input('What is your name?\n') 23 | with open('results.txt', 'a') as file: 24 | file.write(f'{user_name}: {score}/{i_} in level {difficulty_level} ({level_description})\n') 25 | print('The results are saved in "results.txt".') 26 | 27 | 28 | def exam(): 29 | level_description1 = 'simple operations with numbers 2-9' 30 | level_description2 = 'integral squares of 11-29' 31 | while True: 32 | difficulty_level_ = input(f'Which level do you want? Enter a number:\n' 33 | f'1 - {level_description1}\n' 34 | f'2 - {level_description2}\n') 35 | if difficulty_level_ == '1': 36 | level_description_ = level_description1 37 | break 38 | elif difficulty_level_ == '2': 39 | level_description_ = level_description2 40 | break 41 | else: 42 | print('Incorrect format.') 43 | score_ = 0 44 | if difficulty_level_ == '1': 45 | for i in range(1, 6): 46 | operations = ['+', '-', '*'] 47 | number1 = random.randint(2, 9) 48 | number2 = random.randint(2, 9) 49 | operation = random.choice(operations) 50 | task_str = f'{number1} {operation} {number2}' 51 | print(task_str) 52 | solution_ = eval(task_str) 53 | score_ = answer(score_, solution_) 54 | save_score(score_, difficulty_level_, level_description_, i) 55 | elif difficulty_level_ == '2': 56 | for i in range(1, 6): 57 | number3 = random.randint(11, 29) 58 | print(number3) 59 | solution_ = number3 ** 2 60 | score_ = answer(score_, solution_) 61 | save_score(score_, difficulty_level_, level_description_, i) 62 | 63 | 64 | if __name__ == '__main__': 65 | exam() 66 | --------------------------------------------------------------------------------