ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΠΏΠΈΡΠΎΠ½Π΅ ΠΏΡΠΈΠΌΠ΅Ρ: ΠΡΠΈΠΌΠ΅ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ | Python 3 Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ ΠΈ ΡΠ°ΠΉΠ½ΠΈΠΊΠΎΠ²
ΠΠΈΡΠ΅ΠΌ 3 ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Python Π·Π° ΠΏΠ°ΡΡ ΠΌΠΈΠ½ΡΡ / itProger
ΠΠΈΡΠΎΠ½ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ·ΡΠΊ ΠΈ ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΌΡ Ρ Π²Π°ΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ ΡΡΠ°Π·Ρ ΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²Π΅. ΠΠ°ΠΆΠ΄Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ, ΡΠ°ΠΊ ΡΡΠΎ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ.
#1 — ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²
ΠΠ΅ΡΠ²Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π±ΡΠ΄Π΅Ρ ΡΡΠ°Π½ΡΡΠ΅ΡΠΎΠΌ Π΄Π»Ρ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΠΎ ΠΏΠ°ΠΏΠΊΠ°ΠΌ. Π ΠΏΡΠΈΠΌΠ΅ΡΡ, ΡΠ΅ΡΠ΅Π· ΠΠΈΡΠΎΠ½ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΡΠ΅ ΡΠΈΠΏ ΡΠ°ΠΉΠ»Π° ΡΡΠΎ ΠΏΠΎΠΏΠ°Π» Π² ΠΏΠ°ΠΏΠΊΡ Β«ΠΠ°Π³ΡΡΠ·ΠΊΠΈΒ» ΠΈ Π΄Π°Π»Π΅Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅Ρ ΡΠ°ΠΉΠ» Π² ΠΏΠ°ΠΏΠΊΡ ΠΌΡΠ·ΡΠΊΠ°, ΡΠΎΡΠΎ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΈΠΏΠ° ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°.
ΠΠ»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠΏΠ΅ΡΠ²Π° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Β«watchdogΒ»:
pip install watchdog
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ Π²Π΅ΡΡ ΠΊΠΎΠ΄, ΠΎΠ½ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½ΠΈΠΆΠ΅ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠΈ:
# ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ
ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ
from watchdog.observers import Observer
import os
import time
# FileSystemEventHandler - ΠΊΠ»Π°ΡΡ ΠΏΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
from watchdog.events import FileSystemEventHandler
# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΊΠ»Π°ΡΡ Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊ, ΡΠ΅ΡΠ΅Π· Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΏΠ°ΠΏΠΊΠ°Ρ
class Handler(FileSystemEventHandler):
# ΠΡΠΈ Π»ΡΠ±ΡΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΡ
Π² ΠΏΠ°ΠΏΠΊΠ΅, ΠΌΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΠΌ ΡΠ°ΠΉΠ»Ρ Π² Π½Π΅ΠΉ
def on_modified(self, event):
# ΠΠ΅ΡΠ΅Π±ΠΈΡΠ°Π΅ΠΌ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π² ΠΏΠ°ΠΏΠΊΠ΅ folder_track
for filename in os.listdir(folder_track):
# ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΡΠ°ΡΡΠΈΡΠ΅Π½Π΅ΠΈ ΡΠ°ΠΉΠ»Π°
extension = filename.split(".")
# ΠΡΠ»ΠΈ ΡΡΠΎ ΡΠΎΡΠΎ,
if len(extension) > 1 and (extension[1].lower() == "jpg" or extension[1].lower() == "png" or extension[1].lower() == "svg"):
# ΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΠΌ ΡΠ°ΠΉΠ» Π² ΠΏΠ°ΠΏΠΊΡ Ρ ΡΠΎΡΠΎ
file = folder_track + "/" + filename
new_path = folder_dest + "/Photos/" + filename
os.rename(file, new_path)
# ΠΡΠ»ΠΈ ΡΠ°ΠΉΠ» Π²ΠΈΠ΄Π΅ΠΎ, ΡΠΎ Π² ΠΏΠ°ΠΏΠΊΡ Ρ Π²ΠΈΠ΄Π΅ΠΎ
# Π’Π°ΠΊΠΎΠ΅ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ ΠΈ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ
ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²
elif len(extension) > 1 and extension[1].lower() == "mp4":
file = folder_track + "/" + filename
new_path = folder_dest + "/Videos/" + filename
os.rename(file, new_path)
# ΠΠ°ΠΏΠΊΠ° ΡΡΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΡΡΡ
folder_track = '/ΠΠΠΠΠ«Π_ΠΠ£Π’Π¬_Π_ΠΠΠ¨ΠΠ_ΠΠΠΠΠ'
# ΠΠ°ΠΏΠΊΠ° ΠΊΡΠ΄Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡ Π±ΡΠ΄Π΅ΠΌ
folder_dest = '/ΠΠΠΠΠ«Π_ΠΠ£Π’Π¬_Π_ΠΠΠ¨ΠΠ_ΠΠΠΠΠ'
# ΠΠ°ΠΏΡΡΠΊ Π²ΡΠ΅Π³ΠΎ Π½Π° ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅
handle = Handler()
observer = Observer()
observer.schedule(handle, folder_track, recursive=True)
observer.start()
# ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π±ΡΠ΄Π΅Ρ ΡΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠ΅ 10 ΠΌΠΈΠ»ΠΈΡΠ΅ΠΊΡΠ½Π΄
try:
while(True):
time.sleep(10)
except KeyboardInterrupt:
observer.stop()
observer.join()
#2 — Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ°
ΠΠ°ΡΠ° Π²ΡΠΎΡΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΠΈΠ· ΡΠ΅Π±Ρ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π»ΠΈΡΡ Python, Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ², ΠΏΠΎ ΡΠΈΠΏΡ Django ΠΈΠ»ΠΈ Flask.
Π§ΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΊΡΡΡΠΎ, ΡΠ°ΠΊ ΡΡΠΎ ΡΠΎ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠΉ ΡΠ΅ΡΠ²Π΅Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π»ΠΈΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Python. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ ΠΈΠ· http.server
Π΄Π²Π° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΡ
ΠΊΠ»Π°ΡΡΠ°Ρ
. ΠΠ°Π»Π΅Π΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ Β«localhostΒ» ΠΈ ΠΏΠΎΡΡ ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΈ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ HTTPServer. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΡΠ΅ΡΠ²Π΅Ρ Π½Π° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.
from http.server import HTTPServer, CGIHTTPRequestHandler
server_data = ("localhost", 8080)
server = HTTPServer(server_data, CGIHTTPRequestHandler)
server.serve_forever()
Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ°ΠΉΠ» Β«index.htmlΒ» ΠΈ ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ Π² Π½Π΅ΠΌ Π²ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΊΡ. ΠΠ° ΡΡΡΠ°Π½ΠΈΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ° Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°.
#3 — Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠΌ
ΠΠ΅ΡΠ²ΠΎΠ΅ ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΠ°ΠΊ ΡΡΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Β«SeleniumΒ» ΡΠ΅ΡΠ΅Π· ΡΠ΅ΡΠΌΠΈΠ½Π°Π»:Β
pip install selenium
ΠΠ°Π»Π΅Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°ΡΠ°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π²Π΅Π± Π΄ΡΠ°ΠΉΠ²Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡ ΡΠ°Π±ΠΎΡΡ Ρ Π²Π°ΡΠΈΠΌ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠΌ. ΠΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°ΡΠ°ΡΡ Π½Π° ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ Selenium. ΠΡΠ±ΠΈΡΠ°Π΅ΡΠ΅ Π±ΡΠ°ΡΠ·Π΅Ρ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΠΎΡΠΈΡΠ΅ Π²ΡΠ΅ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ, Π΄Π°Π»Π΅Π΅ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΡ Π²Π΅ΡΡΠΈΡ ΠΈ ΡΠΊΠ°ΡΠΈΠ²Π°Π΅ΡΠ΅ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΠΏΠΎΠ΄ Π²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ.
Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΡΡΡ ΠΊ Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΡΠΊΡΡΡΠΈΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ:
from selenium import webdriver
browser = webdriver.Chrome('/ΠΠ£Π’Π¬_Π_ΠΠΠΠΠ_Π‘_ΠΠ ΠΠΠΠΠ ΠΠ/chromedriver')
browser.get("https://itproger.com")
ΠΠΈΠ΄Π΅ΠΎ Π½Π° ΡΡΡ ΡΠ΅ΠΌΡ
Π’Π°ΠΊΠΆΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π²ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π²ΡΠ΅Ρ ΡΡΠΈΡ ΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ:
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΡΡΡ
ΠΠ° Π½Π°ΡΠ΅ΠΌ ΡΠ°ΠΉΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ Π΅ΡΡΡ ΡΠ³Π»ΡΠ±Π»Π΅Π½Π½ΡΠΉ ΠΊΡΡΡ ΠΏΠΎ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΡΠ·ΡΠΊΠ° ΠΠΈΡΠΎΠ½. Π Ρ ΠΎΠ΄Π΅ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²Ρ ΠΈΠ·ΡΡΠΈΡΠ΅ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ·ΡΠΊ ΠΠΈΡΠΎΠ½, Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ Π½Π°ΡΡΠΈΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π²Π΅Π± ΡΠ°ΠΉΡΡ Π·Π° ΡΡΡΡ Π²Π΅Π± ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° ΠΠΆΠ°Π½Π³ΠΎ. ΠΠ° ΠΊΡΡΡ Π²Ρ ΠΈΠ·ΡΡΠΈΡΠ΅ ΠΌΠ°ΡΡΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΈ ΠΊ ΠΊΠΎΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π±ΡΠ΄Π΅ΡΠ΅ ΡΠΌΠ΅ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ·ΡΠΊΠΎΠΌ ΠΠΈΡΠΎΠ½, ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½Π° Π½ΡΠΌ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΠ΅ ΠΠ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Kivy, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π²Π΅Π± ΡΠ°ΠΉΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΠΆΠ°Π½Π³ΠΎ.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°-ΠΌΠ΅ΡΡΠ° Π½Π°ΡΠΈΠ½Π°ΡΡΠ΅Π³ΠΎ ΠΏΠΈΡΠΎΠ½ΠΎΠ²ΠΎΠ΄Π° / Π₯Π°Π±Ρ
ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π»ΡΠ±ΠΎΠΉ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ Π½Π° Python ΠΏΠ°ΡΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠ°ΡΠ°Π΅ΡΡΡ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΠΉ ΡΠ°Ρ. Π Π΅ΡΠ»ΠΈ Π΅ΡΠ΅ ΠΈ Ρ GUI, ΡΠΎ ΡΡΠ° ΠΏΡΠΎΡΠ°ΠΌΠΌΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠ΅Π΄Π΅Π»ΠΎΠΌ ΠΌΠ΅ΡΡΠ°Π½ΠΈΠΉ.
Π§ΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ Π²Π²Π΅Π΄Π΅Π½ΠΈΡ
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π²Π²Π΅Π΄Π΅ΠΌ Π² Π½Π°ΡΡ Π·Π°Π΄Π°ΡΡ Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ»ΠΎΠ²Π½ΠΎΡΡΠ΅ΠΉ β ΠΏΠΈΡΠ΅ΠΌ ΠΌΡ ΡΠ°Ρ Π΄Π»Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Π½ΡΠΌΠΈ ΡΠΈΡΠΎΠΊΠΎΠ²Π΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ UDP-ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ. ΠΠ»Ρ ΠΏΡΠΎΡΡΠΎΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ ΡΠ°ΠΊ ΠΆΠ΅ ΡΠ΅ΡΠΈΠΌ, ΡΡΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ GUI Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Tkinter(ΠΎΠ±ΡΡΠ½ΠΎ Π² Π΄ΠΈΡΡΡΠΈΠ±ΡΡΡΠΈΠ²Π°Ρ Linux ΠΎΠ½Π° ΠΈΠ΄Π΅Ρ ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ, ΡΠ°ΠΊ ΠΆΠ΅ ΠΈ Π² ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ±ΠΎΡΠΊΠ΅ Python ΠΏΠΎΠ΄ Windows ΠΎΠ½Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ).
ΠΠ°ΠΏΠΈΡΠΎΠ½ΠΈΠΌ ΡΠ΅ΡΡ
Π Π°Π±ΠΎΡΠ° Ρ ΡΠΎΠΊΠ΅ΡΠ°ΠΌΠΈ Π² ΠΏΠΈΡΠΎΠ½Π΅ Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ(ΠΏΠΎ Π±ΠΎΠ»ΡΡΠΎΠΌΡ ΡΡΠ΅ΡΡ Π΄Π°ΠΆΠ΅ ΠΏΠΎΠ΄ PyS60 ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΠ°Π±ΠΎΡΠΈΠΉ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΊΠΎΠ΄, ΠΏΠΎ ΡΡΠΎΠΌΡ ΠΏΡΠΈΠΌΠ΅ΡΡ).
ΠΠ»Ρ Π½Π°ΡΠ΅Π³ΠΎ ΡΠ°ΡΠ° ΠΌΡ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΡΠΎΠΊΠΎΠ²Π΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠ΅ UDP-ΠΏΠ°ΠΊΠ΅ΡΡ. ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΡΠΈΡΠΈΠ½ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π±ΡΠ»Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠΊΠ°Π·Π°ΡΡΡΡ ΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΈΠ½ΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄Π½Ρ ΡΡΠ»ΠΎΠ²Π½ΠΎΡΡΡ Π² Π½Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ β Π½ΠΎΠΌΠ΅Ρ ΠΏΠΎΡΡΠ°, ΠΈ ΠΏΡΡΡΡ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΠ°Π²Π΅Π½ 11719, Π²ΠΎ ΠΏΠ΅ΡΠ²ΡΡ , ΡΡΠΎ ΠΏΡΠΎΡΡΠΎΠ΅ ΡΠΈΡΠ»ΠΎ(Π° Π²Π΅Π΄Ρ ΡΡΠΎ ΡΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠ΅). Π, Π²ΠΎ Π²ΡΠΎΡΡΡ , ΡΡΠΎΡ ΠΏΠΎΡΡ, ΠΏΠΎ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ IANA, Π½Π΅ Π·Π°Π½ΡΡ.
Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠ»ΡΡΠ°ΡΡΠΈΠΉ ΡΠΎΠΊΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠ°Π΄ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΏΡΠΈΡ ΠΎΠ΄ΡΡΠΈΠΌΠΈ Π½Π° Π½Π΅Π³ΠΎ:
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
s.bind(('0.0.0.0',11719))
while 1:
message = s.recv(128)
print (message)
Π£ ΡΠΎΠΊΠ΅ΡΠ° ΠΌΡ Π²ΡΡΡΠ°Π²ΠΈΠ»ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° SO_REUSEADDR(ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ Β«ΡΠ»ΡΡΠ°ΡΡΒ» ΡΠΎΠΊΠ΅Ρ) ΠΈ SO_BROADCAST(ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΏΠ°ΠΊΠ΅ΡΡ Π±ΡΠ΄ΡΡ ΡΠΈΡΠΎΠΊΠΎΠ²Π΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠ΅) Π² Π·Π½Π°ΡΠ½ΠΈΠ΅ ΠΈΡΡΠΈΠ½Ρ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΠΈΡΡΠ΅ΠΌΠ°Ρ
Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΡΠ°Π±ΠΎΡΠ° ΡΠΊΡΠΈΠΏΡΠ° ΠΈ Π±Π΅Π· ΡΡΠΈΡ
ΡΡΡΠΎΡΠ΅ΠΊ, Π½ΠΎ Π²ΡΠ΅ ΠΆΠ΅ Π»ΡΡΡΠ΅ ΡΠ²Π½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΡΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°.
ΠΠ° ΠΏΡΠΎΡΠ»ΡΡΠΊΡ ΠΌΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ ΠΊ Π°Π΄ΡΠ΅ΡΡ ‘0.0.0.0’ β ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°ΡΡΡΡ Π²ΠΎΠΎΠ±ΡΠ΅ Π²ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ. ΠΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π² ΠΏΠΎΠ»Π΅ Π°Π΄ΡΠ΅ΡΠ° ΠΈ ΠΏΡΠΎΡΡΠΎ ΠΏΡΡΡΡΠ΅ ΠΊΠ°Π²ΡΡΠΊΠΈ, Π½ΠΎ Π²ΡΠ΅ ΠΆΠ΅ Π»ΡΡΡΠ΅ ΡΠ²Π½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π°Π΄ΡΠ΅Ρ.
Π’Π°ΠΊ ΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠΈΡΠΎΠΊΠΎΠ²Π΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΡ Β«Π·Π°ΡΠΈΡΠ°Π»ΠΊΡΒ» ΡΠ΅ΡΠΈ(Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ):
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
while 1:
sock.sendto('broadcast!',('255.255.255.255',11719))
Π ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΈ ΠΆΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° Π»ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΡΠΈΡ SO_BROADCAST(Π·Π°ΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Π° Π½Π° Π²ΡΠ΅Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ ) ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° sendto() ΠΌΡ ΡΠ°ΡΡΡΠ»Π°Π΅ΠΌ ΠΏΠΎ Π²ΡΠ΅ΠΉ ΡΠ΅ΡΠΈ Π½Π°ΡΠΈ ΠΏΠ°ΠΊΠ΅ΡΡ. ΠΡΡΠ°Π½ΠΎΠ²ΠΈΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ CTRL+C ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΡΠ»ΡΠ΄ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°.
ΠΠΊΠ½Π°, ΠΎΠΊΠ½Π°, ΠΎΠΊΠ½Π°
Tkinter β Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅, ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΏΡΠΎΡΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠΊΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π½Π° ΠΏΠΈΡΠΎΠ½Π΅(Π° Π΅ΡΠ΅ ΠΏΠΎ Π·Π°ΡΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΠ·Π΄Π°ΡΠ΅Π»Ρ ΠΏΠΈΡΠΎΠ½Π° ΠΎΠ½Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ°ΠΌΡΡ Π½Π°Π΄Π΅ΠΆΠ½ΡΡ ΠΈ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΡ ). ΠΠΎ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠ΅Π³ΠΎ ΠΏΠΈΡΠΎΠ½ΠΎΠ²ΠΎΠ΄Π° Π³Π»Π°Π²Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ ΠΆΠ΅, ΡΡΠΎ ΡΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΡΠΎΡΡΠ°Ρ.
Π Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠΎΡΡΠΎ ΠΎΠΊΠ½ΠΎ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ Π½Π°ΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΈ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ ΠΎΡ Π½Π°Ρ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π»ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΡΠ΅ΠΊ ΠΊΠΎΠ΄Π°:
from Tkinter import *
tk=Tk()
tk.title('MegaChat')
tk.geometry('400x300')
tk.mainloop()
ΠΡΠ΅ Π±Ρ Π½ΠΈΡΠ΅Π³ΠΎ, Π½ΠΎ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ, Π½Π΅ Π³Π°Π»Π΅ΡΠ΅Ρ ΠΎΠΊΠΎΠ½ ΡΠ°Π·Π½ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ², Π° ΡΠ°Ρ. Π Π·Π½Π°ΡΠΈΡ Π½Π°ΠΌ Π½ΡΠΆΠ½Ρ Π½Π° ΠΎΠΊΠ½Π΅ Π΅ΡΠ΅ ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ β Π»ΠΎΠ³ ΡΠ°ΡΠ°, ΠΏΠΎΠ»Π΅, Π³Π΄Π΅ ΠΌΡ ΡΠΊΠ°ΠΆΠ΅ΠΌ ΡΠ²ΠΎΠΉ Π½ΠΈΠΊ ΠΈ ΡΠ΅ΠΊΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Π²Π²ΠΎΠ΄ΠΈΠΌ. ΠΠ΅Π· ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ, Π΅ΡΠ»ΠΈ Π½Π°ΡΠ΅ ΠΏΠΎΠ»Π΅ Π΄Π»Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΌΠΎ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ Π½Π° Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠΈ Enter.
Π Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΠΎΡΠ΅, ΡΠ΅ΠΌ ΠΊΠ°ΠΆΠ΅ΡΡΡ. ΠΠ»Ρ Π»ΠΎΠ³Π° ΡΠ°ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΠΈΠ΄ΠΆΠ΅Ρ Text, Π° Π΄Π»Ρ Π΄Π²ΡΡ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ Entry. ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π½Π° ΡΠΎΡΠΌΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΡΠΈΠΊ pack, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π΅ΠΌΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΡΠ°ΡΡΡΠ°Π²Π»ΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ²Π½ΠΎΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΡΠΊΠ°Π·Π°Π½ΠΈΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΡΠΎΡΠΎΠ½Ρ ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΊΡΠ΅ΠΏΠΈΡΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΡ, ΡΠ°ΡΡΠΈΡΡΡΡ Π»ΠΈ ΠΈΡ ΠΈ Π² ΠΊΠ°ΠΊΡΡ ΡΡΠΎΡΠΎΠ½Ρ, ΠΈ Π΅ΡΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ.
from Tkinter import *
tk=Tk()
tk.title('MegaChat')
tk.geometry('400x300')
log = Text(tk)
nick = Entry(tk)
msg = Entry(tk)
msg.pack(side='bottom', fill='x', expand='true')
nick.pack(side='bottom', fill='x', expand='true')
log.pack(side='top', fill='both',expand='true')
tk.mainloop()
Π ΡΡΠΎ ΠΆΠ΅ Π΄ΠΎ ΡΠ²ΡΠ·ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ? ΠΠ»ΠΈ ΠΊΠ°ΠΊ Π·Π°ΡΡΠ°Π²ΠΈΡΡ Π² ΡΠΎΠ½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΊΠ°ΠΊΡΡ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ? ΠΡ Entry ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΡΠ·Π°ΡΡ Ρ StingVar’Π°ΠΌΠΈ(ΡΠΊΠ°Π·Π°Π² Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ² ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ textvariable). Π° Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΠΎΠ½ΠΎΠ²ΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π΅ΡΡΡ Ρ Tkinter’Π° ΠΌΠ΅ΡΠΎΠ΄ after(<Π²ΡΠ΅ΠΌΡ Π² ΠΌΡ>,<ΡΡΠ½ΠΊΡΠΈΡ>). ΠΡΠ»ΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π΅Π΅, ΡΠΎ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ, ΠΏΠΎΠΊΠ° Π·Π°ΠΏΡΡΠ΅Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°.
ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π°ΠΆΠ°ΡΠΈΠΉ ΠΊΠ»Π°Π²ΠΈΡ ΠΈ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ:
from Tkinter import *
tk=Tk()
text=StringVar()
name=StringVar()
name.set('HabrUser')
text.set('')
tk.title('MegaChat')
tk.geometry('400x300')
log = Text(tk)
nick = Entry(tk, textvariable=name)
msg = Entry(tk, textvariable=text)
msg.pack(side='bottom', fill='x', expand='true')
nick.pack(side='bottom', fill='x', expand='true')
log.pack(side='top', fill='both',expand='true')
def loopproc():
print ('Hello '+ name.get() + '!')
tk.after(1000,loopproc)
tk.after(1000,loopproc)
tk.mainloop()
Π ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Π·Π°Π±Π΅Π³Π°Π»ΠΎ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΠΈΠ΅. ΠΠ΅Π½ΡΡ Π½ΠΈΠΊ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ±Π΅Π΄ΠΈΡΡΡ, ΡΡΠΎ ΡΠ²ΡΠ·Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΠ»Π΅ΠΌ Entry ΠΈ Π½Π°ΡΠ΅ΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ. Π‘Π°ΠΌΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ Π½Π° Enter. Π Π΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ΡΡΠΎ Π΅ΡΠ΅ ΠΏΡΠΎΡΠ΅, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° bind(<Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅>, <ΡΡΠ½ΠΊΡΠΈΡ>) Ρ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ². ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅, ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΡΠ΅ΡΡΡ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ event. ΠΠ° ΠΎΠ΄Π½ΠΎ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΠ΅ΠΌ Ρ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π² ΠΏΠΎΠ»Π΅ Π»ΠΎΠ³Π°. ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ:
from Tkinter import *
tk=Tk()
text=StringVar()
name=StringVar()
name.set('HabrUser')
text.set('')
tk.title('MegaChat')
tk.geometry('400x300')
log = Text(tk)
nick = Entry(tk, textvariable=name)
msg = Entry(tk, textvariable=text)
msg.pack(side='bottom', fill='x', expand='true')
nick.pack(side='bottom', fill='x', expand='true')
log.pack(side='top', fill='both',expand='true')
def loopproc():
log.insert (END,'Hello '+ name.get() + '!\n')
tk.after(1000,loopproc)
def sendproc(event):
log.insert (END,name.get()+':'+text.get()+'\n')
text.set('')
msg.bind('<Return>',sendproc)
tk.after(1000,loopproc)
tk.mainloop()
ΠΠΎΡΡΠΈ Π³ΠΎΡΠΎΠ²ΠΎ…
Π ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ ΠΎΡΡΠ°Π»ΠΎΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠ· ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΈ Π²ΡΠΎΡΠΎΠΉ ΡΠ°ΡΡΠ΅ΠΉ ΡΡΠ°ΡΡΠΈ ΠΈ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ Π³ΠΎΡΠΎΠ²ΡΠΉ ΡΠ°Ρ. Π§ΡΠΎ ΠΆ, ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠ°Π·Ρ ΡΠΊΠ°ΠΆΡ, ΡΡΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ β ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΡΠΈ ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°Π½ΠΈΠΈ ΡΠΈΡΠΎΠΊΠΎΠ²Π΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠ°ΡΠΈΠΊΠ° ΠΌΡ ΠΈΡ ΠΈ ΡΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΠΌ.
import socket
from Tkinter import *
tk=Tk()
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
s.bind(('0.0.0.0',11719))
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST,1)
text=StringVar()
name=StringVar()
name.set('HabrUser')
text.set('')
tk.title('MegaChat')
tk.geometry('400x300')
log = Text(tk)
nick = Entry(tk, textvariable=name)
msg = Entry(tk, textvariable=text)
msg.pack(side='bottom', fill='x', expand='true')
nick.pack(side='bottom', fill='x', expand='true')
log.pack(side='top', fill='both',expand='true')
def loopproc():
message = s.recv(128)
log.insert(END,message)
tk.after(1,loopproc)
def sendproc(event):
sock.sendto (name.get()+':'+text.get(),('255.255.255.255',11719))
text.set('')
msg.bind('<Return>',sendproc)
tk.after(1,loopproc)
tk.mainloop()
ΠΠ΄Π½Π°ΠΊΠΎ, ΡΡΠ΄Π° Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π°ΠΌΠ΅ΡΡΠ²ΠΎ Π²ΡΡΠ°Π»Π° Π² ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ Π²Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°. Π€ΠΎΠ½ΠΎΠ²ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΎΠΊΠ°Π·Π°Π»ΡΡ Π½Π΅ ΡΠ°ΠΊΠΈΠΌ ΡΠΆ ΠΈ ΡΠΎΠ½ΠΎΠ²ΡΠΌ ΠΈ Π΄Π»Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠ½ΠΎΠ³Π΄Π° Π·Π°Π²Π΅ΡΡΠ°ΡΡΡΡ. Π§ΡΠΎΠ±Ρ ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΠ»ΠΎ ΡΠ»ΡΡΠ°ΡΡΠΈΠΉ ΡΠΎΠΊΠ΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ Π² Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΠΉ ΡΠ΅ΠΆΠΈΠΌ ΠΈ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΌΡ Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Π»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΊΠΎΠ³Π΄Π° Π² ΡΠΎΠΊΠ΅ΡΠ΅ ΠΏΡΡΡΠΎ ΠΎΠ³ΡΠ°Π΄ΠΈΠΌ ΡΡΠΎΡ ΠΊΡΡΠΎΠΊ ΠΊΠΎΠ΄Π° try’Π΅ΠΌ.
import socket
from Tkinter import *
tk=Tk()
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
s.bind(('0.0.0.0',11719))
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST,1)
text=StringVar()
name=StringVar()
name.set('HabrUser')
text.set('')
tk.title('MegaChat')
tk.geometry('400x300')
log = Text(tk)
nick = Entry(tk, textvariable=name)
msg = Entry(tk, textvariable=text)
msg.pack(side='bottom', fill='x', expand='true')
nick.pack(side='bottom', fill='x', expand='true')
log.pack(side='top', fill='both',expand='true')
def loopproc():
s.setblocking(False)
try:
message = s.recv(128)
log.insert(END,message+'\n')
except:
tk.after(1,loopproc)
return
tk.after(1,loopproc)
return
def sendproc(event):
sock.sendto (name.get()+':'+text.get(),('255.255.255.255',11719))
text.set('')
msg.bind('<Return>',sendproc)
tk.after(1,loopproc)
tk.mainloop()
Β«Π ΠΏΠΎΡΠ»Π΅ Π΄ΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°ΠΏΠΈΠ»ΡΠ½ΠΈΠΊΠΎΠΌ…Β»
Π§ΠΈΡΡΠΎ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π΅Π½, Π½ΠΎ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²Π΅ΡΠΎΠΌΡΠΌΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠ°ΠΌΠΈ β ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΡΠ°Π·Ρ Π½Π΅ Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΊΠΈΡΠΈΠ»ΠΈΡΠ΅ΠΉ ΠΈ Π»ΠΎΠ³ ΡΠ°ΠΌ Π½Π΅ ΠΏΡΠΎΠΊΡΡΡΠΈΠ²Π°Π΅ΡΡΡ Π²Π½ΠΈΠ·. Π Π΅ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ ΡΡΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ Π»ΠΈΡΡΠΈΠ½Π³Π°(ΠΌΠ΅ΡΡΠΎ, Π³Π΄Π΅ ΡΠ΅ΡΠ°Π΅ΡΡΡ Π²ΠΎΠΏΡΠΎΡ ΠΊΠΈΡΠΈΠ»Π»ΠΈΡΡ Π²ΡΠ΄Π΅Π»ΠΈΠ», ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅ Π½Π°Π΄Π΅ΡΡΡ ΠΈ ΡΠ°ΠΊ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ):
# -*- coding: utf-8 -*-
import socket
from Tkinter import *
#Π Π΅ΡΠ°Π΅ΠΌ Π²ΠΎΠΏΡΠΎΡ Ρ ΠΊΠΈΡΠΈΠ»ΠΈΡΠ΅ΠΉ
reload(sys)
sys.setdefaultencoding('utf-8')
#-----------------------------
tk=Tk()
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
s.bind(('0.0.0.0',11719))
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST,1)
text=StringVar()
name=StringVar()
name.set('HabrUser')
text.set('')
tk.title('MegaChat')
tk.geometry('400x300')
log = Text(tk)
nick = Entry(tk, textvariable=name)
msg = Entry(tk, textvariable=text)
msg.pack(side='bottom', fill='x', expand='true')
nick.pack(side='bottom', fill='x', expand='true')
log.pack(side='top', fill='both',expand='true')
def loopproc():
log.see(END)
s.setblocking(False)
try:
message = s.recv(128)
log.insert(END,message+'\n')
except:
tk.after(1,loopproc)
return
tk.after(1,loopproc)
return
def sendproc(event):
sock.sendto (name.get()+':'+text.get(),('255.255.255.255',11719))
text.set('')
msg.bind('<Return>',sendproc)
msg.focus_set()
tk.after(1,loopproc)
tk.mainloop()
P.S. Π Π½Π΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅ β Π΄Π»ΠΈΠ½Π° ΠΏΠΈΡΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ Π΄ΠΎΡΡΠΈΠ³Π°ΡΡ 9-10 ΠΌΠ΅ΡΡΠΎΠ².
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° Python
Π ΡΡΠΎΠΌ ΡΡΠΎΠΊΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Python ΡΠ²ΠΎΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Ρ .exe ΡΠ°ΠΉΠ»ΠΎΠΌ.
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² GUI
GUI (Graphical user interface) — Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. Π‘ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ½ΡΡΠΈΡ ΠΌΡ ΠΈ Π½Π°ΡΠ½Π΅ΠΌ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΡΠΊΡΡΡΡΡ ΡΠΌΡΡΠ»ΠΎΠ² Π·Π΄Π΅ΡΡ Π½Π΅Ρ ΠΈ GUI — ΡΡΠΎΒ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π»Ρ Π²ΡΠ΅Ρ Π²Π°ΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ.
Π’ΠΎ Π΅ΡΡΡ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² ΡΠΎΠΌ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠΌ Π²ΠΈΠ΄Π΅. ΠΠΎ ΡΡΠΎΠ±Ρ Π²Π°Ρ ΠΊΠΎΠ΄ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π» Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ.
Π «ΠΏΠΈΡΠΎΠ½Π΅» Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ Π½Π° Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ²ΠΎΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Tkinter — Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ GUIΒ Π΄Π»Ρ Python. ΠΠ½ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅ «ΠΏΠΈΡΠΎΠ½ΠΎΠΌ».
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ PyQT, Kivy (Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΡΡΠΈ, ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΠ ΠΏΠΎΠ΄ apk, exe ΠΈΠ»ΠΈ MAC). ΠΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΡ — kivy.org.
Π ΡΡΠΎΠΌ ΡΡΠΎΠΊΠ΅ Ρ ΡΠΎΠ±ΠΈΡΠ°ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Tkinter. Π£Π΄ΠΎΠ±Π½Π°Ρ Π²Π΅ΡΡ Π² Python ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ Π² ΡΠ²ΠΎΠΉ ΡΠ°ΠΉΠ». Π’ΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Tkinter, Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ #include Π² C.
from Tkinter import * import Tkinter import tkMessageBox top = Tk() L1 = Label(top, text="HI") L1.pack( side = LEFT) E1 = Entry(top, bd =5) E1.pack(side = RIGHT) B=Button(top, text ="Hello",) B.pack() top.mainloop()
ΠΠ΄Π΅ΡΡ Tk() ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΠΊΠ»Π°ΡΡΡ Π² ΠΌΠΎΠ΄ΡΠ»Π΅ Tkinter, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ, ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡ Π² top. Label — ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ ΠΏΠ΅ΡΠ°ΡΠΈ ΡΠ΅ΠΊΡΡΠ°, Entry — Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΡΡΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ, Button — Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ.
pack — ΡΡΠΎ ΠΊΠ»ΡΡ Π΄Π»Ρ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ Π²ΡΠ΅Π³ΠΎ Π² ΠΌΠ°ΠΊΠ΅Ρ. mainloop ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ Π²ΡΠ΅ Π²ΠΈΠ΄ΠΈΠΌΡΠΌ, ΠΏΠΎΠΊΠ° Π²Ρ Π½Π΅ Π·Π°ΠΊΡΠΎΠ΅ΡΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ.
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡ
ΠΡΡΠ΅ ΠΌΡ ΡΠ²ΠΈΠ΄Π΅Π»ΠΈ ΠΏΡΠΎΡΡΠΎΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Ρ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΈ ΠΏΠΎΠ»ΡΠΌΠΈ. ΠΡΠΈΡΡΡΠΏΠΈΠΌ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡΠ° Python.
Π‘ΡΠ°Π·Ρ ΡΠΊΠ°ΠΆΡ, ΡΡΠΎ ΡΡΠΈΠ»Ρ ΠΊΠΎΠ΄Π°, Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½Ρ ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ n-ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π°, Π½ΠΎ Π·Π΄Π΅ΡΡ ΠΌΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΎΡΠΈΠΌ ΠΏΠΎΠ½ΡΡΡ ΡΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΠ, Π° Π½Π΅ Π²ΡΡΡΠΈΡΡ Π²ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄Π°.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ GUI
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΠΊΠΎΠ΄Ρ, ΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ-ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡΠ°. ΠΠ»Ρ Π±ΠΎΠ»Π΅Π΅ Π»Π΅Π³ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Ρ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΈ 4 ΡΡΡΠΎΡΠΊΠΈ Π΄Π»Ρ Π²Π²ΠΎΠ΄Π°.
ΠΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Π²ΡΡΠ΅ ΠΈ Π²ΠΎΠ·ΡΠΌΠ΅ΠΌ ΠΎΡΡΡΠ΄Π° label, entry ΠΈ button.
from Tkinter import * import Tkinter import tkMessageBox top = Tkinter.Tk() L1 = Label(top, text="My calculator",).grid(row=0,column=1) L2 = Label(top, text="Number 1",).grid(row=1,column=0) L3 = Label(top, text="Number 2",).grid(row=2,column=0) L4 = Label(top, text="Operator",).grid(row=3,column=0) L4 = Label(top, text="Answer",).grid(row=4,column=0) E1 = Entry(top, bd =5) E1.grid(row=1,column=1) E2 = Entry(top, bd =5) E2.grid(row=2,column=1) E3 = Entry(top, bd =5) E3.grid(row=3,column=1) E4 = Entry(top, bd =5) E4.grid(row=4,column=1) B=Button(top, text ="Submit",).grid(row=5,column=1,) top.mainloop()
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ
Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ Π²Π²ΠΎΠ΄Π° 2 ΡΠΈΡΠ΅Π» ΠΈ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΎΡΠ²Π΅Ρ.
ΠΠ°ΡΠ½Π΅ΠΌ Ρ ΠΊΠ½ΠΎΠΏΠΊΠΈ Submit (ΡΠΌ. ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡΠ° Π²ΡΡΠ΅).
ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ Π΄Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΊΠ½ΠΎΠΏΠΊΠ΅, ΡΠΎΠ·Π΄Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ.
B=Button(top, text ="Submit", command =processing).grid(row=5,column=1) def process(): number1=Entry.get(E1) number2=Entry.get(E2) operator=Entry.get(E3)
ΠΠ°Π·ΡΠ²Π°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ process, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΡΠ»Π΅ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΏΡΠΎΡΡΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ Π·Π° Π΄Π°Π½Π½ΡΠΌΠΈ ΠΊ Π½Π°ΡΠΈΠΌ ΡΡΡΠΎΠΊΠ°ΠΌ Π²Π²ΠΎΠ΄Π°Β ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π²Π²Π΅Π΄Π΅Π½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ. ΠΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΌΡ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ Π² number1, number2, operator.
ΠΡΠΎΡΠ΅ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ
ΠΠ° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ Π²Π²ΠΎΠ΄, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΡΠΎΠΊΠΎΠΉ.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ ΠΌΡ ΡΡΡΠΎΠΊΠΎΠ²ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠ±ΠΎΡΠ°ΡΠΈΠ²Π°Π΅ΠΌ Π² int.
number1 = int(number1) number2 = int(number2)
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π΅ΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° — ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, + — * /) Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ.
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎΠ΅ — ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ»ΠΎΠ²Π½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ifΒ ΠΈ Π΄Π΅Π»Π°ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π²Π½ΡΡΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΉ.
number1=int(number1) number2=int(number2) if operator == "+&quΡot;: answer = number1 + number2 if operator == "-": answer = number1 - number2 if operator == "*": answer= number1 * number2 if operator == "/": answer = number1 / number2
Π‘ΡΡΠΎΠΊΠ° Π² Python ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ » « ΠΈΠ»ΠΈ ‘ ‘,Β ΡΠΎ Π΅ΡΡΡ Π·Π΄Π΅ΡΡ Π² if ΠΌΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΡΡΡΠΎΠΊΠΎΠ²ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ answer.
Π’Π΅ΠΏΠ΅ΡΡ, Π½Π°ΠΊΠΎΠ½Π΅Ρ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π²ΡΠ²ΠΎΠ΄:
Entry.insert(E4,0,answer)
ΠΠΎΠ΄ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
from Tkinter import * import Tkinter import tkMessageBox def process(): number1=Entry.get(E1) number2=Entry.get(E2) operator=Entry.get(E3) number1=int(number1) number2=int(number2) if operator =="+": answer=number1+number2 if operator =="-": answer=number1-number2 if operator=="*": answer=number1*number2 if operator=="/": answer=number1/number2 Entry.insert(E4,0,answer) print(answer) top = Tkinter.Tk() L1 = Label(top, text="My calculator",).grid(row=0,column=1) L2 = Label(top, text="Number 1",).grid(row=1,column=0) L3 = Label(top, text="Number 2",).grid(row=2,column=0) L4 = Label(top, text="Operator",).grid(row=3,column=0) L4 = Label(top, text="Answer",).grid(row=4,column=0) E1 = Entry(top, bd =5) E1.grid(row=1,column=1) E2 = Entry(top, bd =5) E2.grid(row=2,column=1) E3 = Entry(top, bd =5) E3.grid(row=3,column=1) E4 = Entry(top, bd =5) E4.grid(row=4,column=1) B=Button(top, text ="Submit",command = process).grid(row=5,column=1,) top.mainloop()
ΠΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ ΠΊΠΎΠ΄ Π½Π°ΡΠ΅Π³ΠΎ ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡΠ°.
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ
ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π·Π²ΡΡΠΈΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠΌ? ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎ Π½Π΅Ρ, Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΆΠΈΠ²Π°ΠΉΡΠ΅. ΠΡ Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π½ΡΡ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ².
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π²Ρ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΡΡΠΎΡ ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡ ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ Π΅Π³ΠΎ Π΄ΡΡΠ³Ρ. ΠΡΡΠ³ Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π²Π²ΠΎΠ΄ΠΈΡΡ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π²Π²ΠΎΠ΄ΠΈΡ Π±ΡΠΊΠ²Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ°ΠΌ Π³Π΄Π΅ ΡΠΈΡΡΡ. Python Π²ΡΠ΄Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ ΠΈ ΡΡΠ°Π·Ρ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ.
ΠΠ΄Π΅ΡΡ ΠΈΠ΄Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Python, ΡΠ°ΠΊΠΆΠ΅ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ ΠΈ Π½Π° Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΠ°Ρ Π²ΡΠ΄Π°Π΅ΡΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π°ΡΡΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ.
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΏΡΠΎΡΡΡΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π² Π½Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅:
def proces(): try: number1=Entry.get(E1) number2=Entry.get(E2) operator=Entry.get(E3) number1=int(number1) number2=int(number2) if operator =="+": answer=number1+number2 if operator =="-": answer=number1-number2 if operator=="*": answer=number1*number2 if operator=="/": answer=number1/number2 Entry.insert(E4,0,answer) print(answer) except ValueError: tkMessageBox.showwarning("Warning","Please enter the value in integer")
ΠΠ΄Π΅ΡΡ ΠΌΡ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΠΏΡΠΎΡΡΠΎΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Ρ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ. tkMessageBox.showwarning — ΡΡΠΎ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π΄Π»Ρ Tkinter, Π³Π΄Π΅ Π² ΡΠΊΠΎΠ±ΠΊΠ°Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ EXE
ΠΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Python, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ ΠΏΠΎΡΠ»Π΅ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ. ΠΠΎ Π΅ΡΡΡ ΠΎΠ΄Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° — ΡΡΠΎ Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΡΠ²ΠΎΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Python Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ? Π£ Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Python, Π½ΠΎ ΡΠ°ΡΡΠΎ ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π΄Π΅Π»Π°Π½ΠΈΡ ΡΠ°ΡΠΊΡΡΡΡ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄ ΠΈ ΡΠΎΠ³Π΄Π° Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ *.exe — ΡΠ°ΠΉΠ».
Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ *.exe Π²Π΅ΡΡΠΈΡ ΠΈΠ»ΠΈ Apk (Π΄Π»Ρ Android) Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ «Π·Π°ΠΌΠΎΡΠΎΠ·ΠΈΡΡ» (freeze) Π²Π°Ρ ΠΊΠΎΠ΄.
ΠΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² «Π·Π°ΠΌΠΎΡΠΎΠ·ΠΈΡΡ» Π²Π°Ρ ΠΊΠΎΠ΄, Π½ΠΎ Ρ Π±Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Pyinstaller.
Π¨Π°Π³ 1
ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π½Π° ΡΠ°ΠΉΡ pyinstaller.org ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π΅Π³ΠΎ. ΠΠΎΠΆΠ½ΠΎ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ΅ΡΠ΅Π· pip, Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°ΡΠ°ΡΡ Pyinstaller.
pip install pyinstaller
Π¨Π°Π³ 2
ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² ΠΏΠ°ΠΏΠΊΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΊΠΎΠ΄, Π½Π°ΠΆΠΌΠΈΡΠ΅ SHIFT + ΠΏΡΠ°Π²ΡΡ ΠΊΠ»Π°Π²ΠΈΡΡ ΠΌΡΡΠΈ ΠΈ Π΄Π°Π»Π΅Π΅ «ΠΡΠΊΡΡΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅». Π’.Π΅. Π»ΠΈΠ±ΠΎ «open in command prompt» ΠΈΠ»ΠΈ «power shell» Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²Π°ΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΠ‘.
python pyinstaller.py --noconsole yourscript.py pyinstaller.exe --onefile --windowed --name myapps --icon=yourico.ico yourscript.py
ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΠ²ΠΎΠΉ Π·Π½Π°ΡΠΎΠΊ Π΄Π»Ρ EXE-ΡΠ°ΠΉΠ»Π° ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΠΌ Π²ΡΡ Π² ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΉΠ» Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΠΎΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
ΠΡΡ ΠΎΠ΄Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Python ΠΈ *.exe ΡΠ°ΠΉΠ» Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°ΡΠ°ΡΡ Π½ΠΈΠΆΠ΅:
ΠΠ° ΡΡΠΎΠΌ ΠΌΡ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΠΌ ΡΡΠΎΠΊ ΠΏΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° Python.
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Python. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° KivyMD / Π₯Π°Π±Ρ
ΠΡΠΈΠ²Π΅ΡΡΡΠ²ΡΡ! Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΡΠ΅ΡΡ ΡΠ½ΠΎΠ²Π° ΠΏΠΎΠΉΠ΄Π΅Ρ ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ KivyMD β Π½Π°Π±ΠΎΡΠ΅ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ² Π΄Π»Ρ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° Python Π² ΡΡΠΈΠ»Π΅ Material Design. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΡΠ΄Π΅Π»Π°Ρ Π½Π΅ ΠΎΠ±Π·ΠΎΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ² KivyMD, ΠΊΠ°ΠΊ Π² Π½Π΅Π΄Π°Π²Π½Π΅ΠΉ ΡΡΠ°ΡΡΠ΅, Π°, ΡΠΊΠΎΡΠ΅Π΅, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» Π±ΠΎΠ»ΡΡΠ΅ ΠΎ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ². Π§ΡΠΎ-ΡΠΎ ΠΏΠΎΡ ΠΎΠΆΠ΅Π³ΠΎ Π½Π° ΡΡΡΠΎΡΠΈΠ°Π» ΠΏΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Python Π΄Π»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ² Π·Π΄Π΅ΡΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ, ΡΠ°ΠΊ ΡΡΠΎ Π΅ΡΠ»ΠΈ Π²ΠΏΠ΅ΡΠ²ΡΠ΅ ΡΠ»ΡΡΠΈΡΠ΅ ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ΅ Kivy, Π²ΡΡΠ΄ Π»ΠΈ Π²Π°ΠΌ Π±ΡΠ΄Π΅Ρ Π²ΡΠ΅ ΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ. ΠΡ, Π° ΠΌΡ ΠΏΠΎΠ³Π½Π°Π»ΠΈ ΠΏΠΎΠ΄ ΠΊΠ°Ρ!
ΠΠ° Π΄Π½ΡΡ ΡΠΊΠ°ΡΠ°Π» ΠΈΠ· Google Play Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Flutter UIKit:
Π ΡΠ΅ΠΉΡΠ°Ρ ΠΌΡ Ρ Π²Π°ΠΌΠΈ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠΊΡΠ°Π½ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ: ΡΠ»Π΅Π²Π° β Flutter, ΡΠΏΡΠ°Π²Π° β Kivy & KivyMD.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ UI ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ, Π½Π΅ Π² ΡΠΈΠ»Ρ ΠΊΠ°ΠΊΠΈΡ -ΡΠΎ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ, ΠΈΠ·-Π·Π° ΠΊΠΎΡΠΎΡΡΡ Π½Π΅Π»ΡΠ·Ρ Π±ΡΠ»ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, Π° ΠΏΡΠΎΡΡΠΎ Ρ ΠΏΠΎΡΡΠΈΡΠ°Π», ΡΡΠΎ ΡΠ°ΠΊ Π±ΡΠ΄Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΠΎΡΠ³Π°Π½ΠΈΡΠ½Π΅ΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΡΠ½ΡΠΉ Toolbar, ΠΏΠΎ ΠΌΠΎΠ΅ΠΌΡ ΠΌΠ½Π΅Π½ΠΈΡ, ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ ΡΠΌΠΎΡΡΠΈΡΡΡ).
ΠΡΠ°ΠΊ! Π§ΡΠΎ Π±ΡΠΎΡΠ°Π΅ΡΡΡ Π² Π³Π»Π°Π·Π°, Π³Π»ΡΠ΄Ρ Π½Π° ΡΠΊΡΠ°Π½, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ? ΠΡΠΎΠ·ΡΠ°ΡΠ½ΡΠΉ ΡΠΎΠ½ ΠΏΠ΅ΡΠ΅Π΄Π½Π΅Π³ΠΎ layout. Π Kivy ΡΠ°ΠΊΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ FloatLayout, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡ Π² ΡΠ΅Π±Π΅ Π²ΠΈΠ΄ΠΆΠ΅ΡΡ ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Ρ ΠΎΠ΄ΠΈΠ½ Π½Π°Π΄ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Π‘Ρ
Π΅ΠΌΠ°ΡΠΈΡΠ½ΠΎ Π½Π°Ρ ΡΠΊΡΠ°Π½ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
Π Π°Π·ΠΌΠ΅ΡΠΊΠ° ΡΡΠΎΠ³ΠΎ ΡΠΊΡΠ°Π½Π° Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠ°Ρ:
ΠΠΎΡΠ΅ΠΌΡ Ρ Π³ΠΎΠ²ΠΎΡΡ ΠΎ FloatLayout, Π΅ΡΠ»ΠΈ Π½Π°Ρ ΡΠΊΡΠ°Π½ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ ΠΎΡ Screen?
<ProductScreen@Screen>:
...
ΠΡΠΎΡΡΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Screen —> RelativeLayout —> FloatLayout.
ΠΡΠ΅ Π²ΠΈΠ΄ΠΆΠ΅ΡΡ Π²ΠΎ FloatLayout ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΡΡΡΡΡ ΠΎΡ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ ΡΠ³Π»Π°, ΡΠΎ Π΅ΡΡΡ, Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΈΠΌ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ (0, 0). Π ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ΅ Π½Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠ»Π΅Π΄ΠΈΡΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π½Π° ΡΠΊΡΠ°Π½ ΡΠ²Π΅ΡΡ Ρ Π²Π½ΠΈΠ·:
ΠΡΠ»ΠΈ ΠΊΡΠΎ-ΡΠΎ ΠΎΠ±ΡΠ°ΡΠΈΠ» Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΠΎ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΌΡ ΡΠΊΠ°Π·Π°Π»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΡ:
MDToolbar:
...
pos_hint: {"top": 1}
ΠΠ°ΠΆΠ΄ΠΎΠΌΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΡ Π² Kivy ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ (x, y) ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΡ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ:
pos_hint: {"top": 1} # Π²Π΅ΡΡ
Π½ΡΡ Π³ΡΠ°Π½ΠΈΡΠ° ΡΠΊΡΠ°Π½Π°
pos_hint: {"bottom": 1} # Π½ΠΈΠΆΠ½ΡΡ Π³ΡΠ°Π½ΠΈΡΠ° ΡΠΊΡΠ°Π½Π°
pos_hint: {"right": 1} # ΠΏΡΠ°Π²Π°Ρ Π³ΡΠ°Π½ΠΈΡΠ° ΡΠΊΡΠ°Π½Π°
pos_hint: {"center_y": .5} # ΡΠ΅Π½ΡΡ ΡΠΊΡΠ°Π½Π° ΠΏΠΎ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΠΈ
pos_hint: {"center_x": .2} # ΠΎΡΡΡΡΠΏ Π² 20 % ΠΏΠΎ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΠΈ ΠΎΡ Π»Π΅Π²ΠΎΠΉ Π³ΡΠ°Π½ΠΈΡΡ ΡΠΊΡΠ°Π½Π°
...
...
Π’Π°ΠΊ Π²ΠΎΡ, Π½ΠΈΠΆΠ½Π΅Π΅ ΡΠΎΠ½ΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅β¦
BoxLayout:
size_hint_y: None
height: root.height - toolbar.height
FitImage:
source: "smokestackheather.jpeg"
β¦ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΡ FitImage (Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° KivyMD), Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°ΡΡΡΠ³ΠΈΠ²Π°Π΅ΡΡΡ Π½Π° Π²ΡΠ΅ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π΅ΠΌΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠΏΠΎΡΡΠΈΠΉ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ:
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΡ ΠΈ Π»Π°ΠΉΠΎΡΡΡ Π² Kivy ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ 100 % ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°, Π΅ΡΠ»ΠΈ Π½Π΅ ΡΠΊΠ°Π·Π°Π½Π½ΠΎ ΠΈΠ½ΠΎΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ Π·Π°Ρ ΠΎΡΠΈΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½Π° ΡΠΊΡΠ°Π½ ΠΎΠ΄Π½Ρ ΠΊΠ½ΠΎΠΏΠΊΡ, Π²Ρ, ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ ΡΠ΄Π΅Π»Π°Π΅ΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
from kivy.app import App
from kivy.lang import Builder
KV = """
Button:
text: "Button"
"""
class MyApp(App):
def build(self):
return Builder.load_string(KV)
MyApp().run()
Π ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ:
ΠΠ½ΠΎΠΏΠΊΠ° Π·Π°Π½ΡΠ»Π° 100 % ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°. Π§ΡΠΎΠ±Ρ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΏΠΎ ΡΠ΅Π½ΡΡΡ ΡΠΊΡΠ°Π½Π°, Π½ΡΠΆΠ½ΠΎ, Π²ΠΎ-ΠΏΠ΅ΡΠ²ΡΡ
, Π·Π°Π΄Π°ΡΡ Π΅ΠΉ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΈ, Π²ΠΎ-Π²ΡΠΎΡΡΡ
, ΡΠΊΠ°Π·Π°ΡΡ, Π³Π΄Π΅ ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ:
from kivy.app import App
from kivy.lang import Builder
KV = """
Button:
text: "Button"
size_hint: None, None
size: 100, 50
pos_hint: {"center_y": .5, "center_x": .5}
"""
class MyApp(App):
def build(self):
return Builder.load_string(KV)
MyApp().run()
Π’Π΅ΠΏΠ΅ΡΡ ΠΊΠ°ΡΡΠΈΠ½Π° ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»Π°ΡΡ:
Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ size_hint, ΠΎΡ 0 Π΄ΠΎ 1, (ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ 0-100%), ΡΠΎ Π΅ΡΡΡ, ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ° ΡΠ°Π·ΠΌΠ΅ΡΠ°:
from kivy.app import App
from kivy.lang import Builder
KV = """
BoxLayout:
Button:
text: "Button"
size_hint_y: .2
Button:
text: "Button"
size_hint_y: .1
Button:
text: "Button"
"""
class MyApp(App):
def build(self):
return Builder.load_string(KV)
MyApp().run()
ΠΠ»ΠΈ ΡΠΎΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, Π½ΠΎ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ° ΡΠΈΡΠΈΠ½Ρ (size_hint_x):
from kivy.app import App
from kivy.lang import Builder
KV = """
BoxLayout:
Button:
text: "Button"
size_hint_x: .2
Button:
text: "Button"
size_hint_x: .1
Button:
text: "Button"
"""
class MyApp(App):
def build(self):
return Builder.load_string(KV)
MyApp().run()
MDToolbar ΠΈΠΌΠ΅Π΅Ρ Π²ΡΡΠΎΡΡ Π² 56dp, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΡ Π²ΡΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ, ΠΈ Π΅ΡΠ»ΠΈ Π΅ΠΌΡ Π½Π΅ ΠΏΠΎΠ΄ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ Π΅Π³ΠΎ ΠΌΠ΅ΡΡΠΎ ΡΠ²Π΅ΡΡ
Ρ, ΡΠΎ ΠΎΠ½ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΈΠΏΠ½Π΅Ρ ΠΊ Π½ΠΈΠΆΠ½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΡΠΊΡΠ°Π½Π°:
Π‘ΠΏΠΈΡΠΎΠΊ ΠΊΠ°ΡΡΠΎΡΠ΅ΠΊ β OrderProductLayout (ΠΎ Π½Π΅ΠΌ ΠΌΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ Π½ΠΈΠΆΠ΅) β ΡΡΠΎ ScrollView Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ MDCard ΠΈ ΠΎΠ½ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π²ΡΡ Π²ΡΡΠΎΡΡ ΡΠΊΡΠ°Π½Π°, Π½ΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ padding (Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΡΡΡΡΠΏΠΎΠ² Π² Π»Π°ΠΉΠΎΡΡΠ°Ρ
) ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ ΠΎΠ½ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ ΡΡΡΡ Π²ΡΡΠ΅ ΡΠ΅Π½ΡΡΠ° ΡΠΊΡΠ°Π½Π°. ΠΡ Π° MDBottomAppBar ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΊΠΈΠ΄Π°Π΅Ρ ΡΠΊΠΎΡΡ ΠΊ Π½ΠΈΠΆΠ½Π΅ΠΉ Π³ΡΠ°Π½ΠΈΡΠ΅ ΡΠΊΡΠ°Π½Π°. ΠΠΎΡΡΠΎΠΌΡ ΡΠΎΠ»ΡΠΊΠΎ MDToolbar ΠΌΡ ΡΠΊΠ°Π·Π°Π»ΠΈ, Π³Π΄Π΅ Π΅Π³ΠΎ ΠΌΠ΅ΡΡΠΎ.
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ· ΡΠ΅Π±Ρ Π²ΠΈΠ΄ΠΆΠ΅Ρ OrderProductLayout:
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΡΠ΅ΡΡΡΠ΅ ΠΊΠ°ΡΡΠΎΡΠΊΠΈ, Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π² ScrillView. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΡΠΊΡΠ°Π½Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ ΠΎΡ FloatLayout, Π·Π΄Π΅ΡΡ Π²ΡΠ΅ Π²ΠΈΠ΄ΠΆΠ΅ΡΡ ΡΠΈΡΠ°ΡΡΡΡ ΡΠ²Π΅ΡΡ
Ρ Π²Π½ΠΈΠ·.
ΠΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΡΠΎΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠ΅ΡΠΊΠ°Ρ ΠΈΠ΅ΡΠ°ΡΡ
ΠΈΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ², Π΄ΡΠ΅Π²ΠΎΠ²ΠΈΠ΄Π½Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° ΠΈ Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π²Π·Π³Π»ΡΠ΄Π° ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ/ΠΊΠΎΠ½ΡΡΠΎΠ»Π» ΠΊΠ°ΠΊΠΎΠΌΡ Π»Π°ΠΉΠΎΡΡΡ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ. Π Kivy Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΡΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌ Π»Π°ΠΉΠΎΡΡΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ BoxLayout β ΠΊΠΎΡΠΎΠ±ΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡ Π² ΡΠ΅Π±Π΅ Π²ΠΈΠ΄ΠΆΠ΅ΡΡ ΠΏΠΎ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΠΈ Π»ΠΈΠ±ΠΎ ΠΏΠΎ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΠΈ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ β ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅):
ΠΠΎΠ»Π΅Π΅ Π½Π°Π³Π»ΡΠ΄Π½ΠΎ ΡΡΠΎ Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡ
Π΅ΠΌΡ, Π³Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ BoxLayout Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΎΡΠΈΠ΅Π½ΡΠ°ΡΠΈΠΈ:
ΠΡ Π·Π°ΠΏΡΠ΅ΡΠΈΠ»ΠΈ BoxLayout ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ 100% ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° β size_hint_y: None ΠΈ ΡΠΊΠ°Π·Π°Π»ΠΈ β ΡΠ²ΠΎΡ Π²ΡΡΠΎΡΠ° Π±ΡΠ΄Π΅Ρ ΡΠΎΠ²Π½ΠΎ ΡΠ°ΠΊΠΎΠΉ, ΠΊΠ°ΠΊΠΎΠΉ Π±ΡΠ΄Π΅Ρ Π²ΡΡΠΎΡΠ° ΡΠ°ΠΌΠΎΠ³ΠΎ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π² ΡΠ΅Π±Ρ β height: self.minimum_height.
Π‘ΠΏΠΈΡΠΎΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ:
ΠΡΠ»ΠΈ Π±Ρ ΠΌΡ Π·Π°Ρ ΠΎΡΠ΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΡ ΡΠΏΠΈΡΠΊΠ°, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ GridLayout ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ScrollView:
GridLayout:
size_hint_y: None
height: self.minimum_height
cols: 1
ΠΠ°ΠΌΠ΅Π½ΠΈΡΡ ΡΡΡΠΎΠΊΠΈ (rows) Π½Π° ΡΡΠΎΠ»Π±ΡΡ (cols) ΠΈ ΡΠΊΠ°Π·Π°ΡΡ Π² minimum Π½Π΅ ΡΠΈΡΠΈΠ½Ρ, Π° Π²ΡΡΠΎΡΡ:
from kivy.app import App
from kivy.lang import Builder
from kivy.metrics import dp
from kivy.uix.button import Button
KV = """
ScrollView:
GridLayout:
id: box
size_hint_y: None
height: self.minimum_height
spacing: "5dp"
cols: 1
"""
class MyApp(App):
def build(self):
return Builder.load_string(KV)
def on_start(self):
for i in range(20):
self.root.ids.box.add_widget(
Button(
text=f"Label {i}",
size_hint_y=None,
height=dp(40),
)
)
MyApp().run()
Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠ°ΡΡΡ β Π²ΡΠ±ΠΎΡ ΡΠ²Π΅ΡΠ° ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ° (ΠΎΠ½ΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½Ρ):
ΠΡΠ»ΠΈΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ ΡΠ·ΡΠΊΠ° ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ Kv Language ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠΊΠ°Ρ ΡΡΡΡΠΊΡΡΡΠ° Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ², Π½ΠΎ ΠΈ ΡΠΎ, ΡΡΠΎ ΡΡΠΎΡ ΡΠ·ΡΠΊ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ·ΡΠΊΠ° Python. Π ΠΈΠΌΠ΅Π½Π½ΠΎ: Π²ΡΠ·ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅/ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
, Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅, I/O ΠΈ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈβ¦
ΠΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ value, ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π² Labelβ¦
Label:
value: 0
text: str(self.value)
β¦ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΡΠ°ΠΌΠΎΠΉ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ΅:
MDIconButton:
on_release: label_value.value -= 1 if label_value.value > 0 else 0
Π Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΠΎΠ²Π΅ΡΡ, ΡΡΠΎ Π²ΠΎΡ ΡΡΠΎ (ΠΊΠΎΠ΄ Flutter)β¦
β¦ Π»ΠΎΠ³ΠΈΡΠ½Π΅Π΅ ΠΈ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½Π΅Π΅ ΠΊΠΎΠ΄Π° Kv Language:
ΠΡΠ΅ΡΠ° ΠΌΠ΅Π½Ρ ΡΠΏΡΠ°ΡΠΈΠ²Π°Π»ΠΈ, ΠΊΠ°ΠΊ Ρ Kivy ΠΎΠ±ΡΡΠΎΡΡ Π΄Π΅Π»Π° ΡΠΎ ΡΡΠ΅Π΄ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π΅ΡΡΡ Π»ΠΈ Π°Π²ΡΠΎΠΊΠΎΠΌΠΏΠ»ΠΈΡΡ, Ρ
ΠΎΡΡΠ΅Π»ΠΎΠ°Π΄ ΠΈ ΠΏΡΠΎΡΠΈΠ΅ ΠΏΡΠ΅Π»Π΅ΡΡΠΈ? Π‘ Π°Π²ΡΠΎΠΊΠΎΠΌΠΏΠ»ΠΈΡΠ°ΠΌΠΈ Π²ΡΠ΅ ΠΎΡΠ»ΠΈΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ PyCharm:
ΠΠ°ΡΡΠ΅Ρ Ρ
ΠΎΡΡΠ΅Π»ΠΎΠ°Π΄β¦ Python β ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ ΡΠ·ΡΠΊ. Kivy ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Python. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, Π½Π΅ Π½ΡΠΆΠ½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΊΠΎΠ΄Π°, Π·Π°ΠΏΡΡΡΠΈΠ» β ΡΠ²ΠΈΠ΄Π΅Π»/ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠ²Π°Π». ΠΠ°ΠΊ Ρ ΡΠΆΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠ», Kivy Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π½Π°ΡΠΈΠ²Π½ΡΠ΅ API Π΄Π»Ρ ΡΠ΅Π½Π΄Π΅ΡΠ° UI, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ² ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ screen. ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ Π²Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ Ρ Π½ΡΠΆΠ½ΡΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ, ΡΡΠΎΠ±Ρ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ ΠΎΡΠΊΡΡΠ»ΠΎΡΡ ΠΎΠΊΠ½ΠΎ ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ Π±Ρ ΠΎΠ½ΠΎ Π±ΡΠ»ΠΎ Π·Π°ΠΏΡΡΠ΅Π½ΠΎ Π½Π° ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅. ΠΠ²ΡΡΠΈΡ ΡΡΡΠ°Π½Π½ΠΎ, Π½ΠΎ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Kivy Π°Π±ΡΡΡΠ°Π³ΠΈΡΡΠ΅ΡΡΡ ΠΎΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Π² ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ΅ UI, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΆΠ΅Π»ΡΠ΅ ΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠ΅ ΡΠΌΡΠ»ΡΡΠΎΡΡ Π΄Π»Ρ ΡΠ΅ΡΡΠΎΠ². ΠΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ UI. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΡΡΠΎΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌΠΎΠ΅ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π»ΠΎΡΡ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ -m screen:droid2, portrait, scale=.75.
Π‘Π»Π΅Π²Π° β Π·Π°ΠΏΡΡΠ΅Π½ΠΎ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅, ΡΠΏΡΠ°Π²Π° β Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅:
ΠΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΌΠΎΠ΄ΡΠ»Ρ screen:
devices = {
# device: (name, width, height, dpi, density)
'onex': ('HTC One X', 1280, 720, 312, 2),
'one': ('HTC One', 1920, 1080, 468, 3),
'onesv': ('HTC One SV', 800, 480, 216, 1.5),
's3': ('Galaxy SIII', 1280, 720, 306, 2),
'note2': ('Galaxy Note II', 1280, 720, 267, 2),
'droid2': ('Motorola Droid 2', 854, 480, 240, 1.5),
'xoom': ('Motorola Xoom', 1280, 800, 149, 1),
'ipad': ('iPad (1 and 2)', 1024, 768, 132, 1),
'ipad3': ('iPad 3', 2048, 1536, 264, 2),
'iphone4': ('iPhone 4', 960, 640, 326, 2),
'iphone5': ('iPhone 5', 1136, 640, 326, 2),
'xperiae': ('Xperia E', 480, 320, 166, 1),
'nexus4': ('Nexus 4', 1280, 768, 320, 2),
'nexus7': ('Nexus 7 (2012 version)', 1280, 800, 216, 1.325),
'nexus7.2': ('Nexus 7 (2013 version)', 1920, 1200, 323, 2),
# taken from design.google.com/devices
# please consider using another data instead of
# a dict for autocompletion to work
# these are all in landscape
'phone_android_one': ('Android One', 854, 480, 218, 1.5),
'phone_htc_one_m8': ('HTC One M8', 1920, 1080, 432, 3.0),
'phone_htc_one_m9': ('HTC One M9', 1920, 1080, 432, 3.0),
'phone_iphone': ('iPhone', 480, 320, 168, 1.0),
'phone_iphone_4': ('iPhone 4', 960, 640, 320, 2.0),
'phone_iphone_5': ('iPhone 5', 1136, 640, 320, 2.0),
'phone_iphone_6': ('iPhone 6', 1334, 750, 326, 2.0),
'phone_iphone_6_plus': ('iPhone 6 Plus', 1920, 1080, 400, 3.0),
'phone_lg_g2': ('LG G2', 1920, 1080, 432, 3.0),
'phone_lg_g3': ('LG G3', 2560, 1440, 533, 3.0),
'phone_moto_g': ('Moto G', 1280, 720, 327, 2.0),
'phone_moto_x': ('Moto X', 1280, 720, 313, 2.0),
'phone_moto_x_2nd_gen': ('Moto X 2nd Gen', 1920, 1080, 432, 3.0),
'phone_nexus_4': ('Nexus 4', 1280, 768, 240, 2.0),
'phone_nexus_5': ('Nexus 5', 1920, 1080, 450, 3.0),
'phone_nexus_5x': ('Nexus 5X', 1920, 1080, 432, 2.6),
'phone_nexus_6': ('Nexus 6', 2560, 1440, 496, 3.5),
'phone_nexus_6p': ('Nexus 6P', 2560, 1440, 514, 3.5),
'phone_samsung_galaxy_note_4': ('Samsung Galaxy Note 4',
2560, 1440, 514, 3.0),
'phone_samsung_galaxy_s5': ('Samsung Galaxy S5', 1920, 1080, 372, 3.0),
'phone_samsung_galaxy_s6': ('Samsung Galaxy S6', 2560, 1440, 576, 4.0),
'phone_sony_xperia_c4': ('Sony Xperia C4', 1920, 1080, 400, 2.0),
'phone_sony_xperia_z_ultra': ('Sony Xperia Z Ultra', 1920, 1080, 348, 2.0),
'phone_sony_xperia_z1_compact': ('Sony Xperia Z1 Compact',
1280, 720, 342, 2.0),
'phone_sony_xperia_z2z3': ('Sony Xperia Z2/Z3', 1920, 1080, 432, 3.0),
'phone_sony_xperia_z3_compact': ('Sony Xperia Z3 Compact',
1280, 720, 313, 2.0),
'tablet_dell_venue_8': ('Dell Venue 8', 2560, 1600, 355, 2.0),
'tablet_ipad': ('iPad', 1024, 768, 132, 1.0),
'tablet_ipad_mini': ('iPad Mini', 1024, 768, 163, 1.0),
'tablet_ipad_mini_retina': ('iPad Mini Retina', 2048, 1536, 326, 2.0),
'tablet_ipad_pro': ('iPad Pro', 2732, 2048, 265, 2.0),
'tablet_ipad_retina': ('iPad Retina', 2048, 1536, 264, 2.0),
'tablet_nexus_10': ('Nexus 10', 2560, 1600, 297, 2.0),
'tablet_nexus_7_12': ('Nexus 7 12', 1280, 800, 216, 1.3),
'tablet_nexus_7_13': ('Nexus 7 13', 1920, 1200, 324, 2.0),
'tablet_nexus_9': ('Nexus 9', 2048, 1536, 288, 2.0),
'tablet_samsung_galaxy_tab_10': ('Samsung Galaxy Tab 10',
1280, 800, 148, 1.0),
'tablet_sony_xperia_z3_tablet': ('Sony Xperia Z3 Tablet',
1920, 1200, 282, 2.0),
'tablet_sony_xperia_z4_tablet': ('Sony Xperia Z4 Tablet',
2560, 1600, 297, 2.0)TodoList()
app.run()
}
ΠΡ, ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΡΠΈΠ½Π°Π»ΡΠ½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ β Π·Π°ΠΏΡΡΠΊ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅β¦
ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅, ΡΡΠΎ ΠΎΠ³ΠΎΡΡΠ°Π΅Ρ, ΡΡΠΎ ΡΠΊΠΎΡΠΎΡΡΡ Π·Π°ΠΏΡΡΠΊΠ°. Π£ ΡΠΎΠ³ΠΎ ΠΆΠ΅ Flutter ΠΎΠ½Π° ΠΏΡΠΎΡΡΠΎ ΡΠ΅Π½ΠΎΠΌΠ΅Π½Π°Π»ΡΠ½Π°Ρ!
ΠΠ°Π΄Π΅ΡΡΡ, Π±ΡΠ» ΠΊΠΎΠΌΡ-ΡΠΎ ΠΏΠΎΠ»Π΅Π·Π΅Π½, Π΄ΠΎ Π½ΠΎΠ²ΡΡ Π²ΡΡΡΠ΅Ρ!
CGI: ΠΏΠΈΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠ°ΠΉΡ Π½Π° Python. Π§Π°ΡΡΡ 3: ΠΡΠΈΠΌΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΡ ΡΠΆΠ΅ Π½Π°ΡΡΠΈΠ»ΠΈΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΎΡΠΌΡ ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ cookies. Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΆΠ΅ ΠΌΡ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡΡΡ.
Π§ΡΠΎΠ±Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ, Π½ΡΠΆΠ½ΠΎ Π³Π΄Π΅-ΡΠΎ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΡΡΡ. Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ (Π½ΠΎ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ ΡΠ°ΠΌΡΠΉ ΠΈΠ·ΡΡΠ½ΡΠΉ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉ) — Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π² ΡΠ°ΠΉΠ»Π°Ρ . ΠΠΎΠ»Π΅Π΅ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠΉ ΡΠΏΠΎΡΠΎΠ± — Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ . ΠΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠΌΡΡ Π½Π° ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠΏΠΎΡΠΎΠ±Π΅, ΠΊΠ°ΠΊ Π½Π° ΡΠ°ΠΌΠΎΠΌ ΠΏΡΠΎΡΡΠΎΠΌ.
Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ, Π½ΠΈΡΠ΅Π³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π·Π΄Π΅ΡΡ ΠΎΠ±ΡΡΡΠ½ΡΡΡΡΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ. Π Π°Π±ΠΎΡΡ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ Π²Ρ ΡΠΆΠ΅ Π·Π½Π°Π΅ΡΠ΅, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΎΡΠΌΡ ΡΠΆΠ΅ ΡΠΌΠ΅Π΅ΡΠ΅.
Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΌΡ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΏΡΠΎΡΠΎΡΠΈΠΏ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΈΠΏΠ° «ΡΠ²ΠΈΡΡΠ΅Ρ». ΠΠ°Π½Π½ΡΠ΅ Π² ΡΠ°ΠΉΠ»Π°Ρ Π±ΡΠ΄Π΅ΠΌ Ρ ΡΠ°Π½ΠΈΡΡ Π² json.
Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ 2 ΡΠ°ΠΉΠ»Π°: ΠΎΠ΄ΠΈΠ½ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π΄Π°Π½Π½ΡΡ , Π²Π²ΠΎΠ΄ΠΈΠΌΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ, Π²ΡΠΎΡΠΎΠΉ — Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΏΡΠΎΡΡΠΈΡ ΠΊΠΎΠ΄ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ.
cgi-bin/wall.py:
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import cgi import html import http.cookies import os from _wall import Wall wall = Wall() cookie = http.cookies.SimpleCookie(os.environ.get("HTTP_COOKIE")) session = cookie.get("session") if session is not None: session = session.value user = wall.find_cookie(session) # ΠΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠΉ ΠΊΡΠΊΠ΅ form = cgi.FieldStorage() action = form.getfirst("action", "") if action == "publish": text = form.getfirst("text", "") text = html.escape(text) if text and user is not None: wall.publish(user, text) elif action == "login": login = form.getfirst("login", "") login = html.escape(login) password = form.getfirst("password", "") password = html.escape(password) if wall.find(login, password): cookie = wall.set_cookie(login) print('Set-cookie: session={}'.format(cookie)) elif wall.find(login): pass # Π Π½Π°Π΄ΠΎ Π±Ρ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π²ΡΠ΄Π°ΡΡ else: wall.register(login, password) cookie = wall.set_cookie(login) print('Set-cookie: session={}'.format(cookie)) pattern = ''' <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>Π‘ΡΠ΅Π½Π°</title> </head> <body> Π€ΠΎΡΠΌΠ° Π»ΠΎΠ³ΠΈΠ½Π° ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ. ΠΡΠΈ Π²Π²ΠΎΠ΄Π΅ Π½Π΅ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅ΡΡΡ Π½ΠΎΠ²ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. <form action="/cgi-bin/wall.py"> ΠΠΎΠ³ΠΈΠ½: <input type="text" name="login"> ΠΠ°ΡΠΎΠ»Ρ: <input type="password" name="password"> <input type="hidden" name="action" value="login"> <input type="submit"> </form> {posts} {publish} </body> </html> ''' if user is not None: pub = ''' <form action="/cgi-bin/wall.py"> <textarea name="text"></textarea> <input type="hidden" name="action" value="publish"> <input type="submit"> </form> ''' else: pub = '' print('Content-type: text/html\n') print(pattern.format(posts=wall.html_list(), publish=pub))
ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΡΠΎΠΊ Π΄Π»Ρ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΠ°Π½ΠΈΡΡ (ΠΊΡΡΠ°ΡΠΈ, ΡΡΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ°Π³ Π½Π° ΠΏΡΡΠΈ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°ΡΠΎΡΠ°).
ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ Π΄Π°ΡΡ ΡΡΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ ΠΏΡΠ°Π²Π° Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ (Π²ΡΠΎΡΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ ΡΡΠΈ ΠΏΡΠ°Π²Π° Π½Π΅ Π½ΡΠΆΠ½Ρ).
cgi-bin/_wall.py (Π·Π΄Π΅ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΡΡΠ½ΠΊΡΠΈΠΈ publish, login ΠΈ Π΄ΡΡΠ³ΠΈΠ΅):
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import json import random import time class Wall: USERS = 'cgi-bin/users.json' WALL = 'cgi-bin/wall.json' COOKIES = 'cgi-bin/cookies.json' def __init__(self): """Π‘ΠΎΠ·Π΄Π°ΡΠΌ Π½Π°ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π½Π΅ ΡΠΎΠ·Π΄Π°Π½Ρ""" try: with open(self.USERS, 'r', encoding='utf-8'): pass except FileNotFoundError: with open(self.USERS, 'w', encoding='utf-8') as f: json.dump({}, f) try: with open(self.WALL, 'r', encoding='utf-8'): pass except FileNotFoundError: with open(self.WALL, 'w', encoding='utf-8') as f: json.dump({"posts": []}, f) try: with open(self.COOKIES, 'r', encoding='utf-8'): pass except FileNotFoundError: with open(self.COOKIES, 'w', encoding='utf-8') as f: json.dump({}, f) def register(self, user, password): """Π Π΅Π³ΠΈΡΡΡΠΈΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ True ΠΏΡΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ""" if self.find(user): return False # Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ with open(self.USERS, 'r', encoding='utf-8') as f: users = json.load(f) users[user] = password with open(self.USERS, 'w', encoding='utf-8') as f: json.dump(users, f) return True def set_cookie(self, user): """ΠΠ°ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΊΡΠΊΡ Π² ΡΠ°ΠΉΠ». ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ ΠΊΡΠΊΡ.""" with open(self.COOKIES, 'r', encoding='utf-8') as f: cookies = json.load(f) cookie = str(time.time()) + str(random.randrange(10**14)) # ΠΠ΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΊΡΠΊΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ cookies[cookie] = user with open(self.COOKIES, 'w', encoding='utf-8') as f: json.dump(cookies, f) return cookie def find_cookie(self, cookie): """ΠΠΎ ΠΊΡΠΊΠ΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡ ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ""" with open(self.COOKIES, 'r', encoding='utf-8') as f: cookies = json.load(f) return cookies.get(cookie) def find(self, user, password=None): """ΠΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΈΠ»ΠΈ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ""" with open(self.USERS, 'r', encoding='utf-8') as f: users = json.load(f) if user in users and (password is None or password == users[user]): return True return False def publish(self, user, text): """ΠΡΠ±Π»ΠΈΠΊΡΠ΅Ρ ΡΠ΅ΠΊΡΡ""" with open(self.WALL, 'r', encoding='utf-8') as f: wall = json.load(f) wall['posts'].append({'user': user, 'text': text}) with open(self.WALL, 'w', encoding='utf-8') as f: json.dump(wall, f) def html_list(self): """Π‘ΠΏΠΈΡΠΎΠΊ ΠΏΠΎΡΡΠΎΠ² Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅""" with open(self.WALL, 'r', encoding='utf-8') as f: wall = json.load(f) posts = [] for post in wall['posts']: content = post['user'] + ' : ' + post['text'] posts.append(content) return '<br>'.join(posts)
Π Π°Π·ΡΠΌΠ΅Π΅ΡΡΡ, Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎΠΌ «ΡΠ²ΠΈΡΡΠ΅ΡΠ΅» ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠ²: Π½Π΅ Π²ΡΠ²ΠΎΠ΄ΡΡΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΠΏΡΠΈ Π½Π΅ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΌ ΠΈΠΌΠ΅Π½ΠΈ, ΠΏΠ°ΡΠΎΠ»ΠΈ Ρ ΡΠ°Π½ΡΡΡΡ Π² ΠΎΡΠΊΡΡΡΠΎΠΌ Π²ΠΈΠ΄Π΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΡΠΊΠΈ Π½Π΅ ΡΠ΄Π°Π»ΡΡΡΡΡ, ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠ΅. ΠΡΠΎ Ρ ΠΎΡΠ΅Ρ, ΠΌΠΎΠΆΠ΅Ρ ΡΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΠΎΠ²Π°ΡΡ.
ΠΠΎ Π΅ΡΡΡ ΠΈ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ: ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Ρ Π½Π°Ρ ΡΠ΅ΠΏΠ΅ΡΡ 2 ΡΠ°Π·Π½ΡΡ ΡΠ°ΠΉΠ»Π° (ΠΏΠΎΡΡΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΡ ), ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²), Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Ρ wall.py.
ΠΠ°ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠΊ ΠΏΠΎΠΊΠ°ΠΆΡ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ:
Π‘Π½Π°ΡΠ°Π»Π° Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π»ΠΈΡΡ, ΡΠ΅ΠΏΠ΅ΡΡ Π½ΡΠΆΠ½ΠΎ Π΅ΡΡ ΡΠ°Π· Π²Π²Π΅ΡΡΠΈ Π»ΠΎΠ³ΠΈΠ½-ΠΏΠ°ΡΠΎΠ»Ρ, ΡΡΠΎΠ±Ρ Π²ΠΎΠΉΡΠΈ.
ΠΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ) ΡΠ°ΡΡΠΈ Ρ ΠΏΠΎΠΊΠ°ΠΆΡ, ΠΊΠ°ΠΊ ΡΡΠΎ Π²ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π² ΡΠ΅ΡΠΈ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ.
Python | ΠΠ΅ΡΠ²Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°
ΠΠ΅ΡΠ²Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π° Python
ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅: 24.01.2019
ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ°, ΠΊΠ°ΠΊ Π±ΡΠ»ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² ΠΏΡΠΎΡΠ»ΠΎΠΉ ΡΠ΅ΠΌΠ΅, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΡΠ°ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Python. ΠΡΠ°ΠΊ, ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΠ΅ΡΠ²ΡΡ ΠΏΡΠΎΡΡΠ΅Π½ΡΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠ°ΠΊ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡΠΎΡΠ»ΠΎΠΉ ΡΠ΅ΠΌΠ΅, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ°, Π΅ΡΠ»ΠΈ ΠΏΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π½Π΅ Π±ΡΠ» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ Π°Π΄ΡΠ΅Ρ, ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π½Π° Linux ΠΏΠΎ ΠΏΡΡΠΈ usr/local/bin/python37, Π° Π½Π° Windows ΠΏΠΎ ΠΏΡΡΠΈ
C:\Users\[ΠΈΠΌΡ_ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ]\AppData\Local\Programs\Python\Python37\ ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ°ΠΉΠ» ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ python.exe.
ΠΠ°ΠΏΡΡΡΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΠΈ Π²Π²Π΅Π΄Π΅ΠΌ Π² Π½Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΠΎΠΊΡ:
print("hello world")
Π ΠΊΠΎΠ½ΡΠΎΠ»Ρ Π²ΡΠ²Π΅Π΄Π΅Ρ ΡΡΡΠΎΠΊΡ «hello world»:
ΠΠ»Ρ ΡΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ print(), ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΡΡΠΎΠΊΡ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»Ρ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
Π ΡΠ΅Π°Π»ΡΠ½ΠΎΡΡΠΈ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ Π²ΠΎ Π²Π½Π΅ΡΠ½ΠΈΡ
ΡΠ°ΠΉΠ»Π°Ρ
-ΡΠΊΡΠΈΠΏΡΠ°Ρ
ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΡ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. ΠΠΎΡΡΠΎΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠ°ΠΉΠ» ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π° Π΄ΠΈΡΠΊΠ΅ C ΠΈΠ»ΠΈ Π³Π΄Π΅-Π½ΠΈΠ±ΡΠ΄Ρ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ Π΄Π»Ρ ΡΠΊΡΠΈΠΏΡΠΎΠ² ΠΏΠ°ΠΏΠΊΡ python. Π Π² ΡΡΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½ΠΎΠ²ΡΠΉ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ
Π½Π°Π·ΠΎΠ²Π΅ΠΌ hello.py. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ°ΠΉΠ»Ρ Ρ ΠΊΠΎΠ΄ΠΎΠΌ Π½Π° ΡΠ·ΡΠΊΠ΅ Python, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΈΠΌΠ΅ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ py.
ΠΡΠΊΡΠΎΠ΅ΠΌ ΡΡΠΎΡ ΡΠ°ΠΉΠ» Π² Π»ΡΠ±ΠΎΠΌ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² Π½Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
name = input("ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΈΠΌΡ: ") print("ΠΡΠΈΠ²Π΅Ρ,", name)
Π‘ΠΊΡΠΈΠΏΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π΄Π²ΡΡ
ΡΡΡΠΎΠΊ. ΠΠ΅ΡΠ²Π°Ρ ΡΡΡΠΎΠΊΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ input() ΠΎΠΆΠΈΠ΄Π°Π΅Ρ Π²Π²ΠΎΠ΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ. ΠΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ΅
ΠΈΠΌΡ Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ name
.
ΠΡΠΎΡΠ°Ρ ΡΡΡΠΎΠΊΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ print()
Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π²Π²Π΅Π΄Π΅Π½Π½ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ.
Π’Π΅ΠΏΠ΅ΡΡ Π·Π°ΠΏΡΡΡΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ/ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ cd ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅, Π³Π΄Π΅ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ ΡΠ°ΠΉΠ» Ρ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ hello.py (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΌΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ ΠΏΠ°ΠΏΠΊΠ° C:\python).
ΠΠ°Π»Π΅Π΅ Π²Π½Π°ΡΠ°Π»Π΅ Π²Π²Π΅Π΄Π΅ΠΌ ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΡΡΡ ΠΊ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΡ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ ΡΠΊΡΠΈΠΏΡΠ°:
Π ΠΏΡΠΈΠΌΠ΅ΡΡ, Π² ΠΌΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ Π½Π°Π΄ΠΎ Π±ΡΠ΄Π΅Ρ Π²Π΅ΡΡΠΈ:
C:\Users\Eugene\AppData\Local\Programs\Python\Python37\python.exe hello.py
ΠΠΎ Π΅ΡΠ»ΠΈ ΠΏΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π±ΡΠ»Π° ΡΠΊΠ°Π·Π°Π½Π° ΠΎΠΏΡΠΈΡ «Add Python 3.7 to PATH», ΡΠΎ Π΅ΡΡΡ ΠΏΡΡΡ ΠΊ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΡ Python Π±ΡΠ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΠ΅Π΄Ρ, ΡΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΏΡΡΠΈ ΠΊ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ python:
ΠΠ°ΡΠΈΠ°Π½ΡΡ Ρ ΠΎΠ±ΠΎΠΈΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ Π·Π°ΠΏΡΡΠΊΠ°:
Π ΠΈΡΠΎΠ³Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΡΠ²Π΅Π΄Π΅Ρ ΠΏΡΠΈΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊ Π²Π²ΠΎΠ΄Ρ ΠΈΠΌΠ΅Π½ΠΈ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΠΈΠ΅.
ΠΠΎΠ΄Π±ΠΎΡΠΊΠ° ΠΊΡΡΡΡΡ Python Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ / ΠΠΈΡΠ΅ΠΌ 7 ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π° Python / itProger
Π‘ΡΠ΅Π΄ΠΈ ΠΊΡΡΠΏΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ², Π΅ΡΡΡ ΠΈ ΡΠ΅, ΡΠ΅ΠΉ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π» Π½Π΅ ΡΡΠΎΠ»Ρ Π²Π΅Π»ΠΈΠΊ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π±ΡΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π½Ρ, ΠΏΠΎ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ, ΡΠ°Π΄ΠΈ Π·Π°Π±Π°Π²Ρ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π».
Π ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ 7 Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΈ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½Π° ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΌΠΈΠ½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.Β
Π‘ΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠ»ΠΎΠΊ
Π‘ΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Ρ ΠΎΡΡ ΡΠ°Π·, Π½ΠΎ Π²Ρ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡ Ρ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ ΠΏΠΎ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ ΡΡΡΠ»ΠΎΠΊ. ΠΠ°ΠΆΠ΅, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ°ΠΌΠΈ Π½Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Π»ΠΈ ΡΠΎΠΊΡΠ°ΡΠ΅Π½Π½ΡΡ ΡΡΡΠ»ΠΊΡ, ΡΠΎ Ρ ΠΎΡΡ Π±Ρ Π²ΠΈΠ΄Π΅Π»ΠΈ ΡΠ°ΠΊΠΎΠ²ΡΠ΅ Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΡΡ ΠΊ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ ΡΠΎΠ»ΠΈΠΊΠ°ΠΌ ΠΈΠ»ΠΈ Π½Π° ΡΠ°ΠΉΡΠ°Ρ .
Π‘ΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΊΡΡ ΡΡΡΠ»ΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ΅Π³ΠΎ Π·Π° ΡΡΠΈ ΡΡΡΠΎΡΠΊΠΈ ΠΊΠΎΠ΄Π°, ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ PyShorteners. ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π² ΠΏΡΠΎΠ΅ΠΊΡ, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Π½Π° Π΅Ρ ΠΎΡΠ½ΠΎΠ²Π΅.
ΠΡΠΈΠΌΠ΅Ρ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°:
import pyshorteners
s = pyshorteners.Shortener()
print("Π‘ΠΎΠΊΡΠ°ΡΠ΅Π½Π½Π°Ρ ΡΡΡΠ»ΠΊΠ° - ", s.tinyurl.short('https://itproger.com/courses/'))
Π‘ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ
ΠΡΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠΊΠΎΡΠΎΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ°? ΠΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² ΠΠΈΡΠΎΠ½Π΅ Π΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Pyspeedtest, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π±ΡΡΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΠΎΠ»Π½ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΠΊΠΎΡΠΎΡΡΠΈ Π²Π°ΡΠ΅Π³ΠΎ WiFi.
ΠΡΠΈΠΌΠ΅Ρ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°:
import pyspeedtest
st = pyspeedtest.SpeedTest()
st.download()
st.upload()
st.ping()
Π Π΅Π΄Π°ΠΊΡΠΎΡ Π²ΠΈΠ΄Π΅ΠΎ
ΠΡΠ΅ Π΅ΡΠ΅ Π² ΠΏΠΎΠΈΡΠΊΠ΅ ΠΊΡΡΡΠΎΠ³ΠΎ Π²ΠΈΠ΄Π΅ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°? ΠΠ°ΡΠ΅ΠΌ ΡΡΠΎ-ΡΠΎ ΠΈΡΠΊΠ°ΡΡ, ΠΊΠΎΠ³Π΄Π° Π΅ΡΡΡ Python ΠΈ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° MoviePy π
ΠΠ° ΡΡΠ΅Ρ Β MoviePy Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΠ½ΡΡΡ Π²ΠΈΠ΄Π΅ΠΎ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΅Π³ΠΎ ΠΎΠ±ΡΠ΅Π·Π°ΡΡ, ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ FPS ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π΅ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ.
ΠΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π²ΠΈΠ΄Π΅ΠΎ ΠΈ ΠΎΡΠ΄Π΅Π»ΡΡΡ ΠΎΡ Π½Π΅Π³ΠΎ Π·Π²ΡΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅ΠΌ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°. Π§ΡΠΎΠ±Ρ ΡΠ°ΠΊΠΎΠ΅ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π»ΠΈΡΡ ΠΏΠ°ΡΡ ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°:
import moviepy.editor
video = moviepy.editor.VideoFileClip("some.mov")
audio = video.audio
audio.write_audiofile("new_audio.mp3")
ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
Π ΠΊΠ°ΠΊ ΡΠ°ΡΡΠΎ Π²Ρ ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ΡΡ Π²ΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠ΅ΠΉ? ΠΡΠ»ΠΈ ΡΠ°ΡΡΠΎ, ΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π² Π½Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΏΡΠΎΡΡΠΈΡΡ. ΠΠ° ΡΡΡΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΡΡΠΎ ΡΠ°ΠΊ ΠΈ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Wikipedia, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π±ΡΡΡΡΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎ ΡΠ°Π·Π½ΡΠΌ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ ΡΠ»ΠΎΠ²Π°ΠΌ.
ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°:
import wikipedia
wikipedia.set_lang("ru")
print(wikipedia.summary("New York City"))
ΠΡΠ°ΡΠΈΠ²Π°Ρ ΠΊΠΎΠ½ΡΠΎΠ»Ρ
ΠΠ°ΡΠ°ΡΡΡΡ Π²ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ — ΡΡΠΎ ΡΠΊΡΡΠ½ΡΠΉ Π±Π΅Π»ΡΠΉ ΠΈΠ»ΠΈ ΠΆΠ΅ ΡΠ΅ΡΠ½ΡΠΉ ΡΠ΅ΠΊΡΡ. Π‘ΠΎΠ³Π»Π°ΡΠΈΡΠ΅ΡΡ, ΡΠ°ΠΊΠΎΠ΅ ΠΈ ΡΠΈΡΠ°ΡΡ Π½Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ. ΠΠ»Π°Π³ΠΎ Π² ΠΏΠΈΡΠΎΠ½Π΅ Π΅ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° TermColor.
ΠΠ° ΡΡΠ΅Ρ ΡΡΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΌΡ Π±ΡΡΡΡΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΈΠ»ΠΈ Π±ΡΠ΄ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Ρ ΠΊ ΡΠ΅ΠΊΡΡΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ:
from termcolor2 import c
print(c("Some text").blue.on_white.underline)
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡ
Π‘ΡΠΏΠ΅Ρ ΠΊΠ»Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ PrettyTable. ΠΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΌΠ΅Π³Π° Π±ΡΡΡΡΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΡΠ°ΡΠΈΠ²ΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ. ΠΡΠ»ΠΈ Π²Ρ Π³Π΄Π΅-ΡΠΎ ΡΡΠΈΡΠ΅ΡΡ ΠΈΠ»ΠΈ ΠΆΠ΅ ΡΠ°ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π΄Π΅ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΡΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΡΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
Π Π°Π±ΠΎΡΠ°ΡΡ Ρ Π½Π΅ΠΉ ΠΏΡΠΎΡΡΠΎ. ΠΡΠΆΠ½ΠΎ Π»ΠΈΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ PrettyTable
ΠΈ Π΄Π°Π»Π΅Π΅ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π² Π½Π΅Π³ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΡΠ΄ΠΎΠ² ΠΈ ΡΠ°ΠΌΠΈ ΡΡΠ΄Ρ.
Π’Π°Π±Π»ΠΈΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°ΠΆΠ΅ Π²ΡΡΠΎΠ²Π½ΡΡΡ Β ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ ΠΊΡΠ°Ρ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ ΠΏΠΎΠ»Ρ.
ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°:
from prettytable import PrettyTable
table = PrettyTable()
table.field_names = ['Names', 'Age', 'City']
table.add_row(["ΠΠ»Π΅ΠΊΡ", 20, "ΠΠΎΡΠΊΠ²Π°"])
table.add_row(["ΠΠΎΠ±", 25, "ΠΠΎΡΠΊΠ²Π°"])
table.add_row(["Π‘Π°ΡΠ°", 30, "ΠΠΈΠ½ΡΠΊ"])
table.add_row(["ΠΠ΅ΡΡ", 23, "ΠΠΈΠ΅Π²"])
table.add_row(["ΠΠ°ΡΡ", 67, "ΠΠΎΡΠΊΠ²Π°"])
table.align = 'r'
table.sortby = "Age"
print(table)
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°
ΠΡΠ»ΠΈ Π½Π°Π΄ΠΎΠ΅Π»ΠΎ Π²ΡΠΊΠ»ΡΡΠ°ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ ΠΏΡΠΈΠ²ΡΡΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΠΠΈΡΠΎΠ½. ΠΡΠΈ ΡΡΠΌ Π΄Π»Ρ Π΅Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π²Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π»ΠΈΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ os.
ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°:
import os
os.system("shutdown -s")
ΠΠΈΠ΄Π΅ΠΎ Π½Π° ΡΡΡ ΡΠ΅ΠΌΡ
Π’Π°ΠΊΠΆΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π²ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π²ΡΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ:
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΡΡΡ
ΠΠ° Π½Π°ΡΠ΅ΠΌ ΡΠ°ΠΉΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ Π΅ΡΡΡ ΡΠ³Π»ΡΠ±Π»Π΅Π½Π½ΡΠΉ ΠΊΡΡΡ ΠΏΠΎ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΡΠ·ΡΠΊΠ° ΠΠΈΡΠΎΠ½. Π Ρ ΠΎΠ΄Π΅ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²Ρ ΠΈΠ·ΡΡΠΈΡΠ΅ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ·ΡΠΊ ΠΠΈΡΠΎΠ½, Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ Π½Π°ΡΡΠΈΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π²Π΅Π± ΡΠ°ΠΉΡΡ Π·Π° ΡΡΡΡ Π²Π΅Π± ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° ΠΠΆΠ°Π½Π³ΠΎ. ΠΠ° ΠΊΡΡΡ Π²Ρ ΠΈΠ·ΡΡΠΈΡΠ΅ ΠΌΠ°ΡΡΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΈ ΠΊ ΠΊΠΎΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π±ΡΠ΄Π΅ΡΠ΅ ΡΠΌΠ΅ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ·ΡΠΊΠΎΠΌ ΠΠΈΡΠΎΠ½, ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½Π° Π½ΡΠΌ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΠ΅ ΠΠ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Kivy, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π²Π΅Π± ΡΠ°ΠΉΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΠΆΠ°Π½Π³ΠΎ.
ΠΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Python
ΠΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Python — ΡΡΠΎ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΠ°ΠΌΠΈ. ΠΠ½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°Π·Π½ΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠ² ΠΊ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ — ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΡΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ (ΠΠΠ).
ΠΠ±ΡΠ΅ΠΊΡ ΠΈΠΌΠ΅Π΅Ρ Π΄Π²Π΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ:
ΠΠ°Π²Π°ΠΉΡΠ΅ Π²ΠΎΠ·ΡΠΌΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠΎΠΏΡΠ³Π°ΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°:
- ΠΈΠΌΡ, Π²ΠΎΠ·ΡΠ°ΡΡ, ΡΠ²Π΅Ρ ΠΊΠ°ΠΊ Π°ΡΡΠΈΠ±ΡΡΡ
- ΠΏΠ΅Π½ΠΈΠ΅, ΡΠ°Π½Π΅Ρ ΠΊΠ°ΠΊ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
ΠΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΠΠΠ Π² Python Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π° ββΠ½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.ΠΡΠ° ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½Π° ΠΊΠ°ΠΊ Π‘Π£Π₯ΠΠ (ΠΠ΅ ΠΏΠΎΠ²ΡΠΎΡΡΠΉΡΡ).
Π Python ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΠΠΠ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°ΠΌ:
ΠΠ»Π°ΡΡ
ΠΠ»Π°ΡΡ — ΡΡΠΎ ΠΏΠ»Π°Π½ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΡΠΌΠ°ΡΡ ΠΎ ΠΊΠ»Π°ΡΡΠ΅ ΠΊΠ°ΠΊ ΠΎΠ± ΡΡΠΊΠΈΠ·Π΅ ΠΏΠΎΠΏΡΠ³Π°Ρ Ρ ΡΡΠ»ΡΠΊΠ°ΠΌΠΈ. ΠΠ½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΡΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΎ ΠΈΠΌΠ΅Π½ΠΈ, ΡΠ²Π΅ΡΠ΅, ΡΠ°Π·ΠΌΠ΅ΡΠ΅ ΠΈ Ρ. Π. ΠΡΠ½ΠΎΠ²ΡΠ²Π°ΡΡΡ Π½Π° ΡΡΠΈΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡΡ , ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·ΡΡΠΈΡΡ ΠΏΠΎΠΏΡΠ³Π°Ρ. ΠΠ΄Π΅ΡΡ ΠΏΠΎΠΏΡΠ³Π°ΠΉ — ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ.
ΠΡΠΈΠΌΠ΅ΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ° ΠΏΠΎΠΏΡΠ³Π°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ:
ΠΊΠ»Π°ΡΡ ΠΠΎΠΏΡΠ³Π°ΠΉ: ΠΏΡΠΎΠΉΡΠΈ
ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ class
Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΡΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Parrot .ΠΠ· ΠΊΠ»Π°ΡΡΠ° ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ. ΠΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ — ΡΡΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΠΈΠ· ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°.
ΠΠ±ΡΠ΅ΠΊΡ
ΠΠ±ΡΠ΅ΠΊΡ (ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ) — ΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠ»Π°ΡΡΠ°. ΠΠΎΠ³Π΄Π° ΠΊΠ»Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΏΠ°ΠΌΡΡΡ ΠΈΠ»ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π½Π΅ Π²ΡΠ΄Π΅Π»ΡΡΡΡΡ.
ΠΡΠΈΠΌΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΊΠ»Π°ΡΡΠ° ΠΏΠΎΠΏΡΠ³Π°ΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ:
obj = ΠΠΎΠΏΡΠ³Π°ΠΉ ()
ΠΠ΄Π΅ΡΡ obj — ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° Parrot
.
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ Π½Π°Ρ Π΅ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎ ΠΏΠΎΠΏΡΠ³Π°ΡΡ .Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊ ΠΏΠΎΡΡΡΠΎΠΈΡΡ ΠΊΠ»Π°ΡΡ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΏΠΎΠΏΡΠ³Π°Π΅Π².
ΠΡΠΈΠΌΠ΅Ρ 1: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² Python
ΠΊΠ»Π°ΡΡ ΠΠΎΠΏΡΠ³Π°ΠΉ:
# Π°ΡΡΠΈΠ±ΡΡ ΠΊΠ»Π°ΡΡΠ°
ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΠΈ = "ΠΏΡΠΈΡΠ°"
# Π°ΡΡΠΈΠ±ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°
def __init __ (Ρ, ΠΈΠΌΡ, Π²ΠΎΠ·ΡΠ°ΡΡ):
self.name = ΠΈΠΌΡ
self.age = Π²ΠΎΠ·ΡΠ°ΡΡ
# ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ° Parrot
blu = ΠΠΎΠΏΡΠ³Π°ΠΉ ("ΠΠΎΠ»ΡΠ±ΠΎΠΉ", 10)
woo = ΠΠΎΠΏΡΠ³Π°ΠΉ ("ΠΡ", 15)
# Π΄ΠΎΡΡΡΠΏ ΠΊ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌ ΠΊΠ»Π°ΡΡΠ°
print ("Blu is a {}". format (blu .__ class __. ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΠΈ))
print ("ΠΡ ΡΠΎΠΆΠ΅ {}".ΡΠΎΡΠΌΠ°Ρ (Π²Ρ .__ ΠΊΠ»Π°ΡΡ __. Π²ΠΈΠ΄Ρ))
# Π΄ΠΎΡΡΡΠΏ ΠΊ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°
print ("{} ΠΈΡΠΏΠΎΠ»Π½ΠΈΠ»ΠΎΡΡ {} Π»Π΅Ρ" .format (blu.name, blu.age))
print ("{} {} Π»Π΅Ρ" .format (woo.name, woo.age))
ΠΡΡ ΠΎΠ΄
Blu - ΠΏΡΠΈΡΠ° ΠΡ ΡΠΎΠΆΠ΅ ΠΏΡΠΈΡΠ° ΠΠ»Ρ 10 Π»Π΅Ρ ΠΡ 15 Π»Π΅Ρ
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²ΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΊΠ»Π°ΡΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ Parrot . ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ Π°ΡΡΠΈΠ±ΡΡΡ. ΠΡΡΠΈΠ±ΡΡΡ — ΡΡΠΎ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
ΠΡΠΈ Π°ΡΡΠΈΠ±ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ __init__
ΠΊΠ»Π°ΡΡΠ°.ΠΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΏΠ΅ΡΠ²ΡΠΌ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΊΠ»Π°ΡΡΠ° Parrot . ΠΠ΄Π΅ΡΡ blu ΠΈ woo — ΡΡΠΎ ΡΡΡΠ»ΠΊΠΈ (Π·Π½Π°ΡΠ΅Π½ΠΈΡ) Π½Π° Π½Π°ΡΠΈ Π½ΠΎΠ²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ.
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π°ΡΡΠΈΠ±ΡΡΡ ΠΊΠ»Π°ΡΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ __class __. Views
. ΠΡΡΠΈΠ±ΡΡΡ ΠΊΠ»Π°ΡΡΠ° ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ Π΄Π»Ρ Π²ΡΠ΅Ρ
ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΠΊΠ»Π°ΡΡΠ°. Π’ΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π΄ΠΎΡΡΡΠΏ ΠΊ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ blu.name
ΠΈ blu.age
. ΠΠ΄Π½Π°ΠΊΠΎ Π°ΡΡΠΈΠ±ΡΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΡΠ°Π·Π»ΠΈΡΠ½Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΊΠ»Π°ΡΡΠ°.
Π§ΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ ΠΊΠ»Π°ΡΡΠ°Ρ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°Ρ , ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² ΡΠ°Π·Π΄Π΅Π» ΠΠ»Π°ΡΡΡ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ Python
ΠΠ΅ΡΠΎΠ΄Ρ
ΠΠ΅ΡΠΎΠ΄Ρ — ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π²Π½ΡΡΡΠΈ ΡΠ΅Π»Π° ΠΊΠ»Π°ΡΡΠ°. ΠΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
ΠΡΠΈΠΌΠ΅Ρ 2: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π² Python
ΠΊΠ»Π°ΡΡ ΠΠΎΠΏΡΠ³Π°ΠΉ:
# Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°
def __init __ (Ρ, ΠΈΠΌΡ, Π²ΠΎΠ·ΡΠ°ΡΡ):
self.name = ΠΈΠΌΡ
self.age = Π²ΠΎΠ·ΡΠ°ΡΡ
# ΠΌΠ΅ΡΠΎΠ΄ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°
def Sing (Ρ, ΠΏΠ΅ΡΠ½Ρ):
Π²Π΅ΡΠ½ΠΈΡΠ΅ "{} sings {}".ΡΠΎΡΠΌΠ°Ρ (ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΈΠΌΡ, ΠΏΠ΅ΡΠ½Ρ)
def dance (ΡΠ°ΠΌ):
return "{} ΡΠ΅ΠΉΡΠ°Ρ ΡΠ°Π½ΡΡΠ΅Ρ" .format (self.name)
# ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°
blu = ΠΠΎΠΏΡΠ³Π°ΠΉ ("ΠΠΎΠ»ΡΠ±ΠΎΠΉ", 10)
# Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ Π½Π°ΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°
print (blu.sing ("Π‘ΡΠ°ΡΡΠ»ΠΈΠ²ΡΠΉ"))
ΠΏΠ΅ΡΠ°ΡΡ (blu.dance ())
ΠΡΡ ΠΎΠ΄
Blu ΠΏΠΎΠ΅Ρ 'Happy' Blu ΡΠ΅ΠΉΡΠ°Ρ ΡΠ°Π½ΡΡΠ΅Ρ
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²ΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ Π΄Π²Π° ΠΌΠ΅ΡΠΎΠ΄Π°: sing ()
ΠΈ dance ()
. ΠΠ½ΠΈ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° i.e blu
.
ΠΠ°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠ°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ — ΡΡΠΎ ΡΠΏΠΎΡΠΎΠ± ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π΅ΡΠ°Π»Π΅ΠΉ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π±Π΅Π· Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΠ½ΠΎΠ²Ρ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ (ΠΈΠ»ΠΈ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ). Π’ΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΠΊΠ»Π°ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π±Π°Π·ΠΎΠ²ΡΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ (ΠΈΠ»ΠΈ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ).
ΠΡΠΈΠΌΠ΅Ρ 3: ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ Π² Python
# ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΊΠ»Π°ΡΡ
ΠΊΠ»Π°ΡΡ Bird:
def __init __ (ΡΠ°ΠΌ):
print (Β«ΠΡΠΈΡΠ° Π³ΠΎΡΠΎΠ²Π°Β»)
def whoisThis (Ρ):
print ("ΠΡΠΈΡΠ°")
def ΠΏΠ»Π°Π²Π°ΡΡ (ΡΠ°ΠΌ):
print (Β«ΠΠ»ΡΠ²ΠΈ Π±ΡΡΡΡΠ΅Π΅Β»)
# Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΉ ΠΊΠ»Π°ΡΡ
ΠΊΠ»Π°ΡΡ ΠΠΈΠ½Π³Π²ΠΈΠ½ (ΠΡΠΈΡΠ°):
def __init __ (ΡΠ°ΠΌ):
# Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ super ()
ΡΡΠΏΠ΅Ρ().__Π² ΡΡΠΎΠΌ__()
print (Β«ΠΠΈΠ½Π³Π²ΠΈΠ½ Π³ΠΎΡΠΎΠ²Β»)
def whoisThis (Ρ):
print (Β«ΠΠΈΠ½Π³Π²ΠΈΠ½Β»)
def run (self):
print ("ΠΠ΅Π³ΠΈ Π±ΡΡΡΡΠ΅Π΅")
ΠΏΠ΅Π³Π³ΠΈ = ΠΠΈΠ½Π³Π²ΠΈΠ½ ()
peggy.whoisThis ()
peggy.swim ()
peggy.run ()
ΠΡΡ ΠΎΠ΄
ΠΡΠΈΡΠ° Π³ΠΎΡΠΎΠ²Π° ΠΠΈΠ½Π³Π²ΠΈΠ½ Π³ΠΎΡΠΎΠ² ΠΠΈΠ½Π³Π²ΠΈΠ½ ΠΠ»Π°Π²Π°ΡΡ Π±ΡΡΡΡΠ΅Π΅ ΠΠ΅Π³ΠΈ Π±ΡΡΡΡΠ΅Π΅
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²ΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ Π΄Π²Π° ΠΊΠ»Π°ΡΡΠ°: Bird (ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΊΠ»Π°ΡΡ) ΠΈ Penguin (Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΉ ΠΊΠ»Π°ΡΡ). ΠΠΎΡΠ΅ΡΠ½ΠΈΠΉ ΠΊΠ»Π°ΡΡ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°.ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΡΠΎ ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄Π° swim ()
.
ΠΠΏΡΡΡ ΠΆΠ΅, Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΉ ΠΊΠ»Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΈΠ΄Π΅ΡΡ ΡΡΠΎ ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄Π° whoisThis ()
. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΌΡ ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΡΠΎΠ·Π΄Π°Π²Π°Ρ Π½ΠΎΠ²ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ run ()
.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ super ()
Π²Π½ΡΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° __init __ ()
. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ __init __ ()
ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π²Π½ΡΡΡΠΈ Π΄ΠΎΡΠ΅ΡΠ½Π΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ°.
ΠΠ½ΠΊΠ°ΠΏΡΡΠ»ΡΡΠΈΡ
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΠΠ Π² Python, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ. ΠΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Π΅Ρ ΠΏΡΡΠΌΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ
, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΡΡΠΈΠ΅ΠΉ. Π Python ΠΌΡ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅ΠΌ ΡΠ°ΡΡΠ½ΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°Π½ΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠ΅ΡΠΈΠΊΡΠ°, ΡΠΎ Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΠΎΠ³ΠΎ _
ΠΈΠ»ΠΈ Π΄Π²ΠΎΠΉΠ½ΠΎΠ³ΠΎ __
.
ΠΡΠΈΠΌΠ΅Ρ 4: ΠΠ½ΠΊΠ°ΠΏΡΡΠ»ΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ Π² Python
ΠΊΠ»Π°ΡΡ ΠΠΎΠΌΠΏΡΡΡΠ΅Ρ:
def __init __ (ΡΠ°ΠΌ):
self .__ maxprice = 900
def sell (self):
print ("Π¦Π΅Π½Π° ΠΏΡΠΎΠ΄Π°ΠΆΠΈ: {}".ΡΠΎΡΠΌΠ°Ρ (self .__ maxprice))
def setMaxPrice (self, price):
self .__ maxprice = ΡΠ΅Π½Π°
c = ΠΠΎΠΌΠΏΡΡΡΠ΅Ρ ()
c.sell ()
# ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ΅Π½Ρ
c .__ maxprice = 1000
c.sell ()
# ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ
c.setMaxPrice (1000)
c.sell ()
ΠΡΡ ΠΎΠ΄
Π¦Π΅Π½Π° ΠΏΡΠΎΠ΄Π°ΠΆΠΈ: 900 Π¦Π΅Π½Π° ΠΏΡΠΎΠ΄Π°ΠΆΠΈ: 900 Π¦Π΅Π½Π° ΠΏΡΠΎΠ΄Π°ΠΆΠΈ: 1000
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²ΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ ΠΊΠ»Π°ΡΡ Computer .
ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ __init __ ()
Π΄Π»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ΄Π°ΠΆΠ½ΠΎΠΉ ΡΠ΅Π½Ρ Computer
.ΠΡ ΠΏΡΡΠ°Π»ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ΅Π½Ρ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Python ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ __maxprice ΠΊΠ°ΠΊ ΡΠ°ΡΡΠ½ΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ.
ΠΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, ΡΠΎ Π΅ΡΡΡ setMaxPrice ()
, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ΅Π½Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°.
ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ
ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ — ΡΡΠΎ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ (Π² ΠΠΠ) ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠΎΡΠΌ (ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ ).
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ°ΡΠΊΡΠ°ΡΠΈΡΡ ΡΠΈΠ³ΡΡΡ, Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΡΠΎΡΠΌΡ (ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ, ΠΊΠ²Π°Π΄ΡΠ°Ρ, ΠΊΡΡΠ³).ΠΠ΄Π½Π°ΠΊΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΡ ΠΆΠ΅ ΠΌΠ΅ΡΠΎΠ΄, ΡΡΠΎΠ±Ρ ΡΠ°ΡΠΊΡΠ°ΡΠΈΡΡ Π»ΡΠ±ΡΡ ΡΠΎΡΠΌΡ. ΠΡΠ° ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠΎΠΌ.
ΠΡΠΈΠΌΠ΅Ρ 5: ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠ° Π² Python
ΠΊΠ»Π°ΡΡ ΠΠΎΠΏΡΠ³Π°ΠΉ:
def fly (self):
print (Β«ΠΠΎΠΏΡΠ³Π°ΠΉ ΡΠΌΠ΅Π΅Ρ Π»Π΅ΡΠ°ΡΡΒ»)
def ΠΏΠ»Π°Π²Π°ΡΡ (ΡΠ°ΠΌ):
print (Β«ΠΠΎΠΏΡΠ³Π°ΠΉ Π½Π΅ ΡΠΌΠ΅Π΅Ρ ΠΏΠ»Π°Π²Π°ΡΡΒ»)
ΠΊΠ»Π°ΡΡ ΠΠΈΠ½Π³Π²ΠΈΠ½:
def fly (self):
print (Β«ΠΠΈΠ½Π³Π²ΠΈΠ½ Π½Π΅ ΡΠΌΠ΅Π΅Ρ Π»Π΅ΡΠ°ΡΡΒ»)
def ΠΏΠ»Π°Π²Π°ΡΡ (ΡΠ°ΠΌ):
print (Β«ΠΠΈΠ½Π³Π²ΠΈΠ½ ΡΠΌΠ΅Π΅Ρ ΠΏΠ»Π°Π²Π°ΡΡΒ»)
# ΠΠ±ΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ
def flying_test (ΠΏΡΠΈΡΠ°):
bird.fly ()
#instantiate objects
blu = ΠΠΎΠΏΡΠ³Π°ΠΉ ()
ΠΏΠ΅Π³Π³ΠΈ = ΠΠΈΠ½Π³Π²ΠΈΠ½ ()
# ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ°
Π»Π΅ΡΠ°ΡΡΠΈΠΉ_ΡΠ΅ΡΡ (blu)
fly_test (peggy)
ΠΡΡ ΠΎΠ΄
ΠΠΎΠΏΡΠ³Π°ΠΉ ΡΠΌΠ΅Π΅Ρ Π»Π΅ΡΠ°ΡΡ ΠΠΈΠ½Π³Π²ΠΈΠ½ Π½Π΅ ΡΠΌΠ΅Π΅Ρ Π»Π΅ΡΠ°ΡΡ
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²ΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ Π΄Π²Π° ΠΊΠ»Π°ΡΡΠ°: Parrot ΠΈ Penguin .Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ
Π΅ΡΡΡ ΠΎΠ±ΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ fly ()
. ΠΠ΄Π½Π°ΠΊΠΎ ΠΈΡ
ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°Π·Π½ΡΠ΅.
Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ, ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΎΠ±ΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΡΠΎ Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ flying_test ()
, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π»ΡΠ±ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ ΠΎΠ±ΡΠ΅ΠΊΡΠ° fly ()
. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ blu ΠΈ peggy Π² ΡΡΠ½ΠΊΡΠΈΠΈ flying_test ()
, ΠΎΠ½Π° ΡΠ°Π±ΠΎΡΠ°Π»Π° ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ.
ΠΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ, ΠΎ ΠΊΠΎΡΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠΌΠ½ΠΈΡΡ:
- ΠΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π΅Π»Π°Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠΉ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ.
- ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠ»Π°ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ, ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ.
- ΠΠ°Π½Π½ΡΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Ρ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½Ρ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ .
- ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΠΌΠΎΠ³ΡΡ ΠΏΠΈΡΠ°ΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΊΠΎΠ΄.
.
ΠΠΎΠ»Π½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° Python
ΠΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ Python ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ Π²ΡΠ΅Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ . ΠΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ Π²Π°ΠΌ ΠΈΠ·ΡΡΠΈΡΡ Python ΠΎΡ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π΄ΠΎ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΠΎΠ³ΠΎ Π·Π° ΠΏΡΠΎΡΡΡΠ΅ ΠΈ Π»Π΅Π³ΠΊΠΈΠ΅ ΡΠ°Π³ΠΈ.
Python ΠΎΡΠ΅Π½Ρ ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΠΎ ΠΏΠΎΠ½ΡΡΠ΅Π½ ΠΈ ΠΏΡΠΎΡΡ Π² ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΠΈ. ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π² ΠΎΠ±Π»Π°ΡΡΡΡ Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½ΡΡ ΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ.
ΠΠ½Π΄Π΅ΠΊΡ
TIOBE ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΡΡΠ°Π²ΠΈΠ» Π΅Π³ΠΎ Π½Π° ΡΡΠ΅ΡΡΠ΅ ΠΌΠ΅ΡΡΠΎ ΡΡΠ΅Π΄ΠΈ ΡΠ°ΠΌΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² 2019 Π³ΠΎΠ΄Ρ.Π Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ²Π΅Π»ΠΈΡΠΈΠ»ΠΎΡΡ Π½Π° 2% ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΏΡΠΎΡΠ»ΡΠΌ Π³ΠΎΠ΄ΠΎΠΌ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π²Ρ ΠΏΡΠΈΠ½ΡΠ»ΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΡΡΠΈΡΡ Python.
ΠΡΠ»ΠΈ Π²Ρ Π½ΠΎΠ²ΠΈΡΠΎΠΊ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° Python, ΠΌΡ Π½Π°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ Π²Π°ΠΌ ΠΈΠ·ΡΡΠΈΡΡ ΡΡΠΎΡ ΡΡΠ΅Π±Π½ΠΈΠΊ. ΠΠ΄Π½Π°ΠΊΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΠ°Π·Ρ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΡΠ°Π·Π΄Π΅Π»Ρ ΡΡΠ΅Π±Π½ΠΈΠΊΠ° Python [Go] .
Π£ΡΠ΅Π±Π½ΠΎΠ΅ ΠΏΠΎΡΠΎΠ±ΠΈΠ΅ ΠΏΠΎ Python Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
Python Π»Π΅Π³ΠΎΠΊ Π² ΠΈΠ·ΡΡΠ΅Π½ΠΈΠΈ, ΡΠ΄ΠΎΠ±ΠΎΡΠΈΡΠ°Π΅ΠΌ ΠΈ ΠΏΡΠΎΡΡ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ. ΠΠ½ ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΡΡΡΠΉ ΠΈ ΠΏΠΎΡ ΠΎΠΆΠΈΠΉ Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΌΠ΅Π½ΡΡΠ΅ ΠΊΠΎΠ΄Π° ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΡΡΡΡ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠ΅, Π° Π½Π΅ Π΄ΡΠΌΠ°ΡΡ ΠΎ ΠΌΠ΅Π»ΡΡΠ°ΠΉΡΠΈΡ Π΄Π΅ΡΠ°Π»ΡΡ ΡΠ·ΡΠΊΠ°.
ΠΡ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ ΡΡΠΎΡ ΠΊΡΡΡ, ΡΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π³Π»ΡΠ±ΠΈΠ½Ρ, Π΄Π΅ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΡΡΠ΅ΠΏΠ΅Π½Ρ. ΠΠ°ΠΆΠ΅ Π½ΠΎΠ²ΠΈΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ Π½Π΅ΠΌΡ ΠΈ ΠΈΠ·ΡΡΠΈΡΡ Python Ρ Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠΈΠΌΠΈ ΡΡΠΈΠ»ΠΈΡΠΌΠΈ, Π½Π΅ Π·Π°ΡΡΠ°ΡΠΈΠ²Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΈ Π·Π½Π°Π½ΠΈΡ Π² Π²Π°ΡΠΈΡ ΡΠ΅Π°Π»ΡΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ .
Π ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ°Π·Π΄Π΅Π»Π°Ρ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΈΡΡΠΎΡΠΈΡ Python, ΡΡΠ½ΠΊΡΠΈΠΈ, Π΄ΠΎΠΌΠ΅Π½Ρ, Π·Π°ΡΠ΅ΠΌ ΠΈΠ·ΡΡΠ°ΡΡ Python, ΠΊΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ Python Π½Π° ΡΠ°ΠΊΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ , ΠΊΠ°ΠΊ Windows, Linux ΠΈ Mac OS X.
ΠΠ°Π²Π΅ΡΡ
ΠΡΡΠΎΡΠΈΡ Python
ΠΡΠΎ Π±ΡΠ» Π³ΠΎΠ»Π»Π°Π½Π΄ΡΠΊΠΈΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ, ΠΠ²ΠΈΠ΄ΠΎ ΠΠ°Π½ Π ΠΎΡΡΡΠΌ , ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°ΠΏΠΈΡΠ°Π» Python ΠΊΠ°ΠΊ Ρ ΠΎΠ±Π±ΠΈ-ΠΏΡΠΎΠ΅ΠΊΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΅ΡΠ΅ Π² ΠΊΠΎΠ½ΡΠ΅ 1980-Ρ .Π‘ ΡΠ΅Ρ ΠΏΠΎΡ ΠΎΠ½ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΠ»ΡΡ Π² ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΌΡΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΡΡ ΡΠ·ΡΠΊΠΎΠ² ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΌΠΈΡΠ°.
Π§ΡΠΎ ΠΏΡΠΈΠ²Π΅Π»ΠΎ ΠΠ²ΠΈΠ΄ΠΎ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Python?
ΠΠΎ Π΅Π³ΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌ ΡΠ»ΠΎΠ²Π°ΠΌ, ΠΠ²ΠΈΠ΄ΠΎ ΡΠ°ΡΠΊΡΡΠ» ΡΠ΅ΠΊΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Python. ΠΠ½ Π½Π°ΡΠ°Π» ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°Π΄ Π½ΠΈΠΌ ΠΊΠ°ΠΊ Π½Π°Π΄ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ Π½Π° Π²ΡΡ ΠΎΠ΄Π½ΡΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π° Π ΠΎΠΆΠ΄Π΅ΡΡΠ²ΠΎ Π² Π΄Π΅ΠΊΠ°Π±ΡΠ΅ 1989 Π³ΠΎΠ΄Π°. ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΎΠ½ Ρ ΠΎΡΠ΅Π» ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ, ΠΏΠΎΡΠΎΠΌΠΎΠΊ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ABC, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠ½ Π±ΡΠ». Π Π²ΡΠ΅ ΠΌΡ Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ ΡΡΠΎ Π±ΡΠ» Π½Π΅ ΠΊΡΠΎ ΠΈΠ½ΠΎΠΉ, ΠΊΠ°ΠΊ Python, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΠ»ΡΡ Π² ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ°ΠΊ ΠΏΠΎΡΠ²ΠΈΠ»ΠΎΡΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Python?
ΠΡΠΈΠ΄ΠΎ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΡΠΈΡΠ°Π» Ρ Π°ΠΊΠ΅ΡΠΎΠ² Unix / C ΡΠ΅Π»Π΅Π²ΡΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°. Π ΡΡΠΎ Π΅ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎ, ΠΎΠ½ Π»ΡΠ±ΠΈΠ» ΡΠΌΠΎΡΡΠ΅ΡΡ Π·Π½Π°ΠΌΠ΅Π½ΠΈΡΡΠΉ ΠΊΠΎΠΌΠ΅Π΄ΠΈΠΉΠ½ΡΠΉ ΡΠ΅ΡΠΈΠ°Π» [ΠΠ΅ΡΠ°ΡΡΠΈΠΉ ΡΠΈΡΠΊ ΠΠΎΠ½ΡΠΈ ΠΠ°ΠΉΡΠΎΠ½Π°]. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΈΠΌΡ Python ΠΏΡΠΈΡΠ»ΠΎ Π΅ΠΌΡ Π² Π³ΠΎΠ»ΠΎΠ²Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π΅ΠΌΡ ΠΏΠΎ Π²ΠΊΡΡΡ, Π½ΠΎ ΠΈ Π΅Π³ΠΎ ΡΠ΅Π»Π΅Π²ΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ.
Π‘ΠΏΠΈΡΠΎΠΊ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ Π²ΡΠΏΡΡΠΊΠΎΠ² Python
ΠΠ΅ΡΡΠΈΡ Python
ΠΠ°ΡΠ° Π²ΡΠΏΡΡΠΊΠ°
Python v0.1.0 (ΠΠ΅ΡΠ²ΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅)
1990
Python v0.9.5 (ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Macintosh)
2 ΡΠ½Π²Π°ΡΡ 1992 Π³.
Python v1.0.0
26 ΡΠ½Π²Π°ΡΡ 1994 Π³.
Python v1.1.0
26 ΡΠ½Π²Π°ΡΡ 1994 Π³.
Python v1.5.0
3 ΡΠ½Π²Π°ΡΡ 1998 Π³.
Python v1.6.0 (ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΡ)
5 ΡΠ΅Π½ΡΡΠ±ΡΡ 2000 Π³.
Python v2.0.0 (Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ°)
16 ΠΎΠΊΡΡΠ±ΡΡ 2000 Π³.
Python v2.7.0 (ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΡ)
3 ΠΈΡΠ»Ρ 2010 Π³.
Python v3.0,0
3 Π΄Π΅ΠΊΠ°Π±ΡΡ 2008 Π³.
Python v3.7.0 (ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΡ)
ΠΈΡΠ½Ρ 2018 Π³. ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅.
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΡΠ°Π·Π΄Π΅Π»Ρ Python tutorial , ΡΠ΅Π»ΠΊΠ½ΠΈΡΠ΅ Π·Π΄Π΅ΡΡ .
ΠΠ°Π²Π΅ΡΡ
Π’ΠΈΡ ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Python
β ΠΠΎΠ΄ ΠΠ°ΡΠ΅ΡΡΠ²ΠΎ
ΠΠΎΠ΄
Python Π»Π΅Π³ΠΊΠΎ ΡΠΈΡΠ°Π΅ΡΡΡ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΡΠΌ Π΄Π»Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΡ. ΠΠ½ ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΡΠΎΠΊΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΏΠ΅ΡΠ΅Π΄ΠΎΠ²ΡΡ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΈΠΈ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ (OO) ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
β ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°
Python ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΡΡΡΠΉ ΠΈ ΡΠ»Π΅Π³Π°Π½ΡΠ½ΡΠΉ ΡΡΠΈΠ»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ. ΠΡΠ°ΠΊ, Π²Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ. ΠΡΠΎΡΡΠΎΠ΅ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ ΡΠ²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΈΠΌΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°. ΠΠΎΠ΄ Python Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠ΅Π½ΡΡΠ΅, ΡΠ΅ΠΌ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ C ++ / Java. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΌΠ΅Π½ΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ Π²Π²ΠΎΠ΄ΠΈΡΡ, ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡΡΡ ΠΎΡΠ»Π°Π΄ΠΊΠΎΠΉ ΠΈ ΠΌΠ΅Π½ΡΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ·ΡΠΊΠΎΠ², ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Python Π½Π΅ Π½ΡΠΆΠ΄Π°ΡΡΡΡ Π² ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ΅, ΡΡΠΎ Π΅ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠΎΠ²ΡΡΠ°Π΅Ρ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°.
β ΠΠΎΠ΄ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΠΈ
Π’Π°ΠΊ ΠΊΠ°ΠΊ Python ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ, ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΏΡΠ°Π²Π»ΡΡΡ Π·Π°Π΄Π°ΡΠ΅ΠΉ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΠΈ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Python Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΌΠ΅Π½, ΡΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΡΠ°Π·Π½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ ΠΈ Π²ΡΠ΄Π°Π²Π°ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Π°ΠΌ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡΡ ΡΡΡΠΎΡΠΊΡ Π² ΠΊΠΎΠ΄Π΅.
β ΠΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΈ Π²Π½Π΅ΡΠ½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
ΠΠ°ΠΊΠ΅ΡΠΎΠ² Python Π±ΠΎΠ»ΡΡΠΎΠΉ Π½Π΅Ρ. Π³ΠΎΡΠΎΠ²ΠΎΠ³ΠΎ ΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΠΈΡ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΆΠ΅Π»Π°Π΅ΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ.
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Python Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½ΡΡ ΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ
β ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΠ΅Π±ΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠΊΠ²ΠΎΠ·Π½ΡΡ ΡΠ°Π±ΠΎΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ². ΠΠ΄ΠΈΠ½ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠΌ Python, ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π΄ΡΡΠ³ΠΈΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ Π½Π° ΡΠ°ΠΊΠΈΡ ΡΠ·ΡΠΊΠ°Ρ , ΠΊΠ°ΠΊ Java / C ++ ΠΈΠ»ΠΈ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ.
Python ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ. ΠΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ, ΠΊΠ°ΠΊ Π·Π°Π³ΡΡΠ·ΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ C ΠΈ C ++ ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ, ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ Java ΠΈ DotNET, ΡΠ²ΡΠ·Ρ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ COM / Silverlight ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ USB-ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ ΡΠ΅ΡΠ΅Π· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠΎΡΡΡ.ΠΠ½ Π΄Π°ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡΡΡΡ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΏΠΎ ΡΠ΅ΡΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°ΠΊΠΈΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ², ΠΊΠ°ΠΊ SOAP, XML-RPC ΠΈ CORBA.
β ΠΠ΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅
Python — ΡΡΠΎ OSS. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ, Π²Π½ΠΎΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΡΡ Π΅Π³ΠΎ Π΄Π°ΠΆΠ΅ Π² ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΈΡ ΡΠ΅Π»ΡΡ . ΠΠΌΠ΅Π½Π½ΠΎ ΠΈΠ·-Π·Π° ΡΠ°ΠΊΠΎΠΉ ΠΎΡΠΊΡΡΡΠΎΡΡΠΈ Python ΡΠΎΠ±ΡΠ°Π» ΠΎΠ±ΡΠΈΡΠ½ΡΡ Π±Π°Π·Ρ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ°ΡΡΠ΅Ρ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΡΠ΅Π½Π½ΠΎΡΡΡ.
β ΠΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΎΡ Core
Python Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ (ΠΠΠ).ΠΠΠ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π°, Π° ΡΠ²Π΅ΡΠ΄ΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π»Π΅ΠΆΠ°ΡΠΈΡ Π² Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ Π²Π°ΠΌ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΠΠ Π»Π΅Π³ΠΊΠΎ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈ ΡΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΡΠΎΠΎΡΠ½ΠΎΡΡΡΡΡ. Π Π·Π°ΡΠ΅ΠΌ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅Π°Π»ΡΠ½ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ°Π±ΠΎΡΠ°Π»Π°.
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΡΠ°Π·Π΄Π΅Π»Ρ Python tutorial , Π½Π°ΠΆΠΌΠΈΡΠ΅ Π·Π΄Π΅ΡΡ .
ΠΠ°Π²Π΅ΡΡ
ΠΠ±Π»Π°ΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Python
β Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
Python ΠΈΠΌΠ΅Π΅Ρ Π»ΡΠ²ΠΈΠ½ΡΡ Π΄ΠΎΠ»Ρ Π² ΠΎΠ±Π»Π°ΡΡΠΈ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.ΠΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠΎΠ΄Π°ΡΠ΅Π»ΠΈ ΠΈΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π°, Π·Π½Π°ΡΡΠΈΡ Python. Π Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΠ°ΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½ΠΈΡ , ΠΈΠ·ΡΡΠΈΠ² ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ (WAF), ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Django, Flask, CherryPy ΠΈ Bottle, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΠΎΠ±ΡΠΈΡΠ½ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΡΠ΅ ΠΎΠ½ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Ρ
.
ΠΠ°ΡΡΠΈΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π² Python?
ΠΠΎΠ΄ΡΠ»ΠΈ
ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΌΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Python.
Π€Π°ΠΉΠ», ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΊΠΎΠ΄ Python, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: example.py
, Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ, ΠΈ Π΅Π³ΠΎ ΠΈΠΌΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π±ΡΠ΄Π΅Ρ example
.
ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΡΡΠΎΠ±Ρ ΡΠ°Π·Π±ΠΈΡΡ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π°.
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π½Π°ΡΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΠΌΠΎΠ΄ΡΠ»Π΅ ΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ, Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π² ΡΠ°Π·Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ. ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΈ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΠ΅ Π΅Π³ΠΎ ΠΊΠ°ΠΊ example.py
.
# ΠΡΠΈΠΌΠ΅Ρ ΠΌΠΎΠ΄ΡΠ»Ρ Python
def add (a, b):
"" "ΠΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π΄Π²Π°
ΡΠΈΡΠ»Π° ΠΈ Π²Π΅ΡΠ½ΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ "" "
ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ = a + b
Π²Π΅ΡΠ½ΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ
ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ add ()
Π²Π½ΡΡΡΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ example
.Π€ΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π΄Π²Π° ΡΠΈΡΠ»Π° ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΡ
ΡΡΠΌΠΌΡ.
ΠΠ°ΠΊ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π² Python?
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π²Π½ΡΡΡΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ Π² Π΄ΡΡΠ³ΠΎΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Π² Python.
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ import
. Π§ΡΠΎΠ±Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π°Ρ ΡΠ°Π½Π΅Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ , ΠΏΡΠΈΠΌΠ΅Ρ
, ΠΌΡ Π²Π²ΠΎΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ Python.
>>> ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠΌΠΏΠΎΡΡΠ°
ΠΡΠΈ ΡΡΠΎΠΌ ΠΈΠΌΠ΅Π½Π° ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ
Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅
, Π½Π΅ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΡΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΡΠ΅ΠΊΡΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².ΠΠ½ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅Ρ ΡΡΠ΄Π° ΠΈΠΌΡ ΠΌΠΎΠ΄ΡΠ»Ρ , ΠΏΡΠΈΠΌΠ΅Ρ
.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΈΠΌΡ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΎΡΠΊΡ .
ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
>>> example.add (4,5.5)
9,5
Python ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ ΠΏΠΎΠ»Π½ΡΠΌ ΡΠΏΠΈΡΠΊΠΎΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Python ΠΈ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΈ ΡΠ°ΠΉΠ»Ρ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Lib Π²Π½ΡΡΡΠΈ ΠΌΠ΅ΡΡΠ°, Π³Π΄Π΅ Π²Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ Python.
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΌΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ Π½Π°ΡΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ.
ΠΡΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΈΠΌΠΏΠΎΡΡΠ° ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ. ΠΠ½ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π½ΠΈΠΆΠ΅ ..
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΈΠΌΠΏΠΎΡΡΠ° Python
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° import
ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡΠΌ Π²Π½ΡΡΡΠΈ Π½Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΡΠΎΡΠΊΠΈ, ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π²ΡΡΠ΅. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ.
# ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΈΠΌΠΏΠΎΡΡΠ°
# Π΄Π»Ρ ΠΈΠΌΠΏΠΎΡΡΠ° ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ
ΠΈΠΌΠΏΠΎΡΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠΈ
print (Β«ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΠ»Π° ΠΏΠΈΒ», math.pi)
ΠΠΎΠ³Π΄Π° Π²Ρ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π²ΡΠ²ΠΎΠ΄ Π±ΡΠ΄Π΅Ρ:
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΠΈ ΡΠ°Π²Π½ΠΎ 3.141592653589793
ΠΠΌΠΏΠΎΡΡ Ρ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π² Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
# ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π² Π΅Π³ΠΎ
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΡ ΠΊΠ°ΠΊ m
print (Β«ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΠ»Π° ΠΏΠΈΒ», m.pi)
ΠΡ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π»ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ math
Π² m
. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΠ»ΡΡΠ°ΡΡ
ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ Π½Π°ΠΌ Π²ΡΠ΅ΠΌΡ Π½Π° Π½Π°Π±ΠΎΡ ΡΠ΅ΠΊΡΡΠ°.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΈΠΌΡ math
Π½Π΅ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π΅ΡΡΡ Π² Π½Π°ΡΠ΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, math.pi
Π½Π΅Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π΅Π½, Π° m.pi
— ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ.
Python ΠΈΠ· … ΠΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΈΠΌΠΏΠΎΡΡΠ°
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΈΠΌΠ΅Π½Π° ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρ Π±Π΅Π· ΠΈΠΌΠΏΠΎΡΡΠ° ΠΌΠΎΠ΄ΡΠ»Ρ Π² ΡΠ΅Π»ΠΎΠΌ. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ.
# ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΈ ΠΈΠ· ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ
ΠΈΠ· ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠΌΠΏΠΎΡΡΠ° ΠΏΠΈ
print (Β«ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΠ»Π° ΠΏΠΈΒ», ΠΏΠΈ)
ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π°ΡΡΠΈΠ±ΡΡ pi
ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρ math
.
Π ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΌΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΠΎΡΠΊΠΈ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
>>> ΠΈΠ· ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠΌΠΏΠΎΡΡΠ° pi, e
>>> ΠΏΠΈ
3.141592653589793
>>> Π΅
2,718281828459045
ΠΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΠΈΠΌΠ΅Π½Π°
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΠΈΠΌΠ΅Π½Π° (ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ) ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ:
# ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΠΈΠΌΠ΅Π½Π° ΠΈΠ· ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ math
ΠΈΠ· ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠΌΠΏΠΎΡΡΠ° *
print (Β«ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΠ»Π° ΠΏΠΈΒ», ΠΏΠΈ)
ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π»ΠΈ Π²ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈΠ· ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ. ΠΡΠΎ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π²ΡΠ΅ ΠΈΠΌΠ΅Π½Π°, Π²ΠΈΠ΄ΠΈΠΌΡΠ΅ Π² Π½Π°ΡΠ΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ, ΠΊΡΠΎΠΌΠ΅ ΡΠ΅Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°Π½ΠΈΡ (ΡΠ°ΡΡΠ½ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ).
ΠΠΌΠΏΠΎΡΡ Π²ΡΠ΅Π³ΠΎ, ΡΡΠΎ ΠΎΡΠΌΠ΅ΡΠ΅Π½ Π·Π²Π΅Π·Π΄ΠΎΡΠΊΠΎΠΉ (*), Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Ρ ΠΎΡΠΎΡΠ΅ΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°. ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ Π·Π°ΡΡΡΠ΄Π½ΡΠ΅Ρ ΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°.
ΠΡΡΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΌΠΎΠ΄ΡΠ»Ρ Python
ΠΡΠΈ ΠΈΠΌΠΏΠΎΡΡΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ Python ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΡ. ΠΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΡΠ½Π°ΡΠ°Π»Π° ΠΈΡΠ΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ. ΠΠ°ΡΠ΅ΠΌ (Π΅ΡΠ»ΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½) Python ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ², ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ
Π² sys.path
. ΠΠΎΠΈΡΠΊ Π²Π΅Π΄Π΅ΡΡΡ Π² ΡΠ°ΠΊΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅.
- Π’Π΅ΠΊΡΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³.
-
PYTHONPATH
(ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΡΠ΅Π΄Ρ ΡΠΎ ΡΠΏΠΈΡΠΊΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ²). - ΠΠ°Π²ΠΈΡΡΡΠΈΠΉ ΠΎΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
>>> import sys >>> sys.path ['', 'C: \ Python33 \ Lib \ idlelib', 'C: \ Windows \ system32 \ python33.zip', 'C: \ Python33 \ DLLs', 'C: \ Python33 \ lib', 'C: \\ Python33', 'C: \ Python33 \ lib \ site-packages']
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΡΠΎΡ ΡΠΏΠΈΡΠΎΠΊ, ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½Π°Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΏΡΡΡ.
ΠΠ΅ΡΠ΅Π·Π°ΡΡΠ΄ΠΊΠ° ΠΌΠΎΠ΄ΡΠ»Ρ
ΠΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Python ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅Ρ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· Π·Π° ΡΠ΅Π°Π½Ρ. ΠΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π²Π΅ΡΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌΠΈ. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΉ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ Π² ΠΌΠΎΠ΄ΡΠ»Π΅ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ my_module
.
# ΠΡΠΎΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΡΡΠ΅ΠΊΡ
# ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΡΠΉ ΠΈΠΌΠΏΠΎΡΡ ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠ°
print (Β«ΠΡΠΎΡ ΠΊΠΎΠ΄ Π±ΡΠ» Π²ΡΠΏΠΎΠ»Π½Π΅Π½Β»)
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ ΡΡΡΠ΅ΠΊΡ ΠΎΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠΌΠΏΠΎΡΡΠ°.
>>> ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ my_module
ΠΡΠΎΡ ΠΊΠΎΠ΄ Π±ΡΠ» Π²ΡΠΏΠΎΠ»Π½Π΅Π½
>>> ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ my_module
>>> import my_module
ΠΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ Π½Π°Ρ ΠΊΠΎΠ΄ Π±ΡΠ» Π²ΡΠΏΠΎΠ»Π½Π΅Π½ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·.ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π½Π°Ρ ΠΌΠΎΠ΄ΡΠ»Ρ Π±ΡΠ» ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·.
Π’Π΅ΠΏΠ΅ΡΡ, Π΅ΡΠ»ΠΈ Π½Π°Ρ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π½Π°ΠΌ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π±Ρ Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΡ. ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ — ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ. ΠΠΎ ΡΡΠΎ ΠΌΠ°Π»ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ.
Python ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ reload ()
Π²Π½ΡΡΡΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ imp
, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ. Π‘Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ:
>>> ΠΈΠΌΠΏΠΎΡΡΠ½ΡΠΉ ΠΈΠΌΠΏ
>>> ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ my_module
ΠΡΠΎΡ ΠΊΠΎΠ΄ Π±ΡΠ» Π²ΡΠΏΠΎΠ»Π½Π΅Π½
>>> ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ my_module
>>> ΠΈΠΌΠΏ.ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΡ (my_module)
ΠΡΠΎΡ ΠΊΠΎΠ΄ Π±ΡΠ» Π²ΡΠΏΠΎΠ»Π½Π΅Π½
<ΠΌΠΎΠ΄ΡΠ»Ρ 'my_module' ΠΈΠ· '. \\ my_module.py'>
ΠΡΡΡΠΎΠ΅Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ dir ()
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ dir ()
, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ ΠΈΠΌΠ΅Π½Π°, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π²Π½ΡΡΡΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ add ()
Π² ΠΌΠΎΠ΄ΡΠ»Π΅ example
, ΠΊΠΎΡΠΎΡΡΠΉ Ρ Π½Π°Ρ Π±ΡΠ» Π² Π½Π°ΡΠ°Π»Π΅.
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ dir
Π² ΠΌΠΎΠ΄ΡΠ»Π΅ , ΠΏΡΠΈΠΌΠ΅Ρ
ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
>>> dir (ΠΏΡΠΈΠΌΠ΅Ρ)
['__builtins__',
'__cached__',
'__doc__',
'__ΡΠ°ΠΉΠ»__',
'__initializing__',
'__loader__',
'__ΠΈΠΌΡ__',
'__package__',
'Π΄ΠΎΠ±Π°Π²ΠΈΡΡ']
ΠΠ΄Π΅ΡΡ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠΌΠ΅Π½ (Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ
).ΠΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠΌΠ΅Π½Π°, Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠ΅ΡΡ Ρ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°Π½ΠΈΡ, ΡΠ²Π»ΡΡΡΡΡ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌΠΈ Python ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌΠΈ Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ (Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ).
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΡΡΠΈΠ±ΡΡ __name__
ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠΌΡ ΠΌΠΎΠ΄ΡΠ»Ρ.
>>> ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠΌΠΏΠΎΡΡΠ°
>>> ΠΏΡΠΈΠΌΠ΅Ρ .__ ΠΈΠΌΡ__
'ΠΏΡΠΈΠΌΠ΅Ρ'
ΠΡΠ΅ ΠΈΠΌΠ΅Π½Π°, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π² Π½Π°ΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈΠΌΠ΅Π½, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ dir ()
Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ
-Π»ΠΈΠ±ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ².
>>> Π° = 1
>>> b = "ΠΏΡΠΈΠ²Π΅Ρ"
>>> ΠΈΠΌΠΏΠΎΡΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠΈ
>>> dir ()
['__builtins__', '__doc__', '__name__', 'a', 'b', 'math', 'pyscripter']
.ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Python
Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° HCF ΠΈΠ»ΠΈ GCD
ΠΠ°ΠΈΠ²ΡΡΡΠΈΠΉ ΠΎΠ±ΡΠΈΠΉ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ (H.C.F) ΠΈΠ»ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠΈΠΉ ΠΎΠ±ΡΠΈΠΉ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ (G.C.D) Π΄Π²ΡΡ ΡΠΈΡΠ΅Π» — ΡΡΠΎ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠ΅Π΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ Π΄Π΅Π»ΠΈΡ Π΄Π²Π° Π·Π°Π΄Π°Π½Π½ΡΡ ΡΠΈΡΠ»Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, H.C.F Π΄Π»Ρ 12 ΠΈ 14 ΡΠ°Π²Π½ΡΠ΅ΡΡΡ 2.
.
ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄: ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΊΠ»ΠΎΠ²
# ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Python Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° H.C.F Π΄Π²ΡΡ
ΡΠΈΡΠ΅Π»
# ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ
def compute_hcf (x, y):
# Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΌΠ΅Π½ΡΡΠ΅Π΅ ΡΠΈΡΠ»ΠΎ
Π΅ΡΠ»ΠΈ x> y:
ΠΌΠ΅Π½ΡΡΠ΅ = Ρ
Π΅ΡΠ΅:
ΠΌΠ΅Π½ΡΡΠ΅ = Ρ
Π΄Π»Ρ i Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ (1, ΠΌΠ΅Π½ΡΡΠ΅ + 1):
Π΅ΡΠ»ΠΈ ((x% i == 0) ΠΈ (y% i == 0)):
hcf = Ρ
Π²ΠΎΠ·Π²ΡΠ°Ρ hcf
ΡΠΈΡΠ»ΠΎ1 = 54
ΡΠΈΡΠ»ΠΎ2 = 24
print ("H.Π.Π€. ΡΠ°Π²Π½ΠΎ ", compute_hcf (num1, num2))
ΠΡΡ ΠΎΠ΄
H.C.F. ΡΡΠΎ 6
ΠΠ΄Π΅ΡΡ Π΄Π²Π° ΡΠ΅Π»ΡΡ
ΡΠΈΡΠ»Π°, Ρ
ΡΠ°Π½ΡΡΠΈΠ΅ΡΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
num1 ΠΈ num2 , ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π² ΡΡΠ½ΠΊΡΠΈΡ compute_hcf ()
. Π€ΡΠ½ΠΊΡΠΈΡ Π²ΡΡΠΈΡΠ»ΡΠ΅Ρ H.C.F. ΡΡΠΈ Π΄Π²Π° ΡΠΈΡΠ»Π° ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΅Π³ΠΎ.
Π ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΡ ΡΠ½Π°ΡΠ°Π»Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΠΌΠ΅Π½ΡΡΠ΅Π΅ ΠΈΠ· Π΄Π²ΡΡ
ΡΠΈΡΠ΅Π», ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ H.C.F ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅Π½ΡΡΠ΅ ΠΈΠ»ΠΈ ΡΠ°Π²Π½ΡΡΡΡΡ Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠ΅ΠΌΡ ΡΠΈΡΠ»Ρ. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠΈΠΊΠ» Π΄Π»Ρ
, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΎΡ 1 ΠΊ ΡΡΠΎΠΌΡ ΡΠΈΡΠ»Ρ.
ΠΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΌΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ Π»ΠΈ Π½Π°ΡΠ΅ ΡΠΈΡΠ»ΠΎ Π΄Π΅Π»ΠΈΡ ΠΎΠ±Π° Π²Ρ ΠΎΠ΄Π½ΡΡ ΡΠΈΡΠ»Π°. ΠΡΠ»ΠΈ ΡΡΠΎ ΡΠ°ΠΊ, ΠΌΡ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ Π½ΠΎΠΌΠ΅Ρ ΠΊΠ°ΠΊ H.C.F. ΠΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ ΡΠΈΠΊΠ»Π° ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠ΅Π΅ ΡΠΈΡΠ»ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ Π΄Π΅Π»ΠΈΡ ΠΎΠ±Π° ΡΠΈΡΠ»Π°.
ΠΡΡΠ΅ΡΠΏΠΎΠΌΡΠ½ΡΡΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠΎΡΡ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ, Π½ΠΎ Π½Π΅ΡΡΡΠ΅ΠΊΡΠΈΠ²Π΅Π½. ΠΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎΠΈΡΠΊΠ° H.C.F. — Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΠ²ΠΊΠ»ΠΈΠ΄Π°.
Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΠ²ΠΊΠ»ΠΈΠ΄Π°
ΠΡΠΎΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° ΡΠΎΠΌ, ΡΡΠΎ H.C.F. Π΄Π²ΡΡ ΡΠΈΡΠ΅Π» ΡΠ°ΠΊΠΆΠ΅ Π΄Π΅Π»ΠΈΡ ΠΈΡ ΡΠ°Π·Π½ΠΈΡΡ.
Π ΡΡΠΎΠΌ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ΅ ΠΌΡ Π΄Π΅Π»ΠΈΠΌ Π±ΠΎΠ»ΡΡΠ΅Π΅ Π½Π° ΠΌΠ΅Π½ΡΡΠ΅Π΅ ΠΈ Π±Π΅ΡΠ΅ΠΌ ΠΎΡΡΠ°ΡΠΎΠΊ. Π’Π΅ΠΏΠ΅ΡΡ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅ ΠΌΠ΅Π½ΡΡΠ΅Π΅ Π½Π° ΡΡΠΎΡ ΠΎΡΡΠ°ΡΠΎΠΊ. ΠΠΎΠ²ΡΠΎΡΡΠΉΡΠ΅, ΠΏΠΎΠΊΠ° ΠΎΡΡΠ°ΡΠΎΠΊ Π½Π΅ ΡΡΠ°Π½Π΅Ρ 0.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ Π½Π°ΠΉΡΠΈ H.C.F. ΠΠ· 54 ΠΈ 24 ΠΌΡ Π΄Π΅Π»ΠΈΠΌ 54 Π½Π° 24. ΠΡΡΠ°ΡΠΎΠΊ ΡΠ°Π²Π΅Π½ 6. Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ Π΄Π΅Π»ΠΈΠΌ 24 Π½Π° 6, Π° ΠΎΡΡΠ°ΡΠΎΠΊ ΡΠ°Π²Π΅Π½ 0. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, 6 ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΌ H.C.F.
ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄: ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΠ²ΠΊΠ»ΠΈΠ΄Π°
# Π€ΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° HCF Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΠ²ΠΊΠ»ΠΈΠ΄Π°
def compute_hcf (x, y):
while (y):
Ρ
, Ρ = Ρ, Ρ
% Ρ
Π²Π΅ΡΠ½ΡΡΡ Ρ
hcf = compute_hcf (300, 400)
print ("Π₯ΠΠ€ Π΅ΡΡΡ", hcf)
ΠΠ΄Π΅ΡΡ ΠΌΡ Π·Π°ΡΠΈΠΊΠ»ΠΈΠ²Π°Π΅ΠΌΡΡ, ΠΏΠΎΠΊΠ° y Π½Π΅ ΡΡΠ°Π½Π΅Ρ ΡΠ°Π²Π½ΡΠΌ Π½ΡΠ»Ρ.ΠΠΏΠ΅ΡΠ°ΡΠΎΡ x, y = y, x% y
Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π·Π°ΠΌΠ΅Π½Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π² Python. Π©Π΅Π»ΠΊΠ½ΠΈΡΠ΅ Π·Π΄Π΅ΡΡ, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ Π·Π°ΠΌΠ΅Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
Π² Python.
ΠΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΌΡ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ y Π² x , Π° ΠΎΡΡΠ°ΡΠΎΠΊ (x% y)
Π² y ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. ΠΠΎΠ³Π΄Π° y ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠ°Π²Π½ΡΠΌ Π½ΡΠ»Ρ, ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ H.C.F. Π² x .
.