mirea-projects/First term/Informatics/IT-8.md
2024-09-24 02:22:33 +03:00

1.8 KiB
Executable File
Raw Permalink Blame History

Рабочая тетрадь № 6

Задачи № 1

№ 1

def function(string: str) -> str:
    half_length = len(string) // 2
    return string[:half_length][::-1] + string[half_length:][::-1]

some_string = "привет"
print(function(some_string))

№ 2

def is_valid_bracket_structure(expression: str) -> bool:
    stack = []
    bracket_pairs = {')': '(', '}': '{', ']': '['}

    for char in expression:
        if char in bracket_pairs.values():
            stack.append(char)
        elif char in bracket_pairs.keys():
            if not stack or bracket_pairs[char] != stack.pop():
                return False

    return not stack 


expression = ")(, ())((), (, )))), ((())" # "(), (())(), ()(), ((()))"
if is_valid_bracket_structure(expression):
    print("Скобочная структура правильная.")
else:
    print("Скобочная структура неправильная.")

Задачи № 2

№ 1

import random

class Warrior:
    def __init__(self, name: str, health: int = 100):
        self.name = name
        self.health = health

    def attack(self, enemy: Warrior):
        print(f"{self.name} атакует {enemy.name}")
        enemy.health -= 20
        print(f"У {enemy.name} осталось {enemy.health} единиц здоровья")


warrior1 = Warrior("Воин 1")
warrior2 = Warrior("Воин 2")

while warrior1.health > 0 and warrior2.health > 0:
    attacker = random.choice([warrior1, warrior2])
    defender = warrior2 if attacker == warrior1 else warrior1

    attacker.attack(defender)

if warrior1.health <= 0:
    print(f"{warrior2.name} одержал победу!")
elif warrior2.health <= 0:
    print(f"{warrior1.name} одержал победу!")
else:
    print("Бой окончен в ничью.")