calculus 2.1 pre

Run Settings
LanguagePython
Language Version
Run Command
import random from sympy import isprime class Unit_seed: def __init__(self): self.sign = random.choice(['+', '-', '*', '/']) if self.sign == '/': self.right = random.randint(3, 20) self.left = self.right * random.randint(6, 50) else: self.left = random.randint(5, 30) self.right = random.randint(5, 30) def show(self): print(f'{self.left} {self.sign} {self.right}') def fetch(self): return [self.left, self.sign, self.right] class Unit: def __init__(self, stepdown): self.stepdown = stepdown # Предыдущий юнит, обработанный функцией fetch stepup_indices = [] for i in range(len(self.stepdown)): if type(self.stepdown[i]) == int: stepup_indices.append(i) stepup_index = random.choice(stepup_indices) print(self.stepdown[stepup_index]) if isprime(self.stepdown[stepup_index]): self.sign = random.choice(['+', '-', '/']) else: self.sign = random.choice(['+', '-', '/']) if self.sign == '/': self.right = random.randint(3, 20) self.left = self.stepdown[stepup_index] * self.right else: self.left = random.randint(-100, 100) self.right = self.stepdown[stepup_index] - self.left if self.left < 0: self.stepdown = self.stepdown[0:stepup_index] + ['(', self.left, ')', self.sign, self.right] + self.stepdown[stepup_index+1:] elif self.right < 0: self.stepdown = self.stepdown[0:stepup_index] + [self.left, self.sign, '(', self.right, ')'] + self.stepdown[stepup_index+1:] elif self.stepdown[stepup_index-1] in ['*', '/']: self.stepdown = self.stepdown[0:stepup_index] + ['(', self.left, self.sign, self.right, ')'] + self.stepdown[stepup_index+1:] else: self.stepdown = self.stepdown[0:stepup_index] + [self.left, self.sign, self.right] + self.stepdown[stepup_index+1:] try: if self.stepdown[stepup_index+1] in ['*', '/'] and self.sign in ['+', '-']: self.stepdown = self.stepdown[0:stepup_index] + ['(', self.left, self.sign, self.right, ')'] + self.stepdown[stepup_index+1:] except IndexError: pass def show(self): print(*self.stepdown) def fetch(self): return self.stepdown unit = Unit_seed() unit.show() unit1 = Unit(unit.fetch()) unit1.show() unit2 = Unit(unit1.fetch()) unit2.show()
Editor Settings
Theme
Key bindings
Full width
Lines