# romashkog/python_1course architecture

> Architecture diagram of the GitHub repository romashkog/python_1course, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/romashkog/python_1course
- Repository: https://github.com/romashkog/python_1course

## Overview

This repository is a collection of independent first-year Python exercises, not a unified application. Each runnable script reads console input or a local file, performs a small calculation or interaction, and prints results. The sampled code shows geometry and vector analysis, numeric and collection exercises, and a simple tic-tac-toe loop. The README documents no broader product capabilities; unsampled exercises are not expanded into inferred workflows.

Main entry points: [`ООП_lab1/1_1/geometric_shapes.py`](https://github.com/romashkog/python_1course/blob/main/%D0%9E%D0%9E%D0%9F_lab1/1_1/geometric_shapes.py) (Shape analysis), [`ООП_lab1/1_2/vector.py`](https://github.com/romashkog/python_1course/blob/main/%D0%9E%D0%9E%D0%9F_lab1/1_2/vector.py) (Vector analysis), [`Лаб3/romashko_3_13.py`](https://github.com/romashkog/python_1course/blob/main/%D0%9B%D0%B0%D0%B13/romashko_3_13.py) (Factorial search), [`Лаб3/romashko_3_10.py`](https://github.com/romashkog/python_1course/blob/main/%D0%9B%D0%B0%D0%B13/romashko_3_10.py) (Digit transform)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_oop["OOP exercises"]
  node_shapes["Shape analysis"]
  node_vectors["Vector analysis<br/>[vector.py]"]
end

subgraph group_labs["Lab exercises"]
  node_factorial["Factorial search<br/>[romashko_3_13.py]"]
  node_digit_transform["Digit transform<br/>[romashko_3_10.py]"]
  node_point_segment["Point checks<br/>[Romashko_2_17.py]"]
  node_quadratic["Quadratic roots<br/>[Romashko_2_15.py]"]
  node_password_score["Password criteria<br/>[romashko_6_11.py]"]
  node_operator_count["Operator count<br/>[romashko_6_9.py]"]
  node_list_difference["List difference<br/>[romashko_5_10.py]"]
  node_positive_average["Positive average<br/>[romashko_5_13.py]"]
end

subgraph group_independent["Independent work"]
  node_tic_tac_toe["Tic-tac-toe"]
  node_name_counts["Name frequency"]
end

node_user(("User"))
node_inputfile["Input files"]
node_console(("Console output"))

node_inputfile -->|"reads shapes"| node_shapes
node_shapes -->|"prints extrema"| node_console
node_inputfile -->|"reads vectors"| node_vectors
node_vectors -->|"prints statistics"| node_console
node_user -->|"enters number"| node_factorial
node_factorial -->|"prints match"| node_console
node_user -->|"enters digits"| node_digit_transform
node_digit_transform -->|"prints result"| node_console
node_user -->|"enters coordinates"| node_point_segment
node_point_segment -->|"prints checks"| node_console
node_user -->|"enters coefficients"| node_quadratic
node_quadratic -->|"prints roots"| node_console
node_user -->|"enters text"| node_password_score
node_password_score -->|"prints score"| node_console
node_user -->|"enters expression"| node_operator_count
node_operator_count -->|"prints count"| node_console
node_user -->|"enters lists"| node_list_difference
node_list_difference -->|"prints difference"| node_console
node_user -->|"enters numbers"| node_positive_average
node_positive_average -->|"prints average"| node_console
node_user -->|"plays moves"| node_tic_tac_toe
node_tic_tac_toe -->|"renders board"| node_console
node_user -->|"starts script"| node_name_counts
node_name_counts -->|"prints frequent names"| node_console

click node_shapes "https://github.com/romashkog/python_1course/blob/main/%D0%9E%D0%9E%D0%9F_lab1/1_1/geometric_shapes.py"
click node_vectors "https://github.com/romashkog/python_1course/blob/main/%D0%9E%D0%9E%D0%9F_lab1/1_2/vector.py"
click node_factorial "https://github.com/romashkog/python_1course/blob/main/%D0%9B%D0%B0%D0%B13/romashko_3_13.py"
click node_digit_transform "https://github.com/romashkog/python_1course/blob/main/%D0%9B%D0%B0%D0%B13/romashko_3_10.py"
click node_point_segment "https://github.com/romashkog/python_1course/blob/main/%D0%9B%D0%B0%D0%B12/Romashko_2_17.py"
click node_quadratic "https://github.com/romashkog/python_1course/blob/main/%D0%9B%D0%B0%D0%B12/Romashko_2_15.py"
click node_password_score "https://github.com/romashkog/python_1course/blob/main/%D0%9B%D0%B0%D0%B16/romashko_6_11.py"
click node_operator_count "https://github.com/romashkog/python_1course/blob/main/%D0%9B%D0%B0%D0%B16/romashko_6_9.py"
click node_list_difference "https://github.com/romashkog/python_1course/blob/main/%D0%9B%D0%B0%D0%B15/romashko_5_10.py"
click node_positive_average "https://github.com/romashkog/python_1course/blob/main/%D0%9B%D0%B0%D0%B15/romashko_5_13.py"
click node_tic_tac_toe "https://github.com/romashkog/python_1course/blob/main/%D1%81%D0%B0%D0%BC%D0%BE%D1%81%D1%82%D1%96%D0%B9%D0%BD%D0%B0%20%D1%80%D0%BE%D0%B1%D0%BE%D1%82%D0%B0%201.py"
click node_name_counts "https://github.com/romashkog/python_1course/blob/main/%D1%81%D0%B0%D0%BC%D0%BE%D1%81%D1%82%D1%96%D0%B9%D0%BD%D0%B0%20%D1%80%D0%BE%D0%B1%D0%BE%D1%82%D0%B0%204_0.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_shapes,node_vectors,node_user toneBlue
class node_factorial,node_digit_transform,node_point_segment,node_quadratic,node_password_score,node_operator_count,node_list_difference,node_positive_average toneAmber
class node_tic_tac_toe,node_name_counts toneMint
class node_inputfile,node_console toneIndigo
```

## Components

### OOP exercises

- [Shape analysis](https://github.com/romashkog/python_1course/blob/main/%D0%9E%D0%9E%D0%9F_lab1/1_1/geometric_shapes.py): `ООП_lab1/1_1/geometric_shapes.py`
- [Vector analysis](https://github.com/romashkog/python_1course/blob/main/%D0%9E%D0%9E%D0%9F_lab1/1_2/vector.py): `ООП_lab1/1_2/vector.py`

### Lab exercises

- [Factorial search](https://github.com/romashkog/python_1course/blob/main/%D0%9B%D0%B0%D0%B13/romashko_3_13.py): `Лаб3/romashko_3_13.py`
- [Digit transform](https://github.com/romashkog/python_1course/blob/main/%D0%9B%D0%B0%D0%B13/romashko_3_10.py): `Лаб3/romashko_3_10.py`
- [Point checks](https://github.com/romashkog/python_1course/blob/main/%D0%9B%D0%B0%D0%B12/Romashko_2_17.py): `Лаб2/Romashko_2_17.py`
- [Quadratic roots](https://github.com/romashkog/python_1course/blob/main/%D0%9B%D0%B0%D0%B12/Romashko_2_15.py): `Лаб2/Romashko_2_15.py`
- [Password criteria](https://github.com/romashkog/python_1course/blob/main/%D0%9B%D0%B0%D0%B16/romashko_6_11.py): `Лаб6/romashko_6_11.py`
- [Operator count](https://github.com/romashkog/python_1course/blob/main/%D0%9B%D0%B0%D0%B16/romashko_6_9.py): `Лаб6/romashko_6_9.py`
- [List difference](https://github.com/romashkog/python_1course/blob/main/%D0%9B%D0%B0%D0%B15/romashko_5_10.py): `Лаб5/romashko_5_10.py`
- [Positive average](https://github.com/romashkog/python_1course/blob/main/%D0%9B%D0%B0%D0%B15/romashko_5_13.py): `Лаб5/romashko_5_13.py`

### Independent work

- [Tic-tac-toe](https://github.com/romashkog/python_1course/blob/main/%D1%81%D0%B0%D0%BC%D0%BE%D1%81%D1%82%D1%96%D0%B9%D0%BD%D0%B0%20%D1%80%D0%BE%D0%B1%D0%BE%D1%82%D0%B0%201.py): `самостійна робота 1.py`
- [Name frequency](https://github.com/romashkog/python_1course/blob/main/%D1%81%D0%B0%D0%BC%D0%BE%D1%81%D1%82%D1%96%D0%B9%D0%BD%D0%B0%20%D1%80%D0%BE%D0%B1%D0%BE%D1%82%D0%B0%204_0.py): `самостійна робота 4_0.py`

### Other components

- **User**
- **Input files**
- **Console output**

## Connections

- Input files → Shape analysis: reads shapes
- Shape analysis → Console output: prints extrema
- Input files → Vector analysis: reads vectors
- Vector analysis → Console output: prints statistics
- User → Factorial search: enters number
- Factorial search → Console output: prints match
- User → Digit transform: enters digits
- Digit transform → Console output: prints result
- User → Point checks: enters coordinates
- Point checks → Console output: prints checks
- User → Quadratic roots: enters coefficients
- Quadratic roots → Console output: prints roots
- User → Password criteria: enters text
- Password criteria → Console output: prints score
- User → Operator count: enters expression
- Operator count → Console output: prints count
- User → List difference: enters lists
- List difference → Console output: prints difference
- User → Positive average: enters numbers
- Positive average → Console output: prints average
- User → Tic-tac-toe: plays moves
- Tic-tac-toe → Console output: renders board
- User → Name frequency: starts script
- Name frequency → Console output: prints frequent names
