π¨ ΠΠ°ΠΊ ΡΠΈΡΠΎΠ²Π°ΡΡ Π±Π»ΠΎΠΊ-ΡΡ Π΅ΠΌΡ Π² Python: ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ π
Π§ΡΠΎΠ±Ρ Π½Π°ΡΠΈΡΠΎΠ²Π°ΡΡ Π±Π»ΠΎΠΊ-ΡΡ Π΅ΠΌΡ Python, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ draw.io, Lucidchart ΠΈΠ»ΠΈ yEd. ΠΠ½ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π±Π»ΠΎΠΊ-ΡΡ Π΅ΠΌΡ ΠΏΡΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΊΠΈΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π±Π»ΠΎΠΊΠΎΠ².
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎΡ ΠΏΡΠΎΡΡΠ°Ρ Π±Π»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ° Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΡΠΌΠΌΡ Π΄Π²ΡΡ ΡΠΈΡΠ΅Π» Π² Python:
start
|
V
ΠΠ²ΠΎΠ΄ x
|
V
ΠΠ²ΠΎΠ΄ y
|
V
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ = x + y
|
V
ΠΡΠ²ΠΎΠ΄ Π Π΅Π·ΡΠ»ΡΡΠ°Ρ
|
V
stop
ΠΡΠ° Π±Π»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ° Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΡΠΎ ΡΡΠ°ΡΡΠΎΠ²ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°, Π·Π°ΡΠ΅ΠΌ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ Π²Π²ΠΎΠ΄ Π΄Π²ΡΡ ΡΠΈΡΠ΅Π» (x ΠΈ y), Π²ΡΡΠΈΡΠ»ΡΠ΅Ρ ΠΈΡ ΡΡΠΌΠΌΡ ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ Python, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ PyFlowchart, Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±Π»ΠΎΠΊ-ΡΡ Π΅ΠΌ ΠΏΡΡΠΌΠΎ Π² ΠΊΠΎΠ΄Π΅. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π±Π»ΠΎΠΊ-ΡΡ Π΅ΠΌΡ:
import pyflowchart
code = '''
start
|
V
ΠΠ²ΠΎΠ΄ x
|
V
ΠΠ²ΠΎΠ΄ y
|
V
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ = x + y
|
V
ΠΡΠ²ΠΎΠ΄ Π Π΅Π·ΡΠ»ΡΡΠ°Ρ
|
V
stop
'''
chart = pyflowchart.Flowchart.from_code(code)
chart.draw('flowchart.png')
ΠΡΠΎΡ ΠΊΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ PyFlowchart, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΈΠ· ΠΊΠΎΠ΄Π° Π±Π»ΠΎΠΊ-ΡΡ Π΅ΠΌΡ ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΈΡ Π² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° draw().
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΡΠΈΡΠΎΠ²Π°ΡΡ Π±Π»ΠΎΠΊ ΡΡ Π΅ΠΌΡ python
ΠΡΠ»ΠΈ Π²Ρ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΠ΅ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½Π° ΡΠ·ΡΠΊΠ΅ Python, ΡΠΎ Π±Π»ΠΎΠΊ-ΡΡ Π΅ΠΌΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²Π°ΠΌ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½Ρ. ΠΠ»ΠΎΠΊ-ΡΡ Π΅ΠΌΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ Π»ΡΡΡΠ΅ ΠΏΠΎΠ½ΡΡΡ Π΅Π΅ ΡΡΡΡΠΊΡΡΡΡ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΡΠΈΡΠΎΠ²Π°ΡΡ Π±Π»ΠΎΠΊ-ΡΡ Π΅ΠΌΡ Π½Π° Python ΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² Ρ ΠΊΠΎΠ΄ΠΎΠΌ.
1. Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±Π»ΠΎΠΊ-ΡΡ Π΅ΠΌ Π½Π° Python Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ flowchart. ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
pip install flowchart
2. ΠΠΌΠΏΠΎΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Π΅ Π² Π½Π°Ρ Python-ΡΠΊΡΠΈΠΏΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
import flowchart
3. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π±Π»ΠΎΠΊ-ΡΡ Π΅ΠΌΡ
Π§ΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π±Π»ΠΎΠΊ-ΡΡ Π΅ΠΌΡ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Flowchart ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ flowchart. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠΎΠ² ΠΈ ΡΠ²ΡΠ·Π΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ.
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΡΡΠΎΠΉ Π±Π»ΠΎΠΊ-ΡΡ Π΅ΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄Π²Π° Π±Π»ΠΎΠΊΠ° - "Π½Π°ΡΠ°Π»ΠΎ" ΠΈ "ΠΊΠΎΠ½Π΅Ρ":
chart = flowchart.Flowchart()
start_block = chart.start("ΠΠ°ΡΠ°Π»ΠΎ")
end_block = chart.end("ΠΠΎΠ½Π΅Ρ")
4. ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠ° ΡΡΠ»ΠΎΠ²ΠΈΡ
Π§Π°ΡΡΠΎ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΊΠΎΡΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ. ΠΠ»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠ° ΡΡΠ»ΠΎΠ²ΠΈΡ Π² Π±Π»ΠΎΠΊ-ΡΡ Π΅ΠΌΡ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ decision ΠΎΠ±ΡΠ΅ΠΊΡΠ° Flowchart. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ:
decision_block = chart.decision("ΠΡΠ»ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠ΅")
5. ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ
ΠΠ»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π² Π±Π»ΠΎΠΊ-ΡΡ Π΅ΠΌΡ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ action ΠΎΠ±ΡΠ΅ΠΊΡΠ° Flowchart. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ:
action_block = chart.action("ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅")
6. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ²ΡΠ·Π΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ
ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±Π»ΠΎΠΊΠΎΠ², ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ²ΡΠ·ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° connect ΠΎΠ±ΡΠ΅ΠΊΡΠ° Flowchart. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²ΡΠ·ΡΠ²Π°Π΅Ρ Π±Π»ΠΎΠΊΠΈ "Π½Π°ΡΠ°Π»ΠΎ", "ΡΡΠ»ΠΎΠ²ΠΈΠ΅" ΠΈ "Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅":
chart.connect(start_block, decision_block)
chart.connect(decision_block, action_block)
7. ΠΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π±Π»ΠΎΠΊ-ΡΡ Π΅ΠΌΡ
ΠΠΎΡΠ»Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ Π±Π»ΠΎΠΊΠΎΠ² ΠΈ ΡΠ²ΡΠ·Π΅ΠΉ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π±Π»ΠΎΠΊ-ΡΡ Π΅ΠΌΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΌΠ΅ΡΠΎΠ΄ draw ΠΎΠ±ΡΠ΅ΠΊΡΠ° Flowchart. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ:
chart.draw()
8. ΠΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Python, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΈΡΡΠ΅Ρ Π±Π»ΠΎΠΊ-ΡΡ Π΅ΠΌΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Flowchart ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ flowchart:
import flowchart
# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Flowchart
chart = flowchart.Flowchart()
# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΎΠ²
start_block = chart.start("ΠΠ°ΡΠ°Π»ΠΎ")
end_block = chart.end("ΠΠΎΠ½Π΅Ρ")
decision_block = chart.decision("ΠΡΠ»ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠ΅")
action_block = chart.action("ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅")
# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ²ΡΠ·Π΅ΠΉ
chart.connect(start_block, decision_block)
chart.connect(decision_block, action_block)
chart.connect(action_block, end_block)
# ΠΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π±Π»ΠΎΠΊ-ΡΡ
Π΅ΠΌΡ
chart.draw()
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ, ΠΊΠ°ΠΊ ΡΠΈΡΠΎΠ²Π°ΡΡ Π±Π»ΠΎΠΊ-ΡΡ Π΅ΠΌΡ Π½Π° Python Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ flowchart. ΠΡ ΠΈΠ·ΡΡΠΈΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±Π»ΠΎΠΊΠΎΠ², Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ»ΠΎΠ²ΠΈΠΉ ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ²ΡΠ·Π΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ. ΠΠ»ΠΎΠΊ-ΡΡ Π΅ΠΌΡ ΡΠ²Π»ΡΡΡΡΡ ΠΌΠΎΡΠ½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ Π΄Π»Ρ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΌΠΎΡΡ Π²Π°ΠΌ Π»ΡΡΡΠ΅ ΠΏΠΎΠ½ΡΡΡ ΡΡΡΡΠΊΡΡΡΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°.