1RESULTS = {
2 "0MI0600128": {
3 "correct": "some_random_string",
4 "points": "another_random_string",
5 }
6}
7
8class LockPicker_0MI0600128:
9 def __init__(self, lock):
10 self.lock = lock
11
12 def unlock(self):
13 attempt = []
14 num_args = None
15
16 while True:
17 try:
18 if num_args is not None:
19 while len(attempt) < num_args:
20 attempt.append(None)
21 result = self.lock.pick(*attempt)
22 return result
23
24 except Exception as ex:
25 if isinstance(ex, TypeError):
26 if ex.position is None:
27 num_args = ex.expected
28 attempt = [None] * num_args
29 else:
30 if callable(ex.expected):
31 attempt[ex.position - 1] = ex.expected()
32 else:
33 attempt[ex.position - 1] = ex.expected
34
35 elif isinstance(ex, ValueError):
36 attempt[ex.position - 1] = ex.expected
Резултат от контролното:
18/25 верни отговора.
15 точки.
.
----------------------------------------------------------------------
Ran 1 test in 0.000s
OK
| t | 1 | RESULTS = { | t | 1 | RESULTS = { |
| 2 | "0MI0600128": { | 2 | "0MI0600128": { | ||
| 3 | "correct": "some_random_string", | 3 | "correct": "some_random_string", | ||
| 4 | "points": "another_random_string", | 4 | "points": "another_random_string", | ||
| 5 | } | 5 | } | ||
| 6 | } | 6 | } | ||
| 7 | 7 | ||||
| 8 | class LockPicker_0MI0600128: | 8 | class LockPicker_0MI0600128: | ||
| 9 | def __init__(self, lock): | 9 | def __init__(self, lock): | ||
| 10 | self.lock = lock | 10 | self.lock = lock | ||
| 11 | 11 | ||||
| 12 | def unlock(self): | 12 | def unlock(self): | ||
| 13 | attempt = [] | 13 | attempt = [] | ||
| 14 | num_args = None | 14 | num_args = None | ||
| 15 | 15 | ||||
| 16 | while True: | 16 | while True: | ||
| 17 | try: | 17 | try: | ||
| 18 | if num_args is not None: | 18 | if num_args is not None: | ||
| 19 | while len(attempt) < num_args: | 19 | while len(attempt) < num_args: | ||
| 20 | attempt.append(None) | 20 | attempt.append(None) | ||
| 21 | result = self.lock.pick(*attempt) | 21 | result = self.lock.pick(*attempt) | ||
| 22 | return result | 22 | return result | ||
| 23 | 23 | ||||
| 24 | except Exception as ex: | 24 | except Exception as ex: | ||
| 25 | if isinstance(ex, TypeError): | 25 | if isinstance(ex, TypeError): | ||
| 26 | if ex.position is None: | 26 | if ex.position is None: | ||
| 27 | num_args = ex.expected | 27 | num_args = ex.expected | ||
| 28 | attempt = [None] * num_args | 28 | attempt = [None] * num_args | ||
| 29 | else: | 29 | else: | ||
| 30 | if callable(ex.expected): | 30 | if callable(ex.expected): | ||
| 31 | attempt[ex.position - 1] = ex.expected() | 31 | attempt[ex.position - 1] = ex.expected() | ||
| 32 | else: | 32 | else: | ||
| 33 | attempt[ex.position - 1] = ex.expected | 33 | attempt[ex.position - 1] = ex.expected | ||
| 34 | 34 | ||||
| 35 | elif isinstance(ex, ValueError): | 35 | elif isinstance(ex, ValueError): | ||
| 36 | attempt[ex.position - 1] = ex.expected | 36 | attempt[ex.position - 1] = ex.expected | ||
| 37 | 37 |
| Legends | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
|
| |||||||||
| n | n | 1 | RESULTS = { | ||
| 2 | "0MI0600128": { | ||||
| 3 | "correct": "some_random_string", | ||||
| 4 | "points": "another_random_string", | ||||
| 5 | } | ||||
| 6 | } | ||||
| 7 | |||||
| 1 | class LockPicker_0MI0600128: | 8 | class LockPicker_0MI0600128: | ||
| 2 | def __init__(self, lock): | 9 | def __init__(self, lock): | ||
| 3 | self.lock = lock | 10 | self.lock = lock | ||
| 4 | 11 | ||||
| 5 | def unlock(self): | 12 | def unlock(self): | ||
| n | 6 | attempt = [] | n | 13 | attempt = [] |
| 7 | num_args = None | 14 | num_args = None | ||
| n | n | 15 | |||
| 8 | while True: | 16 | while True: | ||
| 9 | try: | 17 | try: | ||
| 10 | if num_args is not None: | 18 | if num_args is not None: | ||
| 11 | while len(attempt) < num_args: | 19 | while len(attempt) < num_args: | ||
| 12 | attempt.append(None) | 20 | attempt.append(None) | ||
| 13 | result = self.lock.pick(*attempt) | 21 | result = self.lock.pick(*attempt) | ||
| 14 | return result | 22 | return result | ||
| n | n | 23 | |||
| 15 | except Exception as ex: | 24 | except Exception as ex: | ||
| 16 | if isinstance(ex, TypeError): | 25 | if isinstance(ex, TypeError): | ||
| 17 | if ex.position is None: | 26 | if ex.position is None: | ||
| 18 | num_args = ex.expected | 27 | num_args = ex.expected | ||
| n | 19 | attempt = [None] * num_args | n | 28 | attempt = [None] * num_args |
| 20 | else: | 29 | else: | ||
| n | n | 30 | if callable(ex.expected): | ||
| 21 | attempt[ex.position - 1] = ex.expected() | 31 | attempt[ex.position - 1] = ex.expected() | ||
| 32 | else: | ||||
| 33 | attempt[ex.position - 1] = ex.expected | ||||
| 34 | |||||
| 22 | elif isinstance(ex, ValueError): | 35 | elif isinstance(ex, ValueError): | ||
| 23 | attempt[ex.position - 1] = ex.expected | 36 | attempt[ex.position - 1] = ex.expected | ||
| t | t | 37 |
| Legends | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
|
| |||||||||
13.11.2024 21:00