Π Π°Π·Π½ΠΎΠ΅

Python ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹: ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° ΠΏΠΎ языку python/ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° языкС python β€” ВикивСрситСт

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

ПишСм 3 ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Python Π·Π° ΠΏΠ°Ρ€Ρƒ ΠΌΠΈΠ½ΡƒΡ‚

ΠŸΠΈΡ‚ΠΎΠ½ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ язык ΠΈ сСгодня ΠΌΡ‹ с Π²Π°ΠΌΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ сразу Ρ‚Ρ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Π΅Π³ΠΎ основС. КаТдая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ смоТСтС ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² дальнСйшСм.

#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 Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ / ПишСм 7 ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° Python

Π‘Ρ€Π΅Π΄ΠΈ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ², Π΅ΡΡ‚ΡŒ ΠΈ Ρ‚Π΅, Ρ‡Π΅ΠΉ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π» Π½Π΅ ΡΡ‚ΠΎΠ»ΡŒ Π²Π΅Π»ΠΈΠΊ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ созданы, ΠΏΠΎ большСй части, Ρ€Π°Π΄ΠΈ Π·Π°Π±Π°Π²Ρ‹ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ совсСм нСбольшой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π».

Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим 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, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π²Π΅Π± сайты Π½Π° основС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π”ΠΆΠ°Π½Π³ΠΎ.

Django CMS ΠžΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅: Python ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

Запуск Python ΠΈΠ· консоли ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· Π½Π΅Π³ΠΎ.

1. ΠŸΡƒΡΠΊ > ВсС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ > Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ > Командная строка
2. Π”Π°Π»Π΅Π΅ Π² «Ρ‡Π΅Ρ€Π½ΠΎΠΌ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π΅» ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Π½Π°Π±ΠΈΡ€Π°Π΅Ρ‚Π΅:

сd C:\Python27\

ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚Π΅ Enter.Β 

Π­Ρ‚ΠΎ
ΠΊΠΎΠΌΠ°Π½Π΄Π° смСны Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π²Ρ‹ ΠΏΠΎΠΏΠ°Π΄Π΅Ρ‚Π΅ Π² ΠΏΠ°ΠΏΠΊΡƒ Python27, Π²
ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±Ρ‹Π» установлСн ваш Python. Если ΠΏΡ€ΠΈ установкС Π²Ρ‹ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅
мСняли, Ρ‚ΠΎ Π² Ρ‚Π°ΠΊΠΎΠΌ случаС Python Π±Ρ‹Π» установлСн Π½Π° диск Π‘.

Python27 это вСрсия
ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π¦ΠΈΡ„Ρ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ Π² зависимости ΠΎΡ‚ вашСй вСрсии.

3. Π”Π°Π»Π΅Π΅ Π²Π²ΠΎΠ΄ΠΈΡ‚Π΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку

python

ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚Π΅ Enter. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Python Π½Π°Ρ‡Π½Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

4. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· Python, Π½Π°Ρ…ΠΎΠ΄ΡΡΡŒ Π² консоли Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Ctrl + Z ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Enter.

Запуск ΠΈΠ· консоли ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, написанной Π½Π° языкС Python ΠΈ хранящСйся Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ Π½Π° ТСстком дискС.

Из консоли Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π½Π° языкС Python, ΠΊΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ хранится Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ Π½Π° ТСстком дискС. (Python ΠΏΡ€ΠΈ этом Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π½Π΅ Π½Π°Π΄ΠΎ.) Для этого Π² консоли Π½Π°Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

cd C:\ΠŸΡƒΡ‚ΡŒ Π΄ΠΎ ΠΏΠ°ΠΏΠΊΠΈ с вашим Ρ„Π°ΠΉΠ»ΠΎΠΌ\

ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Enter.

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π²Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚Π΅ Π² ΠΏΠ°ΠΏΠΊΡƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ хранится ваш Ρ„Π°ΠΉΠ» с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ.

НабСритС Π² консоли Π½Π°Π·Π²Π°Π½ΠΈΠ΅ вашСго Ρ„Π°ΠΉΠ»Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€

my_programm.py
(ΠΈΠ»ΠΈ python my_programm.py)

ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Enter.

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅, ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ ΠΈ ваша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° запустится ΠΈΠ· консоли.

Π’Π°ΠΊ ΠΆΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π²Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π½Π° языкС Python, пСрСтаскиваниСм ΠΈΠΊΠΎΠ½ΠΊΠΈ Ρ„Π°ΠΉΠ»Π° с ΠΊΠΎΠ΄ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² ΠΎΠΊΠ½ΠΎ консоли ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. ΠŸΡ€ΠΈ этом Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС
автоматичСски появится ΠΏΡƒΡ‚ΡŒ Π΄ΠΎ Ρ„Π°ΠΉΠ»Π°. ПослС этого Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Enter ΠΈ ваша
ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° запустится. Python ΠΏΡ€ΠΈ этом Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π½Π΅ Π½Π°Π΄ΠΎ.

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ Python.

Для отдСлСния ΠΊΠΎΠΌΠ°Π½Π΄ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° Π² Python ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρ‹ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку ΠΈ отступы ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ Π² Π²ΠΈΠ΄Π΅ 4-Ρ… ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ².

# ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

# — это однострочный ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ.
# ΠœΠ½ΠΎΠ³ΠΎΡΡ‚Ρ€ΠΎΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π² Python Π½Π΅Ρ‚.
# Для многострочных ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΊΠ°ΠΆΠ΄ΡƒΡŽ строку
# Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ с символа #.

# НиТС располоТСн ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обСспСчиваСт ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ
# русских Π±ΡƒΠΊΠ² Π² ΠΊΠΎΠ΄Π΅ вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.
# Π‘Π΅Π· этого ΠΊΠΎΠ΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ошибка ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ запустится.
# Π”Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ Π² самом Π½Π°Ρ‡Π°Π»Π΅ вашСго Ρ„Π°ΠΉΠ»Π° с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ.

# -*- coding: utf-8 -*-

# ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ символы

+ Β  # это символ слоТСния
—Β Β Β  # это символ вычитания
*Β Β Β  # это символ умноТСния
/ Β Β Β  # это символ дСлСния
%Β Β  # это символ получСния остатка ΠΎΡ‚ дСлСния

# Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ сравнСния 

<Β Β Β  # это символ мСньшС Ρ‡Π΅ΠΌ
>Β Β Β  # это символ большС Ρ‡Π΅ΠΌ
<=Β  # это символ мСньшС Ρ‡Π΅ΠΌ ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ этому
>=Β  # это символ большС Ρ‡Π΅ΠΌ ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ этому
==Β  # это символ Ρ€Π°Π²Π½ΠΎ
!=Β Β  # это символ Π½Π΅Ρ€Π°Π²Π½ΠΎ

# Π‘ΡƒΠ»Π΅Π²Ρ‹ значСния 

True
False

#ЛогичСскиС значСния

and # это символ логичСского ΠΈ
orΒ Β  # это символ логичСского ΠΈΠ»ΠΈ
not # это символ логичСского Π½Π΅


# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ дСйствия Π½Π°Π΄ Π½ΠΈΠΌΠΈ.

cars = 100.0
drivers = 30.0
cars_without_drivers = cars — drivers
car_color = «ΠšΡ€Π°ΡΠ½Ρ‹ΠΉ»
boat_color = «Π‘ΠΈΠ½ΠΈΠΉ»
what_color = «ΠšΠ°ΠΊΠΎΠΉ Ρ†Π²Π΅Ρ‚ Ρƒ ΠΌΠ°ΡˆΠΈΠ½Ρ‹? %r»
water = True
gas = FalseΒ 

# Π’Ρ‹Π²ΠΎΠ΄ тСкста Π½Π° экран.

print «Π”Π°Π½Π½Ρ‹ΠΉ тСкст Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ Π½Π° экран.»
print ‘Π’ ΠΊΠΎΠ΄Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅, Ρ‚Π°ΠΊ ΠΈ ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ.’
print gas
print «Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ вычислСния Ρ€Π°Π²Π΅Π½: «, (100 — 50 + 10) / 60 * 30
print «Π”Π²Π° мСньшС, Ρ‡Π΅ΠΌ ΠΏΡΡ‚ΡŒ? «, 2 < 5
print «Π‘Сгодня останСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ», cars_without_drivers , «ΠΌΠ°ΡˆΠΈΠ½ Π±Π΅Π· Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ.»
print «ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ машин Π² Π°Π²Ρ‚ΠΎΠΏΠ°Ρ€ΠΊΠ΅ Ρ€Π°Π²Π½ΠΎ %d.» % cars
print «Π£ всСх машин Ρ†Π²Π΅Ρ‚ %s.» % car_color
print «Π£ нас %d Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ΠΉ ΠΈ %d Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ.» % (cars, drivers)
print «Π’сСх вмСстС Ρƒ нас %d ΡˆΡ‚ΡƒΠΊ. » % (cars + drivers)
print «Π”ля округлСния чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ round(). Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ %r.» % round(1.7333)
print «Π‘Сгодня ΡƒΡ‚Ρ€ΠΎΠΌ пошСл Π±Π΅Π»Ρ‹ΠΉΒ  %s» % ‘снСг.
printΒ  what_color % car_color
print car_color + boat_color
print «ΠŸΠ°ΠΏΠ° » + «ΠΈ » + «ΠΌΠ°ΠΌΠ°.»
print «.» * 10 # Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ Π½Π° экран 10 Ρ‚ΠΎΡ‡Π΅ΠΊ
print «ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π² строчкку»;print «ΠžΡ‚дСляя ΠΈΡ… Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с запятой.»;print «ΠšΠ°ΠΊ ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… языках программирования.»

# Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ символы %d, %s ΠΈ %r ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Π·Π° подстановку
# ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² тСкст.
# %d — подставляСт числа.
# %s — подставляСт тСкстовыС строки.
# %r — Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ всС Π΄Π°Π½Π½Ρ‹Π΅ Π±Π΅Π· Ρ€Π°Π·Π±ΠΎΡ€Π°.

formatter = «%r %r %r %r»
print formatter % (1, 2, 3,4 )
print formatter % («one», «two», «three», «four»)
print formatter % (True, False, False, True)
print formatter % (formatter, formatter, formatter, formatter)
print formatter % (
Β Β Β  «I had this thing.»,
Β Β Β  «That you could type up right.»,
Β Β Β  «But it didn’t sing.»,
Β Β Β  «So I said goodnight.»
)

months = «Jan\nFeb\nMar\nApr\nMay\nJun\nJul\nAug»
print «Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ тСкст Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Π±ΠΈΡ‚ Π½Π° строки: «, months

print «»»
Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Ρ€Π΅Ρ… Π΄Π²ΠΎΠΉΠ½Ρ‹Ρ… (ΠΈΠ»ΠΈ Ρ‚Ρ€Π΅Ρ… ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ…) ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ
ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ
Π½Π° экран тСкст
Π² ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΌ
ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ
Π²ΠΈΠ΄Π΅.
«»»

print «Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ символ \» для Π²Ρ‹Π²ΠΎΠ΄Π° ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ Π½Π° экран.»
print «Π‘ΠΈΠΌΠ²ΠΎΠ» \t ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π²Ρ‹Π²ΠΎΠ΄Π° табуляции.»

# ЗначСния ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… символов.

Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚
\\ΠžΠ±Ρ€Π°Ρ‚Π½Π°Ρ косая Ρ‡Π΅Ρ€Ρ‚Π° (\)
\’ΠžΠ΄ΠΈΠ½Π°Ρ€Π½Π°Ρ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ° (‘)
Двойная ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ° («)
\aASCII Bell (BEL)
\bASCII Backspace (BS)
\fASCII Formfeed (FF)
\nASCII Linefeed (LF)
\N{name}Character named name in the Unicode database (Unicode only)
\r ASCIIΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку
\t ASCIIВабуляция
\uxxxxCharacter with 16-bit hex value xxxx (Unicode only)
\UxxxxxxxxCharacter with 32-bit hex value xxxxxxxx (Unicode only)
\vASCII Vertical Tab (VT)
\oooCharacter with octal value ooo
\xhhCharacter with hex value hh

# Π’Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· консоли ΠΈ запись ΠΈΡ… Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.

print «Π‘колько Π²Π°ΠΌ Π»Π΅Ρ‚?»
age = raw_input()
print «ΠšΠ°ΠΊΠΎΠΉ Ρƒ вас рост?»
height = raw_input()
print «ΠšΠ°ΠΊΠΎΠΉ Ρƒ вас вСс?»
weight = raw_input()
print «Π’Π°ΠΌ %r Π»Π΅Ρ‚, ваш рост %r сантимСтров ΠΈ ваш вСс Ρ€Π°Π²Π΅Π½ %r ΠΊΠΈΠ»ΠΎΠ³Ρ€Π°ΠΌΠΌ.» % (age, height, weight)
print «Π”Π°Π½Π½Ρ‹Π΅ ΠΈΠ· консоли бСрутся ΠΊΠ°ΠΊ строки. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅Ρ€ %r»
print «Π”ля прСобразования Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π² числа Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ:»
digits = int(raw_input())
print «%d — это числовыС Π΄Π°Π½Π½Ρ‹Π΅» % digits
# Π‘Ρ‚ΠΎΠΈΡ‚ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ использованиС просто Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ input() для Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Π½Π΅ всСгда Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ.
name = raw_input («ΠšΠ°ΠΊ вас Π·ΠΎΠ²ΡƒΡ‚? «)
print name

# ΠŸΠΎΠ΄ΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΡ€ΠΈ Π΅Ρ‘ запускС ΠΈΠ· консоли

ΠŸΠ΅Ρ€Π΅Π½Π΅ΡΠΈΡ‚Π΅ Π² ваш Ρ„Π°ΠΉΠ» ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:

# -*- coding: utf-8 -*-

from sys import argv

script, first, second, third = argv

print «Π’Ρ‹Π·Π²Π°Π½ script: «, script
print «Π’Π°ΡˆΠ° пСрСвая пСрСмСнная это: «, first
print «Π’Π°ΡˆΠ° вторая пСрСмСнная это: «, second
print «Π’Π°ΡˆΠ° Ρ‚Ρ€Π΅Ρ‚ΡŒΡ пСрСмСнная это: «, third

Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π² консоли имя вашСго Ρ„Π°ΠΉΠ»Π° ΠΈ список ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ:
my_programm. py first 2nd 3rd
ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Enter.

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΡ€Π΅Π΄Π΅Π½Π½Ρ‹Π΅ значСния ΠΏΠΎ порядку Π±ΡƒΠ΄ΡƒΡ‚ подставлСны Π² ваши ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ сообщСния Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½Ρ‹ Π½Π° экран.

# Π§Ρ‚Π΅Π½ΠΈΠ΅ содСрТимого тСкстового Ρ„Π°ΠΉΠ»Π° ΠΈ Π²Ρ‹Π²ΠΎΠ΄ Π΅Π³ΠΎ Π½Π° экран.

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ тСкстовый Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ sample.txt ΠΈ помСститС Π΅Π³ΠΎ Π² ΠΏΠ°ΠΏΠΊΡƒ с вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ my_programm.py.

Π’ Ρ„Π°ΠΉΠ» sample.txt Π²ΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ тСкст:

Π­Ρ‚ΠΎΡ‚ тСкст находится Π²ΠΎ внСшнСм Ρ„Π°ΠΉΠ»Π΅.
ΠŸΡ€ΠΈ запускС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΠ½ отобраТаСтся Π½Π° экранС.
Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ!

Π”Π°Π»Π΅Π΅ ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» с вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Π² Π½Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:

# -*- coding: utf-8 -*-

from sys import argv

script, filename = argv

txt = open(filename)

print «ΠœΡ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Ρ„Π°ΠΉΠ» %r ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ ΠΈΠ· Π½Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ тСкст:» % filename
print txt.read()

txt.close()

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ консоль ΠΈ запуститС Π²Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ ΡΠΎΠΎΡ‚Π²Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΈΠΌΠ΅Π½ΠΈ вашСго Ρ„Π°ΠΉΠ»Π° с тСкстом (sample.txt):

my_programm.py sample.txt

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ содСрТимоС Ρ„Π°ΠΉΠ»Π° sample. txt Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ Π½Π° экран.

# Π§Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ запись Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„Π°ΠΉΠ»Ρ‹

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ чтСния ΠΈ записи Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„Π°ΠΉΠ»Ρ‹:
read() — Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ содСрТимоС Ρ„Π°ΠΉΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ присвоСно ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.
readline() — считываСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ строку ΠΈΠ· Ρ„Π°ΠΉΠ»Π°.
truncate() — удаляСт всС содСрТимоС ΠΈΠ· Ρ„Π°ΠΉΠ»Π°.
write(«Ρ‚СкстовоС содСрТимоС») — записываСт тСкстовоС содСрТимоС Π² Ρ„Π°ΠΉΠ».
close() — Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ». (Аналогично ΠΊΠΎΠΌΠ°Π½Π΄Π΅ File->Save.. Π² вашСм тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅.)

ЗапуститС Π²Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ my_programm.py, вставив Π² Π½Π΅Ρ‘ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:

# -*- coding: utf-8 -*-

filename = raw_input («Π’Π²Π΅Π΄ΠΈΡ‚Π΅ имя Ρ„Π°ΠΉΠ»Π°:»)
target = open (filename, «w») # «w» ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» с Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ Π½Π° запись

print «Π‘Сйчас ΠΌΡ‹ ΡƒΠ΄Π°Π»ΠΈΠΌ всС содСрТимоС ΠΈΠ· Ρ„Π°ΠΉΠ»Π° %r.» % filename
target.truncate()

line1 = raw_input(«Π‘Ρ‚Ρ€ΠΎΠΊΠ° 1:»)
line2 = raw_input(«Π‘Ρ‚Ρ€ΠΎΠΊΠ° 2:»)
line3 = raw_input(«Π‘Ρ‚Ρ€ΠΎΠΊΠ° 3:»)

print «Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ запишСм Π² Ρ„Π°ΠΉΠ» Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ строки.»

target. write(line1)
target.write(«\n»)
target.write(line2)
target.write(«\n»)
target.write(line3)
target.write(«\n»)

print «Π”Π°Π»Π΅Π΅ ΠΌΡ‹ Π·Π°ΠΊΡ€ΠΎΠ΅ΠΌ Ρ„Π°ΠΉΠ».»

target.close()

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ€Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ open()
«r» — ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния.
«w» — ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» для записи.
«a» — ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» для добавлСния Π² Π½Π΅Π³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°.

# ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ содСрТимого ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„Π°ΠΉΠ».

Β # -*- coding: utf-8 -*-

from sys import argv
from os.path import exists

script, from_file, to_file = argv

print «Π‘Сйчас ΠΌΡ‹ скопируСм содСрТимоС ΠΈΠ· Ρ„Π°ΠΉΠ»Π° %r Π² Ρ„Π°ΠΉΠ» %r.» % (from_file, to_file)

first_file = open(from_file)
file_content = open_from_file.read()

print «Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ %d Π±Π°ΠΉΡ‚.» % len(file_content)

print «Π‘ущСствуСт Π»ΠΈ Ρ„Π°ΠΉΠ», Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ содСрТимоС? %r» % exists(to_file)

second_file = open(to_file, ‘w’)
second_file.write(file_content)

first_file.close()
second_file. close()

print «ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΎ.»

ΠŸΡ€ΠΈ запускС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ· коносли Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ имя любого Ρ„Π°ΠΉΠ»Π°, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ скопировано содСрТимоС, ΠΈ имя любого Ρ„Π°ΠΉΠ»Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ вставлСно:

my_programm.py copy.txt paste.txt

# ΠœΠ°ΡΡΠΈΠ²Ρ‹ — списки

the_count = [1, 2, 3, 4, 5]
fruits = [‘apples’, ‘oranges’, ‘pears’, ‘apricots’]
change = [1, ‘pennies’, 2, ‘dimes’, 3, ‘quarters’]
change[0] = ‘one’
print change[0]
print the_count

# Π₯эш — массивы — словари

cities = {
Β Β Β  ‘CA’: ‘San Francisco’,
Β Β Β  ‘MI’: ‘Detroit’,
Β Β Β  ‘FL’: ‘Jacksonville’
}

# Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π΅Ρ‰Π΅ значСния Π² массив.
cities[‘NY’] = ‘New York’
cities[‘OR’] = ‘Portland’

# Π’Ρ‹Π²Π΅Π΄Π΅ΠΌ Π½Π΅ΠΊΠΎΡ‚Ρ€Ρ‹Π΅ значСния ΠΈΠ· массива Π½Π° экран.
print «NY — это: «, cities[‘NY’]
print «OR — это: «, cities[‘OR’]

for abbrev, city in cities.items():
Β Β Β  print «%s соотвСствуСт Π³ΠΎΡ€ΠΎΠ΄Ρƒ %s» % (abbrev, city)

city = cities.get(‘Texas’, None)

if not city:
Β Β Β  print «ΠŸΡ€ΠΎΡΡ‚ΠΈΡ‚Π΅, Π½ΠΎ Texas Π½Π΅Ρ‚ Π² массивС. «

# Условия

dogs = 10
cats = 20

if dogs > cats:
Β Β Β  print «Π‘ΠΎΠ±Π°ΠΊ большС, Ρ‡Π΅ΠΌ кошСк.»
elif dogs < cats:
Β Β Β  print «Π‘ΠΎΠ±Π°ΠΊ мСньшС, Ρ‡Π΅ΠΌ кошСк.»
else:
Β Β Β  print «Π§ΠΈΡΠ»ΠΎ собак Ρ€Π°Π²Π½ΠΎ числу кошСк.»

#
Условия ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ. Π’ этом случаС Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ условия
ΠΎΡ‚Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ чСтырСмя ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ ΠΎΡ‚ Π»Π΅Π²ΠΎΠΉ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ экрана.

# Π’ Python Π½Π΅Ρ‚ ΡƒΠ»ΠΎΠ²ΠΈΠΉ Π²ΠΈΠ΄Π° switch-case.

# Π¦ΠΈΠΊΠ»Ρ‹

#
Π’ Python Ρ†ΠΈΠΊΠ»Ρ‹ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ классичСских. Основная идСя Π² Π½ΠΈΡ… — это
ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ элСмСнтов, Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅ ΠΈ происходит Π² любом Ρ†ΠΈΠΊΠ»Π΅ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ…
языках программирования.

# -*- coding: utf-8 -*-

count = [1, 2, 3, 4, 5] # Π­Ρ‚ΠΎ массив.

# Π¦ΠΈΠΊΠ»Ρ‹ For

# Π’ этом Ρ†ΠΈΠΊΠ»Π΅ производится ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ всСх элСмСнтов массива.
for number in count:
Β Β Β  print «Π­Ρ‚ΠΎ счСт: %d» % number
Β Β Β 
elements = [] # Π’Π°ΠΊ создаСтся пустой массив

# Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ классичСского Ρ†ΠΈΠΊΠ»Π° с шагом +1. Π¨Π°Π³ Ρ†ΠΈΠΊΠ»Π° задаСтся Ρ‡Π΅Ρ€Π΅Π· range().
for i in range(0,10):
Β Β Β  elements.append(i)

for i in elements:
Β Β Β  print «Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ %d Π±Ρ‹Π» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² массив.» % i

#Β  Π¦ΠΈΠΊΠ»Ρ‹ While

i = 0
numbers = []

while i < 6:
Β Β Β  print «Π’ массив Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ число %d» % i
Β Β Β  numbers.append(i)
Β Β Β  i = i + 1

# Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ

# ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
def print_arguments (arg1, *argv):
Β Β Β  # ВсС содСрТимоС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»Π΅Π½ΠΎ 4 ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ слСва.
Β Β Β  arg2, arg3 = argv
Β Β Β  print «ΠΡ€Π³ΡƒΠΌΠ΅Π½Ρ‚ 1: %r, Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ 2: %r, Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ 3: %r.» % (arg1, arg2, arg3)
# Π’Π΅Π»ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строчС, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰Π΅ΠΉΡΡ Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² прямо ΠΎΡ‚ Π»Π΅Π²ΠΎΠΉ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ экрана.

# Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
print_arguments («ΠžΠ΄ΠΈΠ½», «Π”Π²Π°», «Π’Ρ€ΠΈ»)

Π—Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠ° * Ρƒ argv позволяСт ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ нСсколько Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² Π²ΠΈΠ΄Π΅ списка. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Ρ‚Π°ΠΊΠΎΠΉ способ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ.

# Ѐункция, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π°Ρ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, послС своСго выполнСния.

def sum(a, b):
Β  Β  return a + b

print «Π‘ΡƒΠΌΠΌΠ° Ρ€Π°Π²Π½Π°: %d» % sum (2, 5)

# Π€ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π΅Ρ‘ Ρ‡Π΅Ρ€Π΅Π· Callback.

def sum():
Β Β Β  return 2 + 5
Β Β Β 
def callback(c):
Β Β Β  return c()

print «Π‘ΡƒΠΌΠΌΠ° Ρ€Π°Π²Π½Π°: %d» % callback(sum)

# Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ нСсколько Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² Π²ΠΈΠ΄Π΅ спика, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ запятыми.

def list_values():
Β Β Β  return «one», «two», «three»

var1, var2, var3 = list_values()

print var1
print var2
print var3

# ΠœΠΎΠ΄ΡƒΠ»ΠΈ — ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ²

# Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ import.
# ПослС этого Π²Ρ‹Π·ΠΎΠ² ΠΊΠΎΠ΄Π° осущСствляСтся Ρ‡Π΅Ρ€Π΅Π· имя ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°.

Π€Π°ΠΉΠ» mystuff.py
# Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ Π² Ρ„Π°ΠΉΠ»Π΅ mystuff.py

fruit = «pineapple»

def apple():
Β Β Β  print «I am apple!»
Β Β Β 
Π€Π°ΠΉΠ» my_programm.py
# Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ Π² основном исполняСм Ρ„Π°ΠΉΠ»Π΅ my_programm.py

import mystuff

print mystuff.fruit
mystuff.apple

# ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ, Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³Ρƒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΎΠ΄Π½ΠΎΠΌ экзСмлярС, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ классов.

# Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ классы ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ.

Π€Π°ΠΉΠ» my_programm.py
from mystuff import apple

apple()

# Или ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС сразу, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ символ *.

Π€Π°ΠΉΠ» my_programm.py
from mystuff import *

apple()

# ΠšΠ»Π°ΡΡΡ‹ ΠΈ ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹Β 

# ΠšΠ»Π°ΡΡΡ‹
ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΈΠ· сСбя ΠΌΠΈΠ½ΠΈ-ΠΌΠΎΠ΄ΡƒΠ»ΠΈ. Они ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈ
изолирования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Но Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, классы ΠΌΠΎΠ³ΡƒΡ‚
ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΎ мноТСствС экзСмпляров, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ.

# ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² классах всСгда ΠΈΠΌΠ΅ΡŽΡ‚ всСгда ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ self.

# -*- coding: utf-8 -*-

class Employee:
Β Β Β  pass # pass ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ класс пустой, Π² Π½Π΅ΠΌ ΠΏΠΎΠΊΠ° Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅Ρ‚.

def work():
Β Β Β  print «I am working.»
Β Β Β 
john = Employee() # Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ.

# Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ
john.name = ‘John Doe’
john.dept = ‘computer lab’
john.salary = 1000
john.work = work

print john.name
print john.dept
print john.salary

john.work()

class MyStuff(object):

Β Β Β  txt = «Super text!»

Β Β Β  # ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² классах всСгда ΠΈΠΌΠ΅ΡŽΡ‚ всСгда ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ self.
Β Β Β  def __init__(self):
Β Β Β Β Β Β Β  self.tangerine = «And now a thousand years between»

Β Β Β  def apple(self):
Β Β Β Β Β Β Β  print «I AM CLASSY APPLES!»

thing = MyStuff()
print thing.txt
print thing.tangerine
thing.apple()

class A(object):
Β Β Β  def __init__(self, x): # Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² конструкторС
Β Β Β Β Β Β Β  self.x = x

a = A(5)
print a.x

class A(object):
Β Β Β  def __init__(self, x):
Β Β Β Β Β Β Β  self._x = x
Β Β Β  def getx(self): # ΠΌΠ΅Ρ‚ΠΎΠ΄ для получСния значСния
Β Β Β Β Β Β Β  return self._x
Β Β Β  def setx(self, value): # присваивания Π½ΠΎΠ²ΠΎΠ³ΠΎ значСния
Β Β Β Β Β Β Β  self._x = value
Β Β Β  def delx(self): # удалСния Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°
Β Β Β Β Β Β Β  del self._xΒ Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β 
Β Β Β  x = property(getx, setx, delx, «Π‘войство x»)Β  # опрСдСляСм x ΠΊΠ°ΠΊ свойство

a = A(5)
# ΠΈΠ»ΠΈ a.x = 5Β Β Β Β 
print a.xΒ  # Бинтаксис доступа ΠΊ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρƒ ΠΏΡ€ΠΈ этом ΠΏΡ€Π΅ΠΆΠ½ΠΈΠΉ

class Song(object):

Β Β Β  def __init__(self, lyrics):
Β Β Β Β Β Β Β  self.lyrics = lyrics

Β Β Β  def sing_me_a_song(self):
Β Β Β Β Β Β Β  for line in self.lyrics:
Β Β Β Β Β Β Β Β Β Β Β  print line

happy_bday = Song([«Happy birthday to you»,
Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  «I don’t want to get sued»,
Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  «So I’ll stop right there»])

bulls_on_parade = Song([«They rally around the family»,
Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  «With pockets full of shells»])

happy_bday.sing_me_a_song()

bulls_on_parade.sing_me_a_song()

# Для создания экзСмпляра класса, достаточно Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ класс ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΈ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ конструктора:
class Point:
Β Β Β Β Β Β Β Β  def __init__(self, x, y, z):
Β Β Β Β Β Β Β Β Β Β Β Β  self.coord = (x, y, z)
Β Β Β Β Β Β Β Β  def __repr__(self):
Β Β Β Β Β Β Β Β Β Β Β Β  return «Point(%s, %s, %s)» % self.coord

p = Point(0.0, 1.0, 0.0)

# Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ создании экзСмпляра класса (конструктор) ΠΈ ΠΏΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ класса (дСструктор).
#
Π’ языкС Python Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ автоматичСскоС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, поэтому
дСструктор трСбуСтся достаточно Ρ€Π΅Π΄ΠΊΠΎ, для рСсурсов, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΡ… явного
освобоТдСния.

class Line:
Β Β Β  # ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ создаСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ.
Β Β Β  def __init__(self, p1, p2):
Β Β Β Β Β Β Β  self.line = (p1, p2)
Β Β Β  # ДСструктор удаляСт созданный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ· памяти ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°.
Β Β Β  def __del__(self):
Β Β Β Β Β Β Β  print «Π£Π΄Π°Π»ΡΠ΅Ρ‚ся линия %s — %s» % self.line

# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π‘Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ __init(self, p1, p2)__Β Β Β  Β Β Β 
l = Line((0.0, 1.0), (0.0, 2.0))

# Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π‘Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ __del__
del l

# НаслСдованиС классов.

class Parent(object):

Β Β Β  def implicit(self):
Β Β Β Β Β Β Β  print «PARENT implicit()»

class Child(Parent):
Β Β Β  pass

dad = Parent()
son = Child()

dad.implicit()
son.implicit()

# НаслСдованиСм ΠΈ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π² ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ°Ρ… классов.

class Parent(object):

Β Β Β  def override(self):
Β Β Β Β Β Β Β  print «PARENT override()»

class Child(Parent):
Β Β 
Β Β Β  def override(self):
Β Β Β Β Β Β Β  print «CHILD override()»

dad = Parent()
son = Child()

dad.override()
son.override()
# Π―Π²Π½ΠΎ ΡƒΠΊΠ°Π·Π°Π² имя класса, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ родитСля, ΠΊΠ°ΠΊ Π²ΠΏΡ€ΠΎΡ‡Π΅ΠΌ ΠΈ любого Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

class Child(Parent):
Β Β Β  def __init__(self):
Β Β Β Β Β Β Β  Parent.__init__(self)

# Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС для получСния класса-ΠΏΡ€Π΅Π΄ΠΊΠ° примСняСтся функция super.

class Child(Parent):
Β Β Β  def __init__(self):
Β Β Β Β Β Β Β  super(Child, self).__init__(self)

# Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π² классС-ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΉ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ послС Π΅Π³ΠΎ пСрСопрСдСлСния.

class Parent(object):

Β Β Β  def altered(self):
Β Β Β Β Β Β Β  print «PARENT altered()»

class Child(Parent):
Β Β Β 
Β Β Β  def altered(self):
Β Β Β Β Β Β Β  print «CHILD, BEFORE PARENT altered()»
Β Β Β Β Β Β Β  super(Child, self).altered()
Β Β Β Β Β Β Β  print «CHILD, AFTER PARENT altered()»

dad = Parent()
son = Child()

dad.altered()
son.altered()

# Класс-ΠΏΠΎΡ‚ΠΎΠΌΠΎΠΊ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΡΠ»Π΅ΠΆΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΎΡ‚ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… классов-Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΉ.

class SuperFun(Child, BadStuff): # Класс наслСдуСт ΠΎΡ‚ 2-Ρ… классов.
Β Β Β  pass

ΠŸΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ доступ ΠΊ классам ΠΈ модулям ΠΌΠΎΠΆΠ½ΠΎ трСмя способами:

# ΡΡ‚ΠΈΠ»ΡŒ массива
mystuff[‘apples’]

# ΡΡ‚ΠΈΠ»ΡŒ модуля
mystuff.apples()
print mystuff.tangerine

# ΡΡ‚ΠΈΠ»ΡŒ класса
thing = MyStuff()
thing.apples()
print thing.tangerine

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова:

and
del
from
not
while
as
elif
global
or
with
assert
else
if
pass
yield
break
except
import
print
class
exec
in
raise
continue
finally
is
return
def
for
lambda
try

Π’ΠΈΠΏΡ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…:

True
False
None
strings
numbers
floats
lists (массивы)

Escape-символы:

\\
\’

\a
\b
\f
\n
\r
\t
\v

Π‘Ρ‚Ρ€ΠΎΠΊΠΎΠ²Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅Ρ€Ρ‹ для использования Π² print:

%d
%i
%o
%u
%x
%X
%e
%E
%f
%F
%g
%G
%c
%r
%s
%%

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹:

+

*
**
/
//
%
<
>
<=
>=
==
!=
<>
( )
[ ]
{ }
@
,
:
.
=
;
+=
-=
*=
/=
//=
%=
**=

ИдСи ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π²ΠΎΠΏΠ»ΠΎΡ‰Π°Ρ‚ΡŒ ΡƒΠΆΠ΅ сСгодня

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΡΡ‚Π°Ρ‚ΡŒΠΈ
Β«Python Project Ideas You Can Start Working on TodayΒ».

Начиная ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ язык, Π²Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅
врСмя Ρ„ΠΎΠΊΡƒΡΠΈΡ€ΡƒΠ΅Ρ‚Π΅ΡΡŒ Π½Π° чистой Ρ‚Π΅ΠΎΡ€ΠΈΠΈ.
Но со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ появляСтся настойчивоС
ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ·ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ Π½Π°
ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ
ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ. Π‘ Ρ‡Π΅Π³ΠΎ ΠΆΠ΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ? Π£ вас
ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ ΠΈΠ΄Π΅ΠΉ интСрСсных
ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π½ΠΎ Π½ΡƒΠΆΠ½ΠΎ вСдь Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ достаточно
простой, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΠ» для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…!

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ прСдставим Π²Π°ΠΌ
нСсколько Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΈΠ΄Π΅ΠΉ β€” Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΎΠ½ΠΈ
вдохновят вас Π½Π° созданиС собствСнных
ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° Python.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΌΡ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ Python?

Π­Ρ‚ΠΎΡ‚ язык ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для создания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌΠΈ программистами. Π—Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ ΠΈΠΌΠ΅Π½Π½ΠΎ Python ΠΈΠ·ΡƒΡ‡Π°ΡŽΡ‚ Π² ΡƒΡ‡Π΅Π±Π½Ρ‹Ρ… завСдСниях Ρ€Π°Π·Π½ΠΎΠ³ΠΎ уровня, ΠΈΠ½ΠΎΠ³Π΄Π° Π΄Π°ΠΆΠ΅ Π² Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… классах. ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° этого проста: Python отличаСтся нСвСроятной Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ изучСния слоТного синтаксиса. А благодаря Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π΅ с Python ΠΈΠ΄Π΅Ρ‚ срСда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ IDLE, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΈ сразу ΠΆΠ΅ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π΅Π³ΠΎ.

Но плавная кривая обучСния Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ввСсти вас Π² Π·Π°Π±Π»ΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅: Python это Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ ΠΈΠ³Ρ€ΡƒΡˆΠΊΠ°. Π­Ρ‚ΠΎΡ‚ язык ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния β€” ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ ΠΎΡ‡Π΅Π½ΡŒ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр примСнСния, ΠΎΡ‚ Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄ΠΎ машинного обучСния. ИмСнно с Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Spotify ΠΈ Netflix ΡΠΎΠ·Π΄Π°ΡŽΡ‚ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Π±Π°Π·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ΡΡ Π½Π° ΠΈΡ… ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ Π²Ρ‹Π±ΠΎΡ€Π΅. Π’ основС Instagram, ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ сСти, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ ΠΏΠΎΡΠ΅Ρ‰Π°ΡŽΡ‚ ΠΏΠΎΠ»ΠΌΠΈΠ»Π»ΠΈΠ°Ρ€Π΄Π° Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Π»Π΅ΠΆΠΈΡ‚ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Django, написанный Π½Π° Python.

Благодаря ΡˆΠΈΡ€ΠΎΠΊΠΎΠΌΡƒ Π²Ρ‹Π±ΠΎΡ€Ρƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ
с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, Python Π»Π΅Π³ΠΊΠΎ
кастомизируСтся. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹
Π½Π° Python ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ программисты с
ΠΎΡ‡Π΅Π½ΡŒ Ρ€Π°Π·Π½Ρ‹ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ Π½Π°Π²Ρ‹ΠΊΠΎΠ².

ИдСи ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° Python для
Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

Π’Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΈΠ΄Π΅ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² слСдуСт Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. Амбициозная идСя ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‡Π΅Π½ΡŒ Π·Π°ΠΌΠ°Π½Ρ‡ΠΈΠ²ΠΎΠΉ, Π½ΠΎ ΠΏΡ€ΠΈ этом ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ слишком слоТной ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π° это способно ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ° ΠΎΡ‚ программирования. ΠœΡ‹ совСтуСм Π½Π°Ρ‡Π°Ρ‚ΡŒ с Ρ‡Π΅Π³ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ быстрого, простого ΠΈ интСрСсного. А Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ интСрСснСС ΠΈΠ³Ρ€?

ΠžΡΠ½ΠΎΠ²Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ³Ρ€

Один ΠΈΠ· Π»ΡƒΡ‡ΡˆΠΈΡ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²
«для самых ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ…Β» это симулятор
ΠΈΠ³Ρ€Ρ‹ Π² кости. ВсС, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄Π΅Π»Π°Ρ‚ΡŒ
β€” Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° экран случайноС
число Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ Π΄ΠΎ ΡˆΠ΅ΡΡ‚Π΅Ρ€ΠΊΠΈ.
Π§Ρ‚ΠΎΠ±Ρ‹ это Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ
ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Ρ‚ΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… integer,
ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ random
ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ print().
Если Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, ваш симулятор ΠΌΠΎΠΆΠ΅Ρ‚
ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ°, Ρ…ΠΎΡ‡Π΅Ρ‚ Π»ΠΈ ΠΎΠ½ Π΅Ρ‰Π΅ Ρ€Π°Π·
Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ кости β€” для этого Π²Π°ΠΌ придСтся
ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Ρ†ΠΈΠΊΠ»ΠΎΠΌ
while.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ random, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅
ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΠ³Ρ€Ρƒ Π² ΡƒΠ³Π°Π΄Π°ΠΉΠΊΡƒ: ΠΈΠ³Ρ€Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚
случайноС число, Π° ΠΈΠ³Ρ€ΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΅Π³ΠΎ
ΡƒΠ³Π°Π΄Π°Ρ‚ΡŒ. Для этого Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ
Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠ³ ввСсти число
ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π² качСствС
Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. Для информирования
ΠΈΠ³Ρ€ΠΎΠΊΠ° ΠΎ Ρ‚ΠΎΠΌ, ΡƒΠ³Π°Π΄Π°Π» ΠΎΠ½ ΠΈΠ»ΠΈ Π½Π΅Ρ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅
Π±Π»ΠΎΠΊΠΈ If/Else.

«ВисСлица»

«ВисСлица» это Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹ΠΉ
Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΈΠ³Ρ€Ρ‹ Π² ΡƒΠ³Π°Π΄Π°ΠΉΠΊΡƒ. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ
Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΠ³Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ Π±ΡƒΠΊΠ²Ρ‹ Π² Π·Π°Π³Π°Π΄Π°Π½Π½ΠΎΠΌ
словС. ΠœΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ это слишком
слоТно для ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π½ΠΎ ΠΏΠΎΠ³ΠΎΠ΄ΠΈΡ‚Π΅.
Бамая базовая вСрсия Ρ‚Π°ΠΊΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚
Π±Ρ‹Ρ‚ΡŒ просто тСкстовой ΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ
ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ.

Для Π½Π°Ρ‡Π°Π»Π°, Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ список слов, ΠΈΠ·
ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… систСма Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ
слово случайным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Для этого ΠΌΠΎΠΆΠ½ΠΎ
ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ Sowpods
(Ρ„Π°ΠΉΠ» ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π½Π° GitHub).
Π”Π°Π»ΡŒΡˆΠ΅ Π²Π°ΠΌ понадобится подходящая
функция для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, Π²Π²Π΅Π» Π»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ
Π±ΡƒΠΊΠ²Ρƒ ΠΈ Π΅ΡΡ‚ΡŒ Π»ΠΈ такая Π±ΡƒΠΊΠ²Π° Π² Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΌ
словС (Π° Ссли Π΅ΡΡ‚ΡŒ, Ρ‚ΠΎ сколько Ρ‚Π°ΠΌ Ρ‚Π°ΠΊΠΈΡ…
Π±ΡƒΠΊΠ²). Π’Π°ΠΊΠΆΠ΅ ваш ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π°
экран ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΡƒΠ³Π°Π΄Π°Π½Π½Ρ‹Π΅ Π±ΡƒΠΊΠ²Ρ‹ ΠΈ
ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ количСство ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ ΠΏΡ€ΠΈ
ΠΏΠΎΠΌΠΎΡ‰ΠΈ счСтчика (пСрСмСнная Ρ‚ΠΈΠΏΠ°
integer).

ИспользованиС Python для Raspberry PI

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…
β€” использованиС Raspberry Pi. Π­Ρ‚ΠΎΡ‚ малСнький
ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для
обучСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ. Raspberry Pi
Foundation удСляСт особоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‚ΠΎΠΌΡƒ,
Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ доступным
для ΡŽΠ½ΠΎΡˆΠ΅ΡΡ‚Π²Π°. Π­Ρ‚ΠΎΡ‚ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€
малСнький, довольно ΠΌΠΎΡ‰Π½Ρ‹ΠΉ (для своих
Π·Π°Π΄Π°Ρ‡) ΠΈ Π½Π΅Π΄ΠΎΡ€ΠΎΠ³ΠΎΠΉ: ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚ΠΎΠΈΡ‚ΡŒ ΠΎΡ‚
5 Π΄ΠΎ 50 Π΄ΠΎΠ»Π»Π°Ρ€ΠΎΠ².

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Raspberry Pi, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ
сайты, прилоТСния ΠΈ Π΄Π°ΠΆΠ΅ ΡƒΠ³Π»ΡƒΠ±ΠΈΡ‚ΡŒΡΡ Π²
Ρ€ΠΎΠ±ΠΎΡ‚ΠΎΡ‚Π΅Ρ…Π½ΠΈΠΊΡƒ. Если ΠΏΠΎΠ΄ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΊ этой
машинС ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€, ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρƒ ΠΈ ΠΌΡ‹ΡˆΡŒ, ΠΎΠ½
ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€.
Но, настроив Π΅Π³ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ
ΠΈΠΌ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎ β€” Ρ‚ΡƒΡ‚-Ρ‚ΠΎ ΠΈ начинаСтся всС
самоС интСрСсноС!

На Raspberry Pi Code Club ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ нСбольшой
ΡƒΡ‡Π΅Π±Π½Ρ‹ΠΉ
ΠΏΠ»Π°Π½ ΠΏΠΎ освоСнию основ Python. Π•ΡΡ‚ΡŒ Ρ‚Π°ΠΌ
ΠΈ нСсколько ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€,
созданиС ΠΈΠ³Ρ€Ρ‹ «КамСнь, Π½ΠΎΠΆΠ½ΠΈΡ†Ρ‹, Π±ΡƒΠΌΠ°Π³Π°Β»
ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ-ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π»ΡŒΡ‰ΠΈΠΊΠΎΠ². Освоив Ρ€Π°Π±ΠΎΡ‚Ρƒ
с Raspberry Pi, Π²Ρ‹ смоТСтС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ
для создания самых Ρ€Π°Π·Π½Ρ‹Ρ… Π²Π΅Ρ‰Π΅ΠΉ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ
Ρ€ΠΎΠ±ΠΎΡ‚-Π±ΡƒΠ΄ΠΈΠ»ΡŒΠ½ΠΈΠΊ
ΠΈ ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹
слСТСния для вашСго дома.

ИдСи ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° Python для
программистов срСднСго уровня

ДовСдя Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° нСсколько интСрСсных
ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π²Ρ‹ почувствуСтС сСбя ΠΊΡƒΠ΄Π°
Π±ΠΎΠ»Π΅Π΅ ΡΠΈΠ»ΡŒΠ½Ρ‹ΠΌ программистом. Π§Ρ‚ΠΎ дальшС?
МоТно Π±Ρ€Π°Ρ‚ΡŒΡΡ Π·Π° Π±ΠΎΠ»Π΅Π΅ слоТныС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹.
Как насчСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ…?

Π’Π΅Π±-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹

НС слСдуСт Π·Π°Π±Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ
ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Python это язык Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.
ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹ Π½Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ нСсколько простых
Π²Π΅Π±-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²? Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅
ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ
пользования, Π° Ρ‚Π°ΠΊΠΆΠ΅ приобрСсти Π½Π°Π²Ρ‹ΠΊΠΈ,
ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΌ пригодятся ΠΏΡ€ΠΈ поисках
Π½ΠΎΠ²ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Python ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ для извлСчСния
ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ с сайтов, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ
вСсьма подходящим языком для создания
Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°. Π₯ΠΎΡ€ΠΎΡˆΠΈΠΌ
ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ
AllTop. Π’Ρ‹ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚Π΅
ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΡƒΡŽ вас Ρ‚Π΅ΠΌΡƒ, Π° систСма ΠΏΠΎΠ΄Π±ΠΈΡ€Π°Π΅Ρ‚
Π²Π°ΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΈΠ· самых
популярных. Π­Ρ‚ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚
для ΡƒΠΆΠ΅ ΠΎΠΏΡ‹Ρ‚Π½ΠΎΠ³ΠΎ программиста, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ
Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π²
Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ спСцифичСскиС
Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Python для HTTP-запросов ΠΈ парсинга
ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°.

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° идСя β€” написаниС прилоТСния
для создания Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ
. Вакая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°
позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ,
Π° ΠΏΠΎΠ·ΠΆΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ записи. БлоТная Ρ‡Π°ΡΡ‚ΡŒ
Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° β€” Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π»ΠΈΡ‡Π½Ρ‹Ρ…
Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ΠΎΠ². Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ‹
Π±Ρ‹Ρ‚ΡŒ Π΅Π³ΠΎ Π»ΠΈΡ‡Π½Ρ‹Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ, доступ ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ
Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρƒ Π½Π΅Π³ΠΎ (ΠΏΡ€ΠΈΡ‡Π΅ΠΌ доступ
ΠΎΡ‚ΠΊΡƒΠ΄Π° ΡƒΠ³ΠΎΠ΄Π½ΠΎ, это ΠΆΠ΅ Π²Π΅Π±-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚). Π‘Π°ΠΌΡ‹ΠΉ
простой способ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅Ρ‡Ρ‚ΠΎ
ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания
прилоТСния Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Django.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ с графичСским ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ
интСрфСйсом

ИмСя нСбольшой ΠΎΠΏΡ‹Ρ‚ Π·Π° ΠΏΠ»Π΅Ρ‡Π°ΠΌΠΈ ΠΈ
Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ количСство Π½Π°Π²Ρ‹ΠΊΠΎΠ², Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅
ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ простыС инструмСнты для
Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ†Π΅Π»ΠΎΠ³ΠΎ ряда Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡.

Π‘ΡƒΠ΄ΠΈΠ»ΡŒΠ½ΠΈΠΊ это, ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ, ΠΎΠ΄ΠΈΠ½ ΠΈΠ·
самых популярных ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²
Π½Π° Python. Π’ основС своСй это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°,
ΠΏΠΎΠ΄Π°ΡŽΡ‰Π°Ρ аудиосигнал ΠΏΡ€ΠΈ соблюдСнии
Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ условия (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ β€” ΠΏΠΎ достиТСнии
ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ). ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ
Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ
врСмя сигнала, ΡΠ±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ, Π° Ρ‚Π°ΠΊΠΆΠ΅
Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ сигнал. Если Π²Π°ΠΌ каТСтся,
Ρ‡Ρ‚ΠΎ это нСдостаточно слоТно, ΠΌΠΎΠΆΠ΅Ρ‚Π΅
Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ врСмя Π΄Ρ€Π΅ΠΌΠΎΡ‚Ρ‹ (ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ
сигнал Π±ΡƒΠ΄ΠΈΠ»ΡŒΠ½ΠΈΠΊΠ°). Π‘ Π°ΡƒΠ΄ΠΈΠΎ Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚
Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

И кстати ΠΎΠ± Π°ΡƒΠ΄ΠΈΠΎ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Python ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ (Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ pymedia ΠΈ simpleaudio), Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ малСнькоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ β€” MP3-ΠΏΠ»Π΅Π΅Ρ€.

Π‘Π°ΠΌΠΎΠ΅ Π²Π°ΠΆΠ½ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚, это интСрфСйс, Π³Π΄Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ информация ΠΎ ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°Π΅ΠΌΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅. Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для программистов срСднСго уровня, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ позволяСт Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ мноТСство Ρ€Π°Π·Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠ³ Π·Π°ΠΊΠΎΠ»ΡŒΡ†Π΅Π²Π°Ρ‚ΡŒ мСлодию ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ вразброс! Если Π²Ρ‹ ΡƒΠΌΠ΅Π΅Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ плСйлистов.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ совСты
питонистам

Если Π²Ρ‹ Π½Π΅ чувствуСтС сСбя достаточно ΡƒΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π·ΡΡ‚ΡŒΡΡ Π·Π° собствСнный ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ шагом ΠΊ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ участиС Π² ΠΊΠ°ΠΊΠΎΠΌ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΎΠ±Ρ‰Π΅ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅. ЗаглянитС Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ Up for Grabs, Π³Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΡ‰ΡƒΡ‚ участников для своих ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. Π”Π°ΠΆΠ΅ Ссли Π²Ρ‹ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Ρ‚Π°ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒΡΡ, всС Ρ€Π°Π²Π½ΠΎ стоит Ρ‚ΡƒΠ΄Π° Π·Π°ΠΉΡ‚ΠΈ ΠΈ просто ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ идСями. Π’Π°ΠΌ Π΅ΡΡ‚ΡŒ Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ Ρ‡Ρ‚ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ, ΠΎΡ‚ дСсктопного ΠΎΡ€Π³Π°Π½Π°ΠΉΠ·Π΅Ρ€Π° Π΄ΠΎ элСктронной систСмы для матСматичСских тСстов.

Python | Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² написаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² написаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

ПослСднСС обновлСниС: 23.04.2017

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° языкС Python состоит ΠΈΠ· Π½Π°Π±ΠΎΡ€Π° инструкций. КаТдая инструкция помСщаСтся Π½Π° Π½ΠΎΠ²ΡƒΡŽ строку. НапримСр:


print(2 + 3) 
print("Hello")

Π‘ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Π² Python ΠΈΠ³Ρ€Π°ΡŽΡ‚ отступы. ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ поставлСнный отступ фактичСски являСтся ошибкой. НапримСр, Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ случаС ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΎΡˆΠΈΠ±ΠΊΡƒ, хотя ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ практичСски Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌΡƒ Π²Ρ‹ΡˆΠ΅:


print(2 + 3) 
	print("Hello")

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ стоит ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ инструкции сначала строки. Π’ этом ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π²Π°ΠΆΠ½Ρ‹Ρ… ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ ΠΏΠ°ΠΉΡ‚ΠΎΠ½Π° ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… языков программирования, ΠΊΠ°ΠΊ C# ΠΈΠ»ΠΈ Java.

Однако стоит ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ конструкции языка ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… строк. НапримСр, условная конструкция if:


if 1 < 2:
    print("Hello")

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС Ссли 1 мСньшС 2, Ρ‚ΠΎ выводится строка «Hello». И здСсь ΡƒΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ отступ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ инструкция print(«Hello») ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π΅ сама ΠΏΠΎ сСбС, Π°
ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ условной конструкции if. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ отступ, согласно руководству ΠΏΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΡŽ ΠΊΠΎΠ΄Π°, ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ· Ρ‚Π°ΠΊΠΎΠ³ΠΎ количСство ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΊΡ€Π°Ρ‚Π½ΠΎ 4 (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ 4, 8, 16 ΠΈ Ρ‚.Π΄.) Π₯отя Ссли отступов Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ 4, Π° 5, Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

Π’Π°ΠΊΠΈΡ… конструкций Π½Π΅ Ρ‚Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ, поэтому особой ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ Π³Π΄Π΅ Π½Π°Π΄ΠΎ, Π° Π³Π΄Π΅ Π½Π΅ Π½Π°Π΄ΠΎ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹, Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ.

Π Π΅Π³ΠΈΡΡ‚Ρ€ΠΎΠ·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ

Python — рСгистрозависимый язык, поэтому выраТСния print ΠΈ Print ΠΈΠ»ΠΈ PRINT ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ выраТСния.
И Ссли вмСсто ΠΌΠ΅Ρ‚ΠΎΠ΄Π° print для Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° консоль ΠΌΡ‹ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Print:

Print("Hello World")

Ρ‚ΠΎ Ρƒ нас Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ получится.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

Для ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΠΈ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚ΠΎΡ‚ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ участок ΠΊΠΎΠ΄Π°, ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ. ΠŸΡ€ΠΈ трансляции ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ,
поэтому ΠΎΠ½ΠΈ Π½Π΅ ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ влияния Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π² Python Π±Ρ‹Π²Π°ΡŽΡ‚ Π±Π»ΠΎΡ‡Π½Ρ‹Π΅ ΠΈ строчныС. ВсС ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΡΡŽΡ‚ΡΡ Π·Π½Π°ΠΊΠΎΠΌ Ρ€Π΅ΡˆΠ΅Ρ‚ΠΊΠΈ (#).

Π‘Π»ΠΎΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ставятся Π² Π½Π°Ρ‡Π°Π»Π΅ строки:


# Π’Ρ‹Π²ΠΎΠ΄ сообщСния Π½Π° консоль
print("Hello World")

Π‘Ρ‚Ρ€ΠΎΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π½Π° Ρ‚ΠΎΠΉ ΠΆΠ΅ строкС, Ρ‡Ρ‚ΠΎ ΠΈ инструкции языка:


print("Hello World")  # Π’Ρ‹Π²ΠΎΠ΄ сообщСния Π½Π° консоль

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Python прСдоставляСт ряд встроСнных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. НСкоторыС ΠΈΠ· Π½ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΎΡ‡Π΅Π½ΡŒ часто, особСнно Π½Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… этапах изучСния языка, поэтому рассмотрим ΠΈΡ….

Основной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ для Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½Π° консоль являСтся функция print(). Π’ качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Π² эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ пСрСдаСтся строка, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ вывСсти:

print("Hello Python")

Если ΠΆΠ΅ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ вывСсти нСсколько Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π½Π° консоль, Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΈΡ… Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ print Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ:


print("Full name:", "Tom", "Smith")

Π’ ΠΈΡ‚ΠΎΠ³Π΅ всС ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Π΅ значСния склСятся Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π² ΠΎΠ΄Π½Ρƒ строку:

Если функция print ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π²Ρ‹Π²ΠΎΠ΄, Ρ‚ΠΎ функция input ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π²Π²ΠΎΠ΄ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Π’ качСствС Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°
эта функция ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅ ΠΊ Π²Π²ΠΎΠ΄Ρƒ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π²Π²Π΅Π΄Π΅Π½Π½ΡƒΡŽ строку, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ:


name = input("Π’Π²Π΅Π΄ΠΈΡ‚Π΅ имя: ")
print("ΠŸΡ€ΠΈΠ²Π΅Ρ‚", name)

ΠšΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄:


Π’Π²Π΅Π΄ΠΈΡ‚Π΅ имя: Π•Π²Π³Π΅Π½ΠΈΠΉ
ΠŸΡ€ΠΈΠ²Π΅Ρ‚ Π•Π²Π³Π΅Π½ΠΈΠΉ

для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, Π½ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ

Нам нравится Python Π·Π° ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. ΠœΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ пайтонистов ΡΡ‚Π°Π½ΠΎΠ²ΠΈΠ»ΠΎΡΡŒ большС, Π° ΠΈΡ… скиллы ΠΏΡ€Π΅ΡƒΠΌΠ½ΠΎΠΆΠ°Π»ΠΈΡΡŒ ΠΈ ΠΏΡ€ΠΎΠΊΠ°Ρ‡ΠΈΠ²Π°Π»ΠΈΡΡŒ. 30 мая запускаСм Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ обучСния Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π½Π° Python. А ΠΏΠΎΠΊΠ° дСлимся ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΈΡ‘ΠΌΠ°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ экспСрт TechBeamers собрал ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… источников, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π²Π΅Π±ΠΈΠ½Π°Ρ€Ρ‹ ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π½Π° Python, Stack Overflow ΠΈ Wikipedia. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ Π² ΠΎΠ±Π·ΠΎΡ€, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² ΠΏΡ€ΠΎΡˆΡ‘Π» экспСртный ΠΎΡ‚Π±ΠΎΡ€, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π΅Π³ΠΎ удобство ΠΈ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Ρ‹ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅.

Π­Ρ‚ΠΈ совСты пригодятся ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ, ΠΈ тСстировщикам. НСкоторыС ΠΈΠ· Π½ΠΈΡ… Π±ΡƒΠ΄ΡƒΡ‚ Π½ΠΎΠ²Ρ‹ΠΌΠΈ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ Π΄Π°ΠΆΠ΅ для ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… программистов Π½Π° Python.

Π‘Ρ€Π΅Π΄ΠΈ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ создания Ρ‚Π°ΠΊΠΎΠ³ΠΎ пособия β€” растущая ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ Python ΠΊΠ°ΠΊ языка программирования, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. ΠžΠ³Π»ΡΠ½ΠΈΡ‚Π΅ΡΡŒ Π²ΠΎΠΊΡ€ΡƒΠ³, ΠΈ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½ эффСктивСн Π²Π΅Π·Π΄Π΅ β€” ΠΎΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… инструмСнтов Π΄ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° XML.

БСйчас доступны Ρ€Π°Π·Π½Ρ‹Π΅ вСрсии Python, Π½ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ программистов ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Python вСрсий 2.x ΠΈ 3.x. ВсС ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΡ‹Π΅ совСты Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ….

1. Запуск скриптов Python

На Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ систСм UNIX ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ скрипты Python ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

# run python script

$ python MyFirstPythonScript.py


2. Запуск ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° Python ΠΈΠ· ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°

Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Python ΠΎΡ‡Π΅Π½ΡŒ прост Π² использовании. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ свои ΠΏΠ΅Ρ€Π²Ρ‹Π΅ шаги Π² освоСнии этого языка, просто набирая Π»ΡŽΠ±Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² консоли Python ΠΎΠ΄Π½Ρƒ Π·Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ, ΠΈ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹.

Консоль Python ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

# start python console

$ python

>>> <type commands here>


*Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ вСсь ΠΊΠΎΠ΄, ΠΈΠ΄ΡƒΡ‰ΠΈΠΉ послС >>>, Π½ΡƒΠΆΠ½ΠΎ Π½Π°Π±ΠΈΡ€Π°Ρ‚ΡŒ Π² строкС Π²Π²ΠΎΠ΄Π° Python. Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Python ΠΎΡ‡Π΅Π½ΡŒ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎ воспринимаСт Ρ‚Π°Π±ΡƒΠ»ΡΡ†ΠΈΡŽ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Ссли Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ошибки с Π΅Ρ‘ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ΠΌ, Ρ‚ΠΎ ΠΈΡΠΏΡ€Π°Π²ΡŒΡ‚Π΅ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅.

3. ИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ enumerate()

Ѐункция enumerate() добавляСт счСтчик Π² ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ __iter__ , Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€. Он ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ значСния индСкса, начиная с нуля. И Π²Ρ‹Π΄Π°Ρ‘Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ IndexError, ΠΊΠΎΠ³Π΄Π° индСксы большС Π½Π΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹.

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ enumerate() β€” созданиС Ρ†ΠΈΠΊΠ»Π° ΠΏΠΎ списку с отслСТиваниСм индСкса. Для этого ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π² качСствС счСтчика. Но функция enumerate() позволяСт ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎ ΠΆΠ΅ самоС Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅.

# First prepare a list of strings

subjects = ('Python', 'Coding', 'Tips')
for i, subject in enumerate(subjects):

  print(i, subject)



# Output:

  0 Python

  1 Coding

  2 Tips


4. Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… SET

Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Β«setΒ» β€” это своСго Ρ€ΠΎΠ΄Π° коллСкция. Она стала Ρ‡Π°ΡΡ‚ΡŒΡŽ Python, начиная с вСрсии 2.4. ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ содСрТит Π½Π΅ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡Π΅Π½Π½ΡƒΡŽ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈ нСизмСняСмых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π­Ρ‚ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… Python, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΡ… мноТСства ΠΈΠ· ΠΌΠΈΡ€Π° ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ. ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π°, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ списков ΠΈΠ»ΠΈ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ, Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π΄ΡƒΠ±Π»Π΅ΠΉ.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ мноТСство, просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ set() с ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

# *** Create a set with strings and perform search in set

objects = {"python", "coding", "tips", "for", "beginners"}

# Print set.
print(objects)
print(len(objects))

# Use of "in" keyword.
if "tips" in objects:

  print("These are the best Python coding tips.")

# Use of "not in" keyword.
if "Java tips" not in objects:

  print("These are the best Python coding tips not Java tips.")



# ** Output

  {'python', 'coding', 'tips', 'for', 'beginners'}

  5

  These are the best Python coding tips.

  These are the best Python coding tips not Java tips.


Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² мноТСство:

# *** Lets initialize an empty set
items = set()

# Add three strings.

items.add("Python")

items.add("coding")

items.add("tips")

print(items)




# ** Output


  {'Python', 'coding', 'tips'}


5. ДинамичСский Π²Π²ΠΎΠ΄

Π’ Java, C++ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… статичСски Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… языках Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Ρ‚ΠΈΠΏ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΅Ρ‘ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°. Напротив, Python, ΠΊΠ°ΠΊ динамичСски Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык, Π½Π΅ Π²Ρ‹Π½ΡƒΠΆΠ΄Π°Π΅Ρ‚ явно ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…. На основС присвоСнных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Python отслСТиваСт ΠΈΡ… сам.

Π’ΠΎΡ‚ Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ динамичСской Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ:

«ИмСна ΡΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‚ΡΡ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π²ΠΎ врСмя выполнСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² присваивания. И сущСствуСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠΈΡ‚ΡŒ имя ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° прямо Π²ΠΎ врСмя выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹Β».

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ функция ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ свои Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈ ΠΊΠ°ΠΊ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ Π²Π΅Ρ‰ΠΈ Π² зависимости ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

# Test for dynamic typing.

from types import *

def CheckIt (x):

  if type(x) == IntType:

    print("You have entered an integer.")

  else:

    print("Unable to recognize the input data type.")

# Perform dynamic typing test

CheckIt(999)

  # Output:

  # You have entered an integer.

CheckIt("999")

  # Output:

  # Unable to recognize the input data type.


6. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ == И =

Python ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Β«==Β» для сравнСния ΠΈ Β«=Β» β€” для присваивания. ΠŸΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Π½Π΅ поддСрТиваСтся. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… шансов случайного присваивания Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Ссли ΠΈΡ… Π½ΡƒΠΆΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ.

7. УсловныС выраТСния

Python допускаСт условныС выраТСния. Π’ этом языкС Π΅ΡΡ‚ΡŒ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятный способ написания условных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Π’ дальнСйшСй ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Π²Ρ‹ смоТСтС ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ:

# make number always be odd

number = count if count % 2 else count - 1

# Call a function if the object is not None.

data = data.load() if data is not None else 'Dummy'
print("Data collected is ", data)


8. ΠšΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡ строк

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ β€˜+’ для ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ строк. ДСлаСтся это Ρ‚Π°ΠΊ:

# See how to use '+' to concatenate strings.

>>> print ('Python' + ' Coding' + ' Tips' )

# Output:

Python Coding Tips


9. ΠœΠ΅Ρ‚ΠΎΠ΄ __init__

ΠœΠ΅Ρ‚ΠΎΠ΄ __init__ вызываСтся послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ инстанцирован ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠΎΠ»Π΅Π·Π΅Π½ для выполнСния любой Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π²Π°ΠΌΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. ΠœΠ΅Ρ‚ΠΎΠ΄ __init__ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ конструктору Π² C++, C# ΠΈ Java.

# Implementing a Python class as InitEmployee.py

class Employee(object):

  def __init__(self, role, salary):

    self.role = role

    self.salary = salary

  def is_contract_emp(self):

    return self.salary 1250

  def is_regular_emp(self):

    return self.salary > 1250

emp = Employee('Tester', 2000)

if emp.is_contract_emp():

  print("I'm a contract employee.")
elif emp.is_regular_emp():

  print("I'm a regular employee.")

print("Happy reading Python coding tips!")


Π’ΠΎΡ‚ ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ этого ΠΊΠΎΠ΄Π°:

[~/src/python $:] python InitEmployee.py

I'm a regular employee.

Happy reading Python coding tips!


10. ΠœΠΎΠ΄ΡƒΠ»ΠΈ

Для сохранСния удобства управлСния своими ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ ΠΈΡ… роста, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΈΡ… Π½Π° нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ². Python позволяСт ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ мноТСство Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² Ρ„Π°ΠΉΠ» ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π² качСствС модуля. Π­Ρ‚ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ .py. Π’ дальнСйшСм ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ скрипты ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.



# 1- Module definition => save file as my_function.py
def minmax(a,b):

  if a
    min, max = a, b

  else:

    min, max = b, a

  return min, max



# 2- Module Usage
import my_function
x,y = my_function.minmax(25, 6.3)

print(x)
print(y)

Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° Python быстрСС ΠΈ ΠΊΡ€ΡƒΡ‡Π΅? β€” Π Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ Π½Π° курс #tceh.

Processing.py Π£Ρ‡Π΅Π±Π½ΠΈΠΊΠΈ. Π‘Π±ΠΎΡ€Π½ΠΈΠΊ ΠΏΠΎΡˆΠ°Π³ΠΎΠ²Ρ‹Ρ… ΡƒΡ€ΠΎΠΊΠΎΠ², знакомящих с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ (с Python).

МногиС ΠΈΠ· этих руководств Π±Ρ‹Π»ΠΈ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½Ρ‹ Π½Π° Python ΠΈΠ· своих Java-Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²
Команда ΠΏΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Processing.py ΠΈ, соотвСтствСнно, зачислСны Π½Π° ΠΈΡ… ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Π΅
Π°Π²Ρ‚ΠΎΡ€Ρ‹. поТалуйста
ΡΠΎΠΎΠ±Ρ‰Π°Ρ‚ΡŒ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… ΠΈΠ»ΠΈ нСточностях Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Processing.py
GitHub.


Начало Ρ€Π°Π±ΠΎΡ‚Ρ‹

КСйси Риас ΠΈ Π‘Π΅Π½ Π€Ρ€Π°ΠΉ

Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π² процСссинг! Π’ этом руководствС Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ основы написания ΠΊΠΎΠ΄Π° Python.

Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ: ΠΠ°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΉ


ΠžΠ±Π·ΠΎΡ€ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

ΠΎΡ‚ Π‘Π΅Π½Π° Ѐрая ΠΈ КСйси Риаса

Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ: ΠΠ°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΉ


Π¦Π²Π΅Ρ‚

, ДэниСл Π¨ΠΈΡ„Ρ„ΠΌΠ°Π½

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ Ρ†Π²Π΅Ρ‚.

Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ: ΠΠ°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΉ


Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ

КСйси Риас ΠΈ Π‘Π΅Π½ Π€Ρ€Π°ΠΉ

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΡ‹ΡˆΠΈ ΠΈ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹

Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ: ΠΠ°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΉ


ΠžΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

, ДэниСл Π¨ΠΈΡ„Ρ„ΠΌΠ°Π½

ΠžΡΠ½ΠΎΠ²Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования.

Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ: ΠΠ°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΉ


Π”Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Π΅ списки

, Дэн Π¨ΠΈΡ„Ρ„ΠΌΠ°Π½

Как Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ списка.

Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ: срСдний


ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ пиксСлСй

, ДэниСл Π¨ΠΈΡ„Ρ„ΠΌΠ°Π½

Как Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ изобраТСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ доступ ΠΊ ΠΈΡ… пиксСлям.

Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ: срСдний


Π‘Ρ‚Ρ€ΠΎΠΊΠΈ ΠΈ тСкст для рисования

, ДэниСл Π¨ΠΈΡ„Ρ„ΠΌΠ°Π½

Π£Π·Π½Π°ΠΉΡ‚Π΅, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ класс строки ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ тСкст Π½Π° экранС.

Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ: срСдний


ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡ 2D

, Π°Π²Ρ‚ΠΎΡ€: Дэвид Π­ΠΉΠ·Π΅Π½Π±Π΅Ρ€Π³.

Π£Π·Π½Π°ΠΉΡ‚Π΅, ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ΡŒ, Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ 2D-ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ.

Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ: срСдний


P3D

, ДэниСл Π¨ΠΈΡ„Ρ„ΠΌΠ°Π½

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° слоТных графичСских ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ с использованиСм Ρ€Π΅ΠΆΠΈΠΌΠ° P3D (OpenGL).

Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ: ΠŸΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹ΠΉ


Анатомия ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

, Π°Π²Ρ‚ΠΎΡ€: Дэвид Π­ΠΉΠ·Π΅Π½Π±Π΅Ρ€Π³.

Как ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΈ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π΅Π΅ Π½Π° шаги, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€?

Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ: ΠŸΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹ΠΉ


Python, Jython ΠΈ Java

Эллисон ΠŸΡΡ€Ρ€ΠΈΡˆ

Π£Π·Π½Π°ΠΉΡ‚Π΅, ΠΊΠ°ΠΊ Processing.py ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ Python, Jython ΠΈ Java

Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ: ΠŸΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹ΠΉ

Python Socket Programming — Server, Client Example

Π”ΠΎΠ±Ρ€ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ суток, ΡƒΡ‡Π΅Π½ΠΈΠΊΠΈ! Π’ нашСм ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ руководствС ΠΌΡ‹ обсуТдали ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Python unittest. БСгодня ΠΌΡ‹ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ программирования сокСтов Python. ΠœΡ‹ создадим сСрвСрныС ΠΈ клиСнтскиС прилоТСния Π½Π° Python.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ сокСтов Python

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ сокСтов Python, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΎ Ρ‚Ρ€Π΅Ρ… интСрСсных Ρ‚Π΅ΠΌΠ°Ρ… — Socket Server , Socket Client ΠΈ Socket .

Π˜Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сСрвСр? Ну, сСрвСр — это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ запросов ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΈ обслуТиваСт ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΈΡ… соотвСтствСнно.

Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ эту услугу. ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠ°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ рСсурсы ΠΊ сСрвСру, ΠΈ сСрвСр ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π½Π° этот запрос.

Socket — это конСчная Ρ‚ΠΎΡ‡ΠΊΠ° Π΄Π²ΡƒΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π° связи ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвСром ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ. Π‘ΠΎΠΊΠ΅Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ процСсса, ΠΌΠ΅ΠΆΠ΄Ρƒ процСссами Π½Π° ΠΎΠ΄Π½ΠΎΠΉ машинС ΠΈΠ»ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ процСссами Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΠΌΠ°ΡˆΠΈΠ½Π°Ρ….Для любого взаимодСйствия с ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΡ€Ρ‚ сокСта.

Основная Ρ†Π΅Π»ΡŒ этого руководства ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ сокСтов — ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒ вас с Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ сСрвСр сокСтов ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ сСрвСра сокСтов Python.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ сокСта Python

Π Π°Π½Π΅Π΅ ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ сокСта Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ рСсурсы Ρƒ сСрвСра сокСта, ΠΈ сСрвСр ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π½Π° этот запрос.

Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ спроСктируСм ΠΈ ΡΠ΅Ρ€Π²Π΅Ρ€Π½ΡƒΡŽ, ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΡƒΡŽ модСль, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠ³ ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ с Π½ΠΈΠΌΠΈ.Π¨Π°Π³ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ.

  1. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° сСрвСра сокСта Python выполняСтся сначала ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ любого запроса
  2. ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠ°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° сокСта Python сначала ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΠ΅Ρ‚ Π΄ΠΈΠ°Π»ΠΎΠ³.
  3. Π’ΠΎΠ³Π΄Π° сСрвСрная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ Π½Π° запросы ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.
  4. ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠ°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π°, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²Π΅Π΄Π΅Ρ‚ сообщСниС Β«ΠΏΠΎΠΊΠ°Β». БСрвСрная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° клиСнтская ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ, это Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΈ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ сСрвСрной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ срок ΠΈΠ»ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² клиСнтском запросС.

Π‘Π΅Ρ€Π²Π΅Ρ€ сокСтов Python

ΠœΡ‹ сохраним ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ сСрвСра сокСтов Python ΠΊΠ°ΠΊ socket_server.py . Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ соСдинСниС сокСта python, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ socket .

Π—Π°Ρ‚Π΅ΠΌ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ ΠΏΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡŽ соСдинСния ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвСром ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ.

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ адрСс хоста с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ socket.gethostname () . РСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ адрСс ΠΏΠΎΡ€Ρ‚Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π²Ρ‹ΡˆΠ΅ 1024, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½ΠΎΠΌΠ΅Ρ€ ΠΏΠΎΡ€Ρ‚Π° мСньшС 1024 Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½ для стандартного ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°.

Π‘ΠΌ. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° сСрвСра сокСтов Python, ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΊΠΎΠ΄.

 
ΠΈΠΌΠΏΠΎΡ€Ρ‚Π½Ρ‹ΠΉ сокСт


def server_program ():
    # ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ имя хоста
    host = socket.gethostname ()
    port = 5000 # ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡ€Ρ‚ Π½Π΅ Π²Ρ‹ΡˆΠ΅ 1024

    server_socket = socket.socket () # ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ экзСмпляр
    # посмотритС Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. Ѐункция bind () ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°
    server_socket.bind ((host, port)) # связываСм адрСс хоста ΠΈ ΠΏΠΎΡ€Ρ‚ вмСстС

    # Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ, сколько ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² сСрвСр ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΡˆΠ°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ
    server_socket.ΡΠ»ΡƒΡˆΠ°Ρ‚ΡŒ (2)
    conn, address = server_socket.accept () # ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ соСдинСниС
    print ("ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚:" + str (адрСс))
    Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ True:
        # ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ…. ΠΎΠ½ Π½Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Π±ΠΎΠ»Π΅Π΅ 1024 Π±Π°ΠΉΡ‚ΠΎΠ²
        Π΄Π°Π½Π½Ρ‹Π΅ = conn.recv (1024) .decode ()
        Ссли Π½Π΅ Π΄Π°Π½Π½Ρ‹Π΅:
            # Ссли Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹, ΠΏΠ΅Ρ€Π΅Ρ€Ρ‹Π²
            ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π°
        print ("ΠΎΡ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ:" + str (data))
        Π΄Π°Π½Π½Ρ‹Π΅ = Π²Ρ…ΠΎΠ΄ ('->')
        conn.send (data.encode ()) # отправляСм Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ

    conn.close () # Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ соСдинСниС


Ссли __name__ == '__main__':
    server_program ()
  

Π˜Ρ‚Π°ΠΊ, наш сСрвСр сокСтов python Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° ΠΏΠΎΡ€Ρ‚Ρƒ 5000 ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΆΠ΄Π°Ρ‚ΡŒ запроса ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ сСрвСр Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π» Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ клиСнтского соСдинСния, просто ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ условиС if ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ break. Π¦ΠΈΠΊΠ» Python while ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для бСсконСчного запуска сСрвСрной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ оТидания клиСнтского запроса.

ΠšΠ»ΠΈΠ΅Π½Ρ‚ сокСта Python

ΠœΡ‹ сохраним ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ сокСта Python ΠΊΠ°ΠΊ socket_client.py . Π­Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° ΡΠ΅Ρ€Π²Π΅Ρ€Π½ΡƒΡŽ, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ привязки.

ОсновноС Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвСрной ΠΈ клиСнтской ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² сСрвСрной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ адрСс хоста ΠΈ адрСс ΠΏΠΎΡ€Ρ‚Π° вмСстС.

Π‘ΠΌ. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° сокСта python, ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΊΠΎΠ΄.

 
ΠΈΠΌΠΏΠΎΡ€Ρ‚Π½Ρ‹ΠΉ сокСт


def client_program ():
    host = socket.gethostname () # ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ±Π° ΠΊΠΎΠ΄Π° Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅
    port = 5000 # Π½ΠΎΠΌΠ΅Ρ€ ΠΏΠΎΡ€Ρ‚Π° сСрвСра сокСта

    client_socket = socket.socket () # ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ экзСмпляр
    client_socket.connect ((host, port)) # ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ сСрвСру

    message = input ("->") # ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ Π²Π²ΠΎΠ΄

    Π° message.lower (). strip ()! = 'ΠΏΠΎΠΊΠ°':
        client_socket.send (message.encode ()) # ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ сообщСниС
        data = client_socket.recv (1024) .decode () # ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚

        print ('ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ с сСрвСра:' + Π΄Π°Π½Π½Ρ‹Π΅) # ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅

        message = input ("->") # снова ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌ Π²Π²ΠΎΠ΄

    client_socket.close () # Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ соСдинСниС


Ссли __name__ == '__main__':
    client_program ()
  

Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ программирования сокСтов Python

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, сначала запуститС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ сСрвСра сокСтов. Π—Π°Ρ‚Π΅ΠΌ запуститС ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ сокСта. ПослС этого Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΈΠ· клиСнтской ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.Π—Π°Ρ‚Π΅ΠΌ снова Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΎΡ‚Π²Π΅Ρ‚ ΠΎΡ‚ сСрвСрной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. НаконСц, Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ bye ΠΈΠ· клиСнтской ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ ΠΎΠ±Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. НиТС ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ Π²ΠΈΠ΄Π΅ΠΎ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚, ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ Π½Π° ΠΌΠΎΠ΅ΠΌ тСстовом ΠΏΡ€ΠΎΠ³ΠΎΠ½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ сСрвСра сокСтов ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.

 
pankaj $ python3.6 socket_server.py
ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚: ('127.0.0.1', 57822)
ΠΎΡ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ: ΠŸΡ€ΠΈΠ²Π΅Ρ‚
 -> ΠŸΡ€ΠΈΠ²Π΅Ρ‚
ΠΎΡ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ: Как Π΄Π΅Π»Π°?
 -> Π₯ΠΎΡ€ΠΎΡˆΠΎ
ΠΎΡ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ: ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ!
 -> Π₯ΠΎΡ€ΠΎΡˆΠΎ, Ρ‚ΠΎΠ³Π΄Π° ΠΏΠΎΠΊΠ°!
ΠΏΠ°Π½ΠΊΠ°Π΄ΠΆ $
  
 
pankaj $ python3.6 socket_client.py
 -> ΠŸΡ€ΠΈΠ²Π΅Ρ‚
ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ с сСрвСра: ΠŸΡ€ΠΈΠ²Π΅Ρ‚
 -> Как дСла?
ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ с сСрвСра: Π₯ΠΎΡ€ΠΎΡˆΠΎ
 -> ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ!
ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ с сСрвСра: Π₯ΠΎΡ€ΠΎΡˆΠΎ, Ρ‚ΠΎΠ³Π΄Π° ΠΏΠΎΠΊΠ°!
 -> Пока
ΠΏΠ°Π½ΠΊΠ°Π΄ΠΆ $
  

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ сСрвСр сокСтов Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° ΠΏΠΎΡ€Ρ‚Ρƒ 5000, Π½ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ Ρ‚Π°ΠΊΠΆΠ΅ трСбуСтся ΠΏΠΎΡ€Ρ‚ сокСта для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ сСрвСру. Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΡ€Ρ‚ назначаСтся случайным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ клиСнтского соСдинСния. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС это 57822.

Π˜Ρ‚Π°ΠΊ, это всС, Ρ‡Ρ‚ΠΎ касаСтся программирования сокСтов Python, ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ сСрвСра сокСтов ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² сокСтов.

Бсылка: ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ докумСнтация

КакоС использованиС self Π² Python? self Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ класса Python

Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с Python, слово Β«selfΒ» Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ. Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² опрСдСлСниях ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ ΠΏΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. ΠœΠ΅Ρ‚ΠΎΠ΄ self явно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ опрСдСляСм ΠΌΠ΅Ρ‚ΠΎΠ΄. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ углубимся Π² сСбя Π² Python Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ:

Какая польза ΠΎΡ‚ Self Π² Python?

Π‘Π°ΠΌΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для прСдставлСния экзСмпляра класса.Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этого ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ класса Π² Python. Он связываСт Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ. ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ self, Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Python Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ синтаксис Β«@Β» для ссылки Π½Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ экзСмпляра. Π’ Python Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ экзСмпляра, Π½ΠΎ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ автоматичСски.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

 class food ():

# ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΠ»ΠΈ конструктор ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ
def __init __ (я, Ρ„Ρ€ΡƒΠΊΡ‚, Ρ†Π²Π΅Ρ‚):
self.fruit = Ρ„Ρ€ΡƒΠΊΡ‚Ρ‹
self.color = Ρ†Π²Π΅Ρ‚

def show (self):
print ("ΠΏΠ»ΠΎΠ΄ Π΅ΡΡ‚ΡŒ", self.Ρ„Ρ€ΡƒΠΊΡ‚Ρ‹)
print ("Ρ†Π²Π΅Ρ‚ Π΅ΡΡ‚ΡŒ", self.color)

яблоко = Π΅Π΄Π° ("яблоко", "красноС")
Π²ΠΈΠ½ΠΎΠ³Ρ€Π°Π΄ = Π΅Π΄Π° (Β«Π²ΠΈΠ½ΠΎΠ³Ρ€Π°Π΄Β», «зСлСнь»)

apple.show ()
grapes.show () 

Π’Ρ‹Π²ΠΎΠ΄:

 Π€Ρ€ΡƒΠΊΡ‚ - яблоко
Ρ†Π²Π΅Ρ‚ красный
Π€Ρ€ΡƒΠΊΡ‚ - Π²ΠΈΠ½ΠΎΠ³Ρ€Π°Π΄
Ρ†Π²Π΅Ρ‚ Π·Π΅Π»Π΅Π½Ρ‹ΠΉ 

Π‘Π°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ конструктор класса Python

self Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ссылки Π½Π° ΠΏΠΎΠ»Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ класса. Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈ посмотрим, ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚:

 class Person:

# имя сдСлано Π² конструкторС
def __init __ (я, Π”ΠΆΠΎΠ½):
я.name = Π”ΠΆΠΎΠ½

def get_person_name (self):
return self.name 

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ self ссылаСтся Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ name всСго класса Person. Π—Π΄Π΅ΡΡŒ, Ссли Ρƒ нас Π΅ΡΡ‚ΡŒ пСрСмСнная Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, self Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Π­Ρ‚Π° пСрСмСнная просто сущСствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎ врСмя выполнСния этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, являСтся локальной для этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. Для опрСдСлСния Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ класса Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈΡ… Π²Π½Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² класса.

Π― — ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово?

self ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Ρ€Π°Π·Π½Ρ‹Ρ… мСстах ΠΈ ​​часто считаСтся ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом.Но Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ C ++, self Π½Π΅ являСтся ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом Π² Python.

self — это ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ имя ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° вмСсто Π½Π΅Π³ΠΎ. Π₯отя ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ self, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ это ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

 класс this_is_class:
def show (in_place_of_self):
print ("Π­Ρ‚ΠΎ Π½Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово"
"ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово")

ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ = this_is_class ()
object.show () 

Π’Ρ‹Π²ΠΎΠ΄:

 Π­Ρ‚ΠΎ Π½Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово, ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово 

На этом ΠΌΡ‹ подошли ΠΊ ΠΊΠΎΠ½Ρ†Ρƒ нашСй ΡΡ‚Π°Ρ‚ΡŒΠΈ.НадСюсь, Π²Ρ‹ поняли, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ self ΠΈ ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Python.

ΠžΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с сСртификатом программирования Python ΠΎΡ‚ Edureka. Π­Ρ‚ΠΎΡ‚ ΡƒΡ‡Π΅Π±Π½Ρ‹ΠΉ курс ΠΏΠΎ сСртификации Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ для студСнтов ΠΈ профСссионалов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят ΡΡ‚Π°Ρ‚ΡŒ программистом Π½Π° Python. ΠšΡƒΡ€Ρ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π°Ρ‚ΡŒ Π²Π°ΠΌ Ρ„ΠΎΡ€Ρƒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° Python ΠΈ ΠΎΠ±ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ основным, Ρ‚Π°ΠΊ ΠΈ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹ΠΌ концСпциям.

Π•ΡΡ‚ΡŒ ΠΊ Π½Π°ΠΌ вопрос? ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ это Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π² этом Π±Π»ΠΎΠ³Π΅, ΠΈ ΠΌΡ‹ свяТСмся с Π²Π°ΠΌΠΈ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ скорСС.

Руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² Paho MQTT Python

ΠšΠ»ΠΈΠ΅Π½Ρ‚ python paho MQTT ΠΎΡ‚ Eclipse ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ MQTT v 3.1 ΠΈ 3,1.1, Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ v5 ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Python 3.x.

Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС

Π’ этом руководствС ΠΌΡ‹ рассмотрим Π³Π»Π°Π²Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹.

Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ создадим простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ сцСнария Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ подписываСтся Π½Π° Ρ‚Π΅ΠΌΡƒ ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅Ρ‚ сообщСния ΠΏΠΎ этой Ρ‚Π΅ΠΌΠ΅.

Если всС ΠΏΠΎΠΉΠ΄Π΅Ρ‚ Ρ…ΠΎΡ€ΠΎΡˆΠΎ, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹Π΅ сообщСния.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ сцСнариСв просты, ΠΈ я Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ ошибок. Π― ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ свой собствСнный локально установлСнный Π±Ρ€ΠΎΠΊΠ΅Ρ€, Π½ΠΎ Π²Π°ΠΌ, вСроятно, Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡ‰Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ бСсплатный ΠΎΠ½Π»Π°ΠΉΠ½-Π±Ρ€ΠΎΠΊΠ΅Ρ€, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

  • test.mosquitto.org
  • broker.hivemq.com
  • iot.eclipse.org

Установка ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ MQTT, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ PIP с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ это Π½Π΅ Ρ‚Π°ΠΊ просто, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

pip install paho-mqtt

, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ машин установлСно нСсколько вСрсий python, ΠΈ сущСствуСт нСсколько вСрсий pip, ΠΈ фактичСская ΠΊΠΎΠΌΠ°Π½Π΄Π° зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ Π² Windows ΠΈΠ»ΠΈ Linux.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

ΠΏΠΈΠΏ - вСрсия

ΠΏΠ΅Ρ€Π΅Π΄ установкой, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΡƒΠ΄Π° pip установит Ρ„Π°ΠΉΠ»Ρ‹.

Π‘Π½ΠΈΠΌΠΎΠΊ экрана Π½ΠΈΠΆΠ΅ взят с ΠΌΠΎΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° с Windows 10, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ установлСны Π΄Π²Π΅ вСрсии Python (3.4 ΠΈ 3.6).

Если Π±Ρ‹ я запустил

pip install paho-mqtt

, ΠΎΠ½ установил Π±Ρ‹ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ сайта 3.6. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ для вСрсии 3.4, ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ.

pip3.4 ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ paho-mqtt

На ΠΌΠΎΠ΅ΠΌ Raspberry pi (linux) с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

pip install paho-mqtt

установит ΠΊΠ»ΠΈΠ΅Π½Ρ‚ для использования ΠΌΠΎΠ΅ΠΉ вСрсии Python 2.7

Для установки вСрсии 3.5 ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ:

pip3 ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ paho-mqtt

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: , Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ нСсколько вСрсий python Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, взглянитС Π½Π° ΠΌΠΎΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΎ Python.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: На PI ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄Ρ€ΡƒΠ³ΠΈΡ… вСрсиях Linux, Ссли Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ сообщСниС ΠΎΠ± ошибкС ΠΏΡ€ΠΈ установкС, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ sudo pip install paho-mqtt.

Π’ΠΈΠ΄Π΅ΠΎ- Установка ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Mqtt Python ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ с использованиСм PIP

Π—Π΄Π΅ΡΡŒ Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ ΠΎΠ½Π»Π°ΠΉΠ½-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ. Π° Ρ‚Π°ΠΊΠΆΠ΅ установочныС Ρ„Π°ΠΉΠ»Ρ‹, Ссли ΠΎΠ½ΠΈ Π²Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹.

ΠšΠ»ΠΈΠ΅Π½Ρ‚ Python MQTT

Π―Π΄Ρ€ΠΎΠΌ клиСнтской Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ являСтся класс ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдоставляСт всС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ сообщСний, ΠΈ подписки Π½Π° Ρ‚Π΅ΠΌΡ‹ .

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠΎΠ΄ этого класса, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°ΠΉΡ‚ΠΈ Π΅Π³ΠΎ Π² Ρ„Π°ΠΉΠ»Π΅ client.py Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ mqtt . (оконная машина)

Π­Ρ‚ΠΎΡ‚ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ находится Π² python34 \ Lib \ site-packages \ paho \ mqtt (ΠΎΠΊΠ½Π° см. Π’ Python Notes.)

Π“Π΄Π΅ python34 — ΠΊΠΎΡ€Π΅Π½ΡŒ ΠΌΠΎΠ΅ΠΉ установки python.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ основного ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°

Π£ клиСнтского класса paho mqtt Π΅ΡΡ‚ΡŒ нСсколько ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², основными ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡΠ²Π»ΡΡŽΡ‚ΡΡ:

  • ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ () ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ()
  • ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ () ΠΈ ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ подписки ()
  • ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ ()

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· этих ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² связан с ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΌ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ . Π‘ΠΌ. ΠΏΠΎΠ·ΠΆΠ΅.

Π˜ΠΌΠΏΠΎΡ€Ρ‚ класса ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ клиСнтский класс, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΅Π³ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

 Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ paho.mqtt.client ΠΊΠ°ΠΊ mqtt 

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ экзСмпляра ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ 4 Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², , ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅ . , Π½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ client_id , ΠΈ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ.

  ΠšΠ»ΠΈΠ΅Π½Ρ‚ (client_id = ””, clean_session = True, userdata = None, protocol = MQTTv311, transport = ”tcp”)  

Для создания экзСмпляра ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅:

  ΠΊΠ»ΠΈΠ΅Π½Ρ‚ = mqtt.ΠšΠ»ΠΈΠ΅Π½Ρ‚ (client_name)  

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ см. Π Π°Π±ΠΎΡ‚Π° с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Β«ΠšΠ»ΠΈΠ΅Π½Ρ‚Β».

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ Π±Ρ€ΠΎΠΊΠ΅Ρ€Ρƒ ΠΈΠ»ΠΈ сСрвСру

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²Ρ‹ смоТСтС ΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ сообщСния ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ Π½Π° Ρ‚Π΅ΠΌΡ‹, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ соСдинСниС с Π±Ρ€ΠΎΠΊΠ΅Ρ€ΠΎΠΌ.

Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ connect ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Python mqtt.

ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½ с 4 ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ. ОбъявлСниС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

 connect (хост, ΠΏΠΎΡ€Ρ‚ = 1883, keepalive = 60, bind_address = "") 

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ имя Π±Ρ€ΠΎΠΊΠ΅Ρ€Π° / IP-адрСс .

ΠžΠ±Ρ‰ΠΈΠΉ синтаксис:

  client.connect (имя_хоста)  

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ см. Π Π°Π±ΠΎΡ‚Π° с клиСнтскими ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌΠΈ.

ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ сообщСний

ПослС установлСния соСдинСния Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ ΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ сообщСния.

Для этого ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ.

ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ 4 ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° . ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π½ΠΈΠΆΠ΅ со значСниями ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

 публикация (Ρ‚Π΅ΠΌΠ°, полСзная Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° = НСт, qos = 0, ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ = False) 

ЕдинствСнныС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, — это Ρ‚Π΅ΠΌΠ° ΠΈ полСзная Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° .

ПолСзная Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° — это сообщСниС , ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ.

ΠžΠ±Ρ‰ΠΈΠΉ синтаксис:

  client.publish (Β«Π΄ΠΎΠΌ / свСт», «ПО»)  
ΠŸΡ€ΠΈΠΌΠ΅Ρ€ сцСнария Python:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ наш ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ скрипт Python для ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ сообщСния.

Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ Π½ΠΈΠΆΠ΅ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅Ρ‚ сообщСниС OFF Π² Ρ‚Π΅ΠΌΡƒ house / main-light

 
ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ paho.mqtt.client ΠΊΠ°ΠΊ mqtt # ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ client1
broker_address = "192.168.1.184 "
# broker_address = "iot.eclipse.org" # ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ внСшнСго Π±Ρ€ΠΎΠΊΠ΅Ρ€Π°
client = mqtt.Client ("P1") # ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ экзСмпляр
client.connect (broker_address) #connect ΠΊ Π±Ρ€ΠΎΠΊΠ΅Ρ€Ρƒ
client.publish ("house / main-light", "OFF") # ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ
  

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π― ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ своСго мСстного Π±Ρ€ΠΎΠΊΠ΅Ρ€Π°, Π½ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½-Π±Ρ€ΠΎΠΊΠ΅Ρ€Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° iot.eclipse.org.

Подписка Π½Π° Ρ‚Π΅ΠΌΡ‹

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° Ρ‚Π΅ΠΌΡƒ, Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ подписки ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Paho MQTT Class.

ΠœΠ΅Ρ‚ΠΎΠ΄ подписки ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ 2 ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° — Ρ‚Π΅ΠΌΡƒ ΠΈΠ»ΠΈ Ρ‚Π΅ΠΌΡ‹ ΠΈ QOS (качСство обслуТивания) , ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅, со значСниями ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ (Ρ‚Π΅ΠΌΠ°, qos = 0)

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ подпишСмся Π½Π° Ρ‚Π΅ΠΌΡ‹, ΠΈ Π² этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ подпишСмся Π½Π° Ρ‚Π΅ΠΌΡƒ house / bulb1 , которая Ρ‚Π°ΠΊΠΆΠ΅ являСтся Ρ‚ΠΎΠΉ ΠΆΠ΅ Ρ‚Π΅ΠΌΠΎΠΉ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ я ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΡŽ.

Π­Ρ‚ΠΎ позволяСт Π½Π°ΠΌ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ сообщСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅ΠΌ, Π½ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ.

Π˜Ρ‚Π°ΠΊ, наш ΠΊΠΎΠ½Ρ‚ΡƒΡ€ сцСнария становится.

  1. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ экзСмпляр ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°
  2. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ Π±Ρ€ΠΎΠΊΠ΅Ρ€Ρƒ
  3. ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° Ρ‚Π΅ΠΌΡƒ
  4. ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ сообщСниС

Наш Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ сцСнария ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½ΠΈΠΆΠ΅, ΠΈ я вставил нСсколько ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ дСлаСтся.

 
ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ paho.mqtt.client ΠΊΠ°ΠΊ mqtt # ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ client1
broker_address = "192.168.1.184"
# broker_address = "iot.eclipse.org"
print ("созданиС Π½ΠΎΠ²ΠΎΠ³ΠΎ экзСмпляра")
ΠΊΠ»ΠΈΠ΅Π½Ρ‚ = mqtt.ΠšΠ»ΠΈΠ΅Π½Ρ‚ ("P1") # ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ экзСмпляр
print ("ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ Π±Ρ€ΠΎΠΊΠ΅Ρ€Ρƒ")
client.connect (broker_address) #connect ΠΊ Π±Ρ€ΠΎΠΊΠ΅Ρ€Ρƒ
print («Подписка Π½Π° Ρ‚Π΅ΠΌΡƒΒ», Β«Π΄ΠΎΠΌ / Π»Π°ΠΌΠΏΠΎΡ‡ΠΊΠΈ / Π»Π°ΠΌΠΏΠΎΡ‡ΠΊΠ°1Β»)
client.subscribe ("Π΄ΠΎΠΌ / Π»Π°ΠΌΠΏΠΎΡ‡ΠΊΠΈ / Π»Π°ΠΌΠΏΠΎΡ‡ΠΊΠ°1")
print ("ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ сообщСния Π² Ρ‚Π΅ΠΌΠ΅", "Π΄ΠΎΠΌ / Π»Π°ΠΌΠΏΠΎΡ‡ΠΊΠΈ / Π»Π°ΠΌΠΏΠΎΡ‡ΠΊΠ°1")
client.publish ("Π΄ΠΎΠΌ / Π»Π°ΠΌΠΏΠΎΡ‡ΠΊΠΈ / Π»Π°ΠΌΠΏΠΎΡ‡ΠΊΠ°1", "Π’Π«ΠšΠ›")
   

Если Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ скрипт, Ρ‚ΠΎ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ:

Π˜Ρ‚Π°ΠΊ, , Π³Π΄Π΅ сообщСниС , ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ я ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»?

Когда ΠΊΠ»ΠΈΠ΅Π½Ρ‚ подписываСтся Π½Π° Ρ‚Π΅ΠΌΡƒ, ΠΎΠ½, ΠΏΠΎ сути, сообщаСт Π±Ρ€ΠΎΠΊΠ΅Ρ€Ρƒ ΠΏΠΎΡΠ»Π°Ρ‚ΡŒ Π΅ΠΌΡƒ сообщСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Π±Ρ€ΠΎΠΊΠ΅Ρ€Ρƒ ΠΏΠΎ этой Ρ‚Π΅ΠΌΠ΅.

ЀактичСски Π±Ρ€ΠΎΠΊΠ΅Ρ€ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅Ρ‚ сообщСния ΠΏΠΎ этой Ρ‚Π΅ΠΌΠ΅.

Когда ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ сообщСния, ΠΎΠ½ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² on_message .

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ эти сообщСния, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² on_message .

Однако Π½Π° Π΄Π°Π½Π½ΠΎΠΌ этапС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ΅ просто ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ ΠΈΡ… ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ сцСнарий.

Для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹Ρ… Π·Π²ΠΎΠ½ΠΊΠΎΠ² Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ:

  1. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π»ΡŽΠ±Ρ‹Ρ… сообщСний
  2. Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ†ΠΈΠΊΠ» для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ сообщСний ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π°.

ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² on_message ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚.

Π’ΠΎΡ‚ моя функция ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π°, которая Π² основном просто ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ сообщСния:

  def on_message (ΠΊΠ»ΠΈΠ΅Π½Ρ‚, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅, сообщСниС):
    print ("сообщСниС ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ", str (message.payload.decode ("utf-8")))
    print ("Ρ‚Π΅ΠΌΠ° сообщСния =", message.topic)
    print ("message qos =", message.qos)
    print ("Ρ„Π»Π°Π³ сохранСния сообщСния =", message.retain)
  

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ сообщСния — это класс сообщСния с элСмСнтами Ρ‚Π΅ΠΌΠ°, qos, полСзная Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ°, сохранСниС .

Π’.Π΅. message.topic даст Π²Π°ΠΌ Ρ‚Π΅ΠΌΡƒ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠΈΡ‚ΡŒ Π½Π°ΡˆΡƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ клиСнтскому ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

  client.on_message = on_message # ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌΡƒ Π²Ρ‹Π·ΠΎΠ²Ρƒ  

, ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ†ΠΈΠΊΠ», ΠΈΠ½Π°Ρ‡Π΅ ΠΌΡ‹ Π½Π΅ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹Π΅ Π²Ρ‹Π·ΠΎΠ²Ρ‹. Π‘Π°ΠΌΡ‹ΠΉ простой способ — ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ loop_start () ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

  client.loop_start () # Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ†ΠΈΠΊΠ»  

Нам Ρ‚Π°ΠΊΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ†ΠΈΠΊΠ» Π² ΠΊΠΎΠ½Ρ†Π΅ сцСнария ( loop_stop () ) ΠΈ, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π°Ρ‚ΡŒ ΡΡ†Π΅Π½Π°Ρ€ΠΈΡŽ врСмя для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π°, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ выполняСм, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ врСмя .sleep (4) функция.

Π’ΠΎΡ‚ ΠΊΠ°ΠΊ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ выглядит наш Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ сцСнария:

 
ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ paho.mqtt.client ΠΊΠ°ΠΊ mqtt # ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ client1
врСмя ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°
############
def on_message (ΠΊΠ»ΠΈΠ΅Π½Ρ‚, Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, сообщСниС):
    print ("сообщСниС ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ", str (message.payload.decode ("utf-8")))
    print ("Ρ‚Π΅ΠΌΠ° сообщСния =", message.topic)
    print ("message qos =", message.qos)
    print ("Ρ„Π»Π°Π³ сохранСния сообщСния =", message.retain)
######################################
broker_address = "192.168.1.184 "
# broker_address = "iot.eclipse.org"
print ("созданиС Π½ΠΎΠ²ΠΎΠ³ΠΎ экзСмпляра")
client = mqtt.Client ("P1") # ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ экзСмпляр
client.on_message = on_message # ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌΡƒ Π²Ρ‹Π·ΠΎΠ²Ρƒ
print ("ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ Π±Ρ€ΠΎΠΊΠ΅Ρ€Ρƒ")
client.connect (broker_address) #connect ΠΊ Π±Ρ€ΠΎΠΊΠ΅Ρ€Ρƒ
client.loop_start () # запуск Ρ†ΠΈΠΊΠ»Π°
print («Подписка Π½Π° Ρ‚Π΅ΠΌΡƒΒ», Β«Π΄ΠΎΠΌ / Π»Π°ΠΌΠΏΠΎΡ‡ΠΊΠΈ / Π»Π°ΠΌΠΏΠΎΡ‡ΠΊΠ°1Β»)
client.subscribe ("Π΄ΠΎΠΌ / Π»Π°ΠΌΠΏΠΎΡ‡ΠΊΠΈ / Π»Π°ΠΌΠΏΠΎΡ‡ΠΊΠ°1")
print ("ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ сообщСния Π² Ρ‚Π΅ΠΌΠ΅", "Π΄ΠΎΠΌ / Π»Π°ΠΌΠΏΠΎΡ‡ΠΊΠΈ / Π»Π°ΠΌΠΏΠΎΡ‡ΠΊΠ°1")
ΠΊΠ»ΠΈΠ΅Π½Ρ‚.ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ ("Π΄ΠΎΠΌ / Π»Π°ΠΌΠΏΠΎΡ‡ΠΊΠΈ / Π»Π°ΠΌΠΏΠΎΡ‡ΠΊΠ°1", "Π’Π«ΠšΠ›")
time.sleep (4) # ΠΆΠ΄Π°Ρ‚ΡŒ
client.loop_stop () # ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ†ΠΈΠΊΠ»
  

Если Π²Ρ‹ запуститС сцСнарий, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: логичСски Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ†ΠΈΠΊΠ» Π΄ΠΎ создания клиСнтского соСдинСния, Π½ΠΎ Ссли Π²Ρ‹ это сдСлаСтС, Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹.

ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ упраТнСния

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ Π·Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ строки:

  • client.on_message = on_message
  • ΠΊΠ»ΠΈΠ΅Π½Ρ‚.loop_start ()
  • client.Loop_stop ()

ΠΈ запуститС сцСнарий, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹.

УстранСниС Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΎΠΊ с использованиСм вСдСния ΠΆΡƒΡ€Π½Π°Π»Π°

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΊΠΈ Π² Π²Π°ΡˆΠΈΡ… прилоТСниях, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ встроСнный ΠΊΠ»ΠΈΠ΅Π½Ρ‚ , Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² .

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ, Π²Ρ‹ создаСтС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° Турналирования. Моя функция ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π½ΠΈΠΆΠ΅, ΠΈ ΠΎΠ½Π° просто ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ сообщСниС ΠΆΡƒΡ€Π½Π°Π»Π°.

 def on_log (ΠΊΠ»ΠΈΠ΅Π½Ρ‚, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅, ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ, buf):
    print ("ΠΆΡƒΡ€Π½Π°Π»:", buf) 

, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠΈΡ‚Π΅ Π΅Π³ΠΎ ΠΊ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌΡƒ Π²Ρ‹Π·ΠΎΠ²Ρƒ:

 ΠΊΠ»ΠΈΠ΅Π½Ρ‚.on_log = on_log 

Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ соСдинСниях, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° сообщСния, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:

Π’Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС Π² ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰ΠΈΡ… ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°Ρ… Π½ΠΈΠΆΠ΅:

Π’ΠΈΠ΄Π΅ΠΎ — ИспользованиС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Paho Python MQTT.

ΠžΠ±Ρ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹

1. БообщСния Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ ΠΈΠ»ΠΈ Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ всС ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹Π΅ сообщСния.
Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹
  1. Π’Ρ‹ Π½Π΅ запустили сСтСвой Ρ†ΠΈΠΊΠ» ΠΈΠ»ΠΈ Π½Π΅ Π²Ρ‹Π·Π²Π°Π»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ loop ().Или Π²Ρ‹ Π½Π΅ зарСгистрировали ΠΈΠ»ΠΈ Π½Π΅ создали Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π°.
  2. Π’Ρ‹ Π½Π΅ подписались Π½Π° Π½ΡƒΠΆΠ½Ρ‹Π΅ Ρ‚Π΅ΠΌΡ‹ ΠΈΠ»ΠΈ подписка Π½Π΅ ΠΏΡ€ΠΎΡˆΠ»Π°.
  3. УстановлСны ограничСния доступа.
2.- Мои сообщСния ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π½Π΅ Π² Ρ‚ΠΎΠΌ порядкС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ я ΠΎΠΆΠΈΠ΄Π°Π»?
Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹
  1. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° — это асинхронныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π² любоС врСмя. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ для хранСния сообщСний ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС. Π― ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ логирования Python.

——–> ΠšΡƒΡ€Ρ MQTT Python для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

БвязанныС руководства ΠΈ рСсурсы

ΠžΡ†Π΅Π½ΠΈΡ‚Π΅? И ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ ΠΌΠ½Π΅ большС

[ВсСго: 93 Π‘Ρ€Π΅Π΄Π½Π΅Π΅: 4,3 / 5]

PPT — Начало Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½Π° Python ΠŸΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΡ PowerPoint, ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ бСсплатно

  • Начало Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½Π° Python β€’ Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС: созданиС ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ β€’ ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ константы β€’ Π’Π²ΠΎΠ΄ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ β€’ ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ β€’ РаспространСнныС ошибки программирования β€’ Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ β€’ Π‘Ρ‚ΠΈΠ»ΡŒ программирования

  • Python β€’ Π­Ρ‚ΠΎ имя языка программирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ программирования Π² этом сСмСстрС: β€’ My ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ написаны Π½Π° Python β€’ Π’Π°ΡˆΠΈ задания Π±ΡƒΠ΄ΡƒΡ‚ написаны Π½Π° Python β€’ НСкоторыС прСимущСства: β€’ БСсплатно β€’ ΠœΠΎΡ‰Π½Ρ‹ΠΉ β€’ Π¨ΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ (Google, NASA, Yahoo, Electronic Arts, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сцСнарии UNIX ΠΈ Ρ‚. Π΄.)) β€’ Назван Π² Ρ‡Π΅ΡΡ‚ΡŒ британской ΠΊΠΎΠΌΠ΅Π΄ΠΈΠΈ Β«Π›Π΅Ρ‚Π°ΡŽΡ‰ΠΈΠΉ Ρ†ΠΈΡ€ΠΊ ΠœΠΎΠ½Ρ‚ΠΈ ΠŸΠ°ΠΉΡ‚ΠΎΠ½Π°Β» β€’ ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π²Π΅Π±-сайт (язык программирования Python, Π° Π½Π΅ ΠΊΠΎΠΌΠ΅Π΄ΠΈΠΉΠ½Ρ‹ΠΉ отряд ΠœΠΎΠ½Ρ‚ΠΈ ΠŸΠ°ΠΉΡ‚ΠΎΠ½Π°): http://www.python.org

  • Π‘ΠΏΡ€Π°Π²ΠΊΠ° Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ β€’ Π‘Π•Π—ΠžΠŸΠΠ‘ΠΠ«Π™ ΠŸΠžΠ”Π₯ΠžΠ” для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π΄ΠΎΠΌΠ° (рСкомСндуСтся). β€’ Π£Π΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Π²Ρ…ΠΎΠ΄ Π² ΡΠ΅Ρ‚ΡŒ Computer Science β€’ ΠŸΡ€ΠΈΠΌΠ΅Ρ€: ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ…ΠΎΠ΄Π°, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ SSH β€’ Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ: http://pages.cpsc.ucalgary.ca/~tamj/231/starting/ssh.html) β€’ Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ: http : //www.ucalgary.ca/it/software/downloads (SSH поставляСтся с MacOS, поэтому Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π½Π΅ трСбуСтся.МоТно Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Fugu ΠΈΠ»ΠΈ Apple Terminal). β€’ (SSH Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ, Π½ΠΎ Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ SSH, Ρ‡Π΅ΠΌ Python). β€’ ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° (Π½Π΅ рСкомСндуСтся): ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Python (ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π²Π΅Ρ€ΡΠΈΡŽ 3.X, Π° Π½Π΅ Π²Π΅Ρ€ΡΠΈΡŽ 2.X) β€’ http://www.python.org/download/ β€’ ВрСбуСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Python Π±Ρ‹Π» настроСн (Β«ΠΏΡƒΡ‚ΡŒΒ») Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅. (Π£ΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Python Π΄ΠΎΠΌΠ° Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ слСдуйтС этим инструкциям, ошибки Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ Π½Π° ваш страх ΠΈ риск!) β€’ http: // docs.python.org/using/windows.html β€’ http://docs.python.org/using/unix.html β€’ http://docs.python.org/using/mac.html

  • Π‘ΠΏΡ€Π°Π²ΠΊΠ° Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ (2 ) β€’ (Если Π²Ρ‹ установили Python Π½Π° свой ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΠΈ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Β«PythonΒ» — этот ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, хотя это «нСэлСгантноС» Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅). β€’ ΠžΡ‚ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Π³Π΄Π΅ Π²Ρ‹ установили Python (ΠΏΠ°ΠΏΠΊΡƒ ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³). β€’ Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΈ запускайтС свои ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Python ΠΈΠ· этого мСста.

  • Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Π°Ρ справка (3) β€’ РазъяснСниС ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ (для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…: вмСстС с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ для ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ) β€’ http: // docs.python.org/py3k/tutorial/index.html β€’ Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ… Python (Π±ΠΎΠ»Π΅Π΅ продвинутая: ΠΏΠΎΠ»Π΅Π·Π½Π° для поиска ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ созданных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Python послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΎΠ±Ρ‰Π΅Π΅ прСдставлСниС ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ°ΠΊΠΎΠ²Π° точная Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΠ° функция, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ для открытия Ρ„Π°ΠΉΠ»Π°). β€’ http://docs.python.org/py3k/library/index.html β€’ ΠžΠ±Ρ‰Π°Ρ справка (Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π΄Π²Π΅ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π²Ρ‹ΡˆΠ΅ справочныС ссылки ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅): β€’ http://docs.python.org/py3k/

  • ΠŸΡ€ΠΎΡ†Π΅ΡΡ создания ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ β€’ ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ β€’ Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° (транслятор) ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ программистом, Π² Π΅Π΄ΠΈΠ½ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½ΡΡ‚ΡŒ (ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ язык / Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄) β€’ Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ β€’ Π§Π΅Π»ΠΎΠ²Π΅ΠΊ (программист) ΠΏΠΈΡˆΠ΅Ρ‚ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° (сСрия инструкций).β€’ ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° написана ΠΈ сохранСна с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ тСкстового Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°. β€’ Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ Π½Π° языкС программирования высокого уровня (ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° чСловСчСский язык). β€’ Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ β€’ Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ машинного языка Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ нСпосрСдствСнно ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ.

  • РасполоТСниС ΠΌΠΎΠΈΡ… ΠΎΠ½Π»Π°ΠΉΠ½-ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² β€’ Поиск ΠΈΡ… Ρ‡Π΅Ρ€Π΅Π· WWW: β€’ URL: http://pages.cpsc.ucalgary.ca/~tamj/231/examples/ β€’ Поиск ΠΈΡ… Π² UNIX ΠΏΡ€ΠΈ Π²Ρ…ΠΎΠ΄Π΅ Π² систСму ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ Π² Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΈΠΈ (ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Π²Ρ…ΠΎΠ΄ Π² систСму с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠ°ΠΊ SSH). β€’ ΠšΠ°Ρ‚Π°Π»ΠΎΠ³: / home / 231 / examples. -directory / sub-link): β€’ http: // страницы.cpsc.ucalgary.ca/~tamj/231/examples/intro β€’ / home / 231 / examples / intro

  • ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Python β€’ Имя ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹: small.py Имя Ρ„Π°ΠΉΠ»Π°: small.py print («ΠΏΡ€ΠΈΠ²Π΅Ρ‚» )

  • Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ: ΠΎΠ΄Π½Π° опСрационная систСма β€’ Π§Ρ‚ΠΎΠ±Ρ‹ пСрСвСсти / Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π²Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Β«Python Β» Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС. β€’ ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ ΠΏΡƒΡ‚Π΅ΠΌ Π²Π²ΠΎΠ΄Π° Β«python small.pyΒ» β€’ Для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, имя Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ называСтся Β«output1.pyΒ», Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ввСсти Β«python output1Β».Ρ€Ρƒ Β». β€’ Если Π²Ρ‹ Π½Π΅ ΡƒΠ»ΠΎΠ²ΠΈΠ»ΠΈ: ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ ΠΈ ΠΏΠΎΠ»Π½ΠΎΠ΅ имя Ρ„Π°ΠΉΠ»Π° (Π΄Π°ΠΆΠ΅ с суффиксом Β«Ρ‚ΠΎΡ‡ΠΊΠ°-ΠΏΠΈΒ»). β€’ ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ Π² Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΈΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… Π½Π°ΡƒΠΊ ΡƒΠΆΠ΅ настроСны, поэтому Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Python. β€’ Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ, Π΄Π°ΠΆΠ΅ Ссли Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎ ΠΈΠ· Π΄ΠΎΠΌΠ° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠ°ΠΊ SSH. β€’ На ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ…, посвящСнных ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅: ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ python, Π½Π°Π±Ρ€Π°Π² Β«python3Β» (Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Β«pythonΒ») β€’ НапримСр, Β«python3 small.pyΒ»

  • ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Python находится Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ мСстС . Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ: ΠΎΠ΄Π½Π° опСрационная систСма (2) β€’ Π Π°Π±ΠΎΡ‚Π° Π½Π° вашСм собствСнном ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅: ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚Π΅ / запускаСтС свою ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ваша командная строка находится Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ мСстС, Ρ‡Ρ‚ΠΎ ΠΈ ваша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Python («нСэлСгантно, Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Β») . β€’ Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ Π²Ρ‹ настроили свой ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Β«Π·Π½Π°Π»Β», Π³Π΄Π΅ установлСн python (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π°Π΄Π°Π² Β«ΠΏΡƒΡ‚ΡŒΒ» Π² Windows). β€’ Π‘ΠΌ. ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ слайд: «… Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ слСдуйтС этим инструкциям, ошибки Π²Ρ‹ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Π΅Ρ‚Π΅ Π½Π° свой страх ΠΈ риск!Β» β€’ ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ Π² Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΈΠΈ CPSC ΡƒΠΆΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ настроСны.

  • ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ строкового Π²Ρ‹Π²ΠΎΠ΄Π° β€’ Π’Ρ‹Π²ΠΎΠ΄ строки: Π½Π° экранС появляСтся сообщСниС, состоящСС ΠΈΠ· сСрии тСкстовых символов. β€’ ВсС, Ρ‡Ρ‚ΠΎ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ (ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΈΠ»ΠΈ Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅), отобраТаСтся Π½Π° экранС. β€’ НС ΡΠΌΠ΅ΡˆΠΈΠ²Π°ΠΉΡ‚Π΅ ΠΈ Π½Π΅ сопоставляйтС Ρ€Π°Π·Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ. β€’ Π€ΠΎΡ€ΠΌΠ°Ρ‚: print («сообщСниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒΒ») Π˜Π›Π˜ print («сообщСниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒΒ») β€’ ΠŸΡ€ΠΈΠΌΠ΅Ρ€: print (Β«fooΒ») print (‘bar’)

  • Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ Π² вашСм Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ ΠΎΡ‚ Pfaffenberger B ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ β€’ Π’Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ мСсто Π² памяти.β€’ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для хранСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ (Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ). β€’ Π’ этом мСстС ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ ΠΎΠ΄Π½Π° Β«Ρ‡Π°ΡΡ‚ΡŒΒ» ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. β€’ ΠŸΠΎΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠΉ части ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ мСсто пСрСзаписываСт ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. β€’ Π’ Π»ΡƒΡ‡ΡˆΠ΅ΠΌ случаС информация Π±ΡƒΠ΄Π΅Ρ‚ доступна, ΠΏΠΎΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°. β€’ НСкоторыС ΠΈΠ· Ρ‚ΠΈΠΏΠΎΠ² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, которая ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚: Ρ†Π΅Π»ΠΎΠ΅ число (Ρ†Π΅Π»ΠΎΠ΅), с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ (Π΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ число), строки (тСкст) Π€ΠΎΡ€ΠΌΠ°Ρ‚: <имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ> = <Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ, которая Π±ΡƒΠ΄Π΅Ρ‚ сохранСна Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ> ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹: β€’ Π¦Π΅Π»ΠΎΠ΅ число (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€,g., num1 = 10) β€’ ΠŸΠ»Π°Π²Π°ΡŽΡ‰Π°Ρ Ρ‚ΠΎΡ‡ΠΊΠ° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, num2 = 10.0) β€’ Π‘Ρ‚Ρ€ΠΎΠΊΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, name = «james»)

  • БоглашСния ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… β€’ ВрСбования Python: β€’ ΠŸΡ€Π°Π²ΠΈΠ»Π°, встроСнныС Π² язык Python для записи ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°. β€’ Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ стСпСни Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π° Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ΅ «чСловСчСского» языка. β€’ Если ΠΏΡ€Π°Π²ΠΈΠ»Π° Π½Π°Ρ€ΡƒΡˆΠ°ΡŽΡ‚ΡΡ, Ρ‚ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½Π° (ΠΈΠ»ΠΈ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π°). β€’ Π’Π°ΠΊΠΎΠΉ язык, ΠΊΠ°ΠΊ Python, ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ частичноС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. β€’ ВрСбования ΠΊ ΡΡ‚ΠΈΠ»ΡŽ: β€’ ΠŸΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΊ созданию Ρ…ΠΎΡ€ΠΎΡˆΠΎ написанной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.β€’ (РСальная аналогия состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ, написанноС Π½Π° чСловСчСском языкС, ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ΅, Π½ΠΎ всС ΠΆΠ΅ Π±Ρ‹Ρ‚ΡŒ написано ΠΏΠ»ΠΎΡ…ΠΎ). β€’ Если ΠΎΠ½ΠΈ Π½Π΅ ΡΠΎΠ±Π»ΡŽΠ΄Π°ΡŽΡ‚ΡΡ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° всС Ρ€Π°Π²Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½Π°, Π½ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ (ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ± этом Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ сСмСстра). ???

  • БоглашСния ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… (2) β€’ ВрСбования ΠΊ ΡΡ‚ΠΈΠ»ΡŽ: имя Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΠΌΡ‹ΠΌ. β€’ ВрСбования ΠΊ ΡΡ‚ΠΈΠ»ΡŽ ΠΈ Python: ΠΈΠΌΠ΅Π½Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с Π±ΡƒΠΊΠ²Ρ‹ (Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ Python) ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с подчСркивания (Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ стиля).β€’ ВрСбования ΠΊ ΡΡ‚ΠΈΠ»ΡŽ: ΠΈΠΌΠ΅Π½Π° Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ ΠΊ рСгистру, Π½ΠΎ ΠΈΠ·Π±Π΅Π³Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ рСгистру. β€’ ВрСбования ΠΊ ΡΡ‚ΠΈΠ»ΡŽ: ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π² Π½ΠΈΠΆΠ½Π΅ΠΌ рСгистрС (см. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡƒΠ½ΠΊΡ‚ для ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ). β€’ ВрСбования ΠΊ ΡΡ‚ΠΈΠ»ΡŽ: для ΠΈΠΌΠ΅Π½ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, состоящих ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… слов, раздСляйтС ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ слово Π·Π°Π³Π»Π°Π²Π½ΠΎΠΉ Π±ΡƒΠΊΠ²ΠΎΠΉ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ слова (Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ слова) ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ. (Допустим любой ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, Π½ΠΎ нСльзя ΡΠΌΠ΅ΡˆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΡΠΎΡ‡Π΅Ρ‚Π°Ρ‚ΡŒ.) β€’ Π’Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ Python: Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом (см. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ слайд).

  • ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова Π² Python1 ΠΈ del from not while as elif global ΠΈΠ»ΠΈ с assert else if pass yield break Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ import print class exec in raise continue finally is return def for lambda try 1 From «Начиная с PythonΒ» Π’ΠΎΠ½ΠΈ Гэддис

  • Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° β€’ ΠŸΡ€ΠΈΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈΠΌΠ΅Π½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Ρ€ΡƒΡˆΠ°ΡŽΡ‚ соглашСния ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ… ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈΠΌ. β€’ (Π’Π°ΠΌ придСтся ΠΏΡ€ΠΎΠΉΡ‚ΠΈ Ρ‡Π΅Ρ€Π΅Π· этот процСсс ΠΏΡ€ΠΈ написании ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, поэтому рСкомСндуСтся ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ 5–10 ΠΌΠΈΠ½ΡƒΡ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅ трСбования).

  • Π˜ΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ константы β€’ Они ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅: ячСйка памяти, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ присвоСно имя. β€’ Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈΡ… содСрТимоС Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ. β€’ БоглашСния ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ… для Π²Ρ‹Π±ΠΎΡ€Π° ΠΈΠΌΠ΅Π½ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊ константам, Π½ΠΎ ΠΈΠΌΠ΅Π½Π° констант Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π’Π•Π Π₯НИМ Π Π•Π“Π˜Π‘Π’Π ΠžΠœ. (Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ нСсколько слов Π·Π½Π°ΠΊΠΎΠΌ подчСркивания). β€’ ΠŸΡ€ΠΈΠΌΠ΅Ρ€ PI = 3.14 β€’ Они ΠΏΠΈΡˆΡƒΡ‚ΡΡ с большой Π±ΡƒΠΊΠ²Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠ³ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΈΡ… ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. β€’ Для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… языков программирования ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΉ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ константы.β€’ Для Ρ‚Π°ΠΊΠΈΡ… языков, ΠΊΠ°ΠΊ Python, программист Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Ρ‚ΡŒ константу Ρ‚Π°ΠΊΠΎΠΉ, какая ΠΎΠ½Π° Π΅ΡΡ‚ΡŒ, ΠΈ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π΅Π΅.

  • ВСрминология: Π˜ΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ константы ΠΏΡ€ΠΎΡ‚ΠΈΠ². Π›ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ β€’ ИмСнованная константа: Π΄Π°Π½ΠΎ явноС имя. TAX_RATE = 0.2 afterTax = Π΄ΠΎΡ…ΠΎΠ΄ — (Π΄ΠΎΡ…ΠΎΠ΄ * TAX_RATE) β€’ Π‘ΡƒΠΊΠ²Π°Π»ΡŒΠ½Π°Ρ / бСзымянная константа / магичСскоС число: Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ имя, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ являСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρƒ вас Π΅ΡΡ‚ΡŒ. afterTax = 100000 — (100000 * 0,2)

  • Π˜ΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ константы Π›ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ ВСрминология: Π˜ΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ константы Vs.Π›ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ β€’ ИмСнованная константа: Π΄Π°Π½ΠΎ явноС имя TAX_RATE = 0.2 afterTax = Π΄ΠΎΡ…ΠΎΠ΄ — (Π΄ΠΎΡ…ΠΎΠ΄ * TAX_RATE) β€’ Π›ΠΈΡ‚Π΅Ρ€Π°Π»ΡŒΠ½Π°Ρ / бСзымянная константа / магичСскоС число: Π±Π΅Π· ΠΈΠΌΠ΅Π½ΠΈ, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ являСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρƒ вас Π΅ΡΡ‚ΡŒ. afterTax = 100000 — (100000 * 0,2)

  • Π—Π°Ρ‡Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ константы β€’ Они ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‚ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ # NO PopulationChange = (0,1758 — 0,1257) * currentPopulation Vs. #YES BIRTH_RATE = 17,58 MORTALITY_RATE = 0,1257 currentPopulation = 1000000 PopulationChange = (BIRTH_RATE — MORTALITY_RATE) * currentPopulation Π’ этом случаС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ — это магичСскиС числа (ΠΏΠΎ возмоТности ΠΈΠ·Π±Π΅Π³Π°ΠΉΡ‚Π΅!) 1 ΠœΠ°Π³ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ числа: Β«ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½Ρ‹ ΠΈΠ· Π½ΠΈΠΎΡ‚ΠΊΡƒΠ΄Π°Β» 2.54 3,14 300,000

  • Π—Π°Ρ‡Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ константы (2) 2) ΠžΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ обслуТиваниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ β€’ Если Π½Π° константу ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ нСсколько Ρ€Π°Π· Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ значСния константы ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ Π΅Π΅ Π½Π° протяТСнии всСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ . β€’ ИспользованиС ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… констант считаСтся Β«Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌΒ» стилСм ΠΏΡ€ΠΈ написании ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

  • НазначСниС ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… констант (3) BIRTH_RATE = 0,1758 MORTALITY_RATE = 0,1257 PopulationChange = 0 currentPopulation = 1000000 PopulationChange = (BIRTH_RATE — MORTALITY_RATE) * print currentPopulation if (PopulationChange: «ΠšΠΎΡΡ„Ρ„ΠΈΡ†ΠΈΠ΅Π½Ρ‚ роТдаСмости> 0) «, BIRTH_RATE,» Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ смСртности: «, MORTALITY_RATE,» ИзмСнСниС насСлСния: «, PopulationChange elif (PopulationChange <0): print" УмСньшСниС "print" ΠšΠΎΡΡ„Ρ„ΠΈΡ†ΠΈΠ΅Π½Ρ‚ роТдаСмости: ", BIRTH_RATE," Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ смСртности: ", MORTALITY_RATE," ИзмСнСниС числСнности насСлСния : ", populationChange else: print" Π‘Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ "print" Π ΠΎΠΆΠ΄Π°Π΅ΠΌΠΎΡΡ‚ΡŒ: ", BIRTH_RATE," Π‘ΠΌΠ΅Ρ€Ρ‚Π½ΠΎΡΡ‚ΡŒ: ", MORTALITY_RATE," Population change: ", PopulationChange

  • Одно ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ постоянных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ каТдая ссылка Π½Π° эту константу НазначСниС ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… констант (3) BIRTH_RATE = 0.8 MORTALITY_RATE = 0,1257 PopulationChange = 0 currentPopulation = 1000000 PopulationChange = (BIRTH_RATE — MORTALITY_RATE) * currentPopulation if (PopulationChange> 0): print Β«Π£Π²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒΒ» print Β«ΠšΠΎΡΡ„Ρ„ΠΈΡ†ΠΈΠ΅Π½Ρ‚ роТдаСмости:Β», BIRTH_RATE, Β«Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ смСртности:Β», MORTALITY_RATE, Β«MORTALITY_RATEΒ» : «, PopulationChange elif (PopulationChange <0): print" Π£ΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ "print" Π ΠΎΠΆΠ΄Π°Π΅ΠΌΠΎΡΡ‚ΡŒ: ", BIRTH_RATE," Π‘ΠΌΠ΅Ρ€Ρ‚Π½ΠΎΡΡ‚ΡŒ: ", MORTALITY_RATE," Population change: ", populationChange else: print" Π‘Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ "print" Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ роТдаСмости : ", BIRTH_RATE," Mortality rate: ", MORTALITY_RATE," Population change: ", PopulationChange

  • Одно ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ константы измСняСт ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ссылку Π½Π° эту константу. НазначСниС ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… констант (4) BIRTH_RATE = 0 .1758 MORTALITY_RATE = 0,01 PopulationChange = 0 currentPopulation = 1000000 PopulationChange = (BIRTH_RATE — MORTALITY_RATE) * currentPopulation if (PopulationChange> 0): print Β«Π£Π²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒΒ» print Β«ΠšΠΎΡΡ„Ρ„ΠΈΡ†ΠΈΠ΅Π½Ρ‚ роТдаСмости:Β», BIRTH_RATE, Β«Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ смСртности:Β», MORTALITY_RATE, Β«MORTALITY_RATEΒ» : «, PopulationChange elif (PopulationChange <0): print" Π£ΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ "print" Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ роТдаСмости: ", BIRTH_RATE," Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ смСртности: ", MORTALITY_RATE," Population change: ", populationChange else: print" Π‘Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ "print" Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ роТдаСмости : ", BIRTH_RATE," Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ смСртности: ", MORTALITY_RATE," ИзмСнСниС числСнности насСлСния: ", PopulationChange

  • Когда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡƒΡŽ константу? β€’ (ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ): Ссли Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ константС ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅, ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅, Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰Π΅Π΅ пояснСний имя, Ρ‚ΠΎ Π²Π°ΠΌ, вСроятно, слСдуСт это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.β€’ ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1 (Π»Π΅Π³ΠΊΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π°Π·Π²Π°Π½ΠΈΠ΅, Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰Π΅Π΅ пояснСний) INCH_CENTIMETER_RATIO = 2,54 рост = рост * INCH_CENTIMETER_RATIO β€’ ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2 (ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π°Π·Π²Π°Π½ΠΈΠ΅, Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰Π΅Π΅ пояснСний, Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ) Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΊΠ°Π»ΠΎΡ€ΠΈΠΈ = (10 x вСс) + (6,25 x рост) — [(5 x возраст ) — 161]

  • Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° β€’ ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±Ρ‹Π»ΠΎ Π±Ρ‹ цСлСсообразно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ константы (Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π»Π΅Π³ΠΊΠΎ). β€’ ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΡ‹ бСзымянныС константы (ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ слоТнСС). β€’ ΠŸΠΎΠΈΡ‰ΠΈΡ‚Π΅ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅, Ссли Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ.

  • Π’Ρ‹Π²ΠΎΠ΄: ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ содСрТимого ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ констант Π€ΠΎΡ€ΠΌΠ°Ρ‚: print (<имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ>) print (<имя константы>) ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Имя ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹: output1.py aNum = 10 A_CONSTANT = 10 print (aNum) print (A_CONSTANT)

  • Запятая сообщаСт транслятору, Ρ‡Ρ‚ΠΎ строка ΠΈ содСрТимоС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΎΠ΄Π½ΠΎΠΉ строкС. Π‘ΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ β€’ Π‘ΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄: ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ строкового Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈ содСрТимого ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… (ΠΈΠ»ΠΈ констант) для ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ отобраТСния.β€’ Π€ΠΎΡ€ΠΌΠ°Ρ‚: print («строка», <пСрСмСнная ΠΈΠ»ΠΈ константа>, «строка», <пСрСмСнная ΠΈΠ»ΠΈ константа> ΠΈ Ρ‚. Π”.) β€’ ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹: Имя ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹: output2.py myInteger = 10 myReal = 10.5 myString = «hello» print (» MyInteger: «, myInteger) print (» MyReal: «, myReal) print (» MyString: «, myString)

  • Π―Ρ€Π»Ρ‹ΠΊ ΠΈ содСрТимоС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² Ρ€Π°Π·Π½Ρ‹Ρ… строках Π―Ρ€Π»Ρ‹ΠΊΠΈ ΠΈ содСрТимоС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² ΠΎΠ΄Π½ΠΎΠΉ строкС Π’Ρ‹Π²ΠΎΠ΄: ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ β€’ Иногда Python автоматичСски добавляСт Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ строку β€’ Имя ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°: output3.py year = 1997 print («year =») print (year) print («year =», year)

  • АрифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹

  • ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°: свСрху Π²Π½ΠΈΠ· Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π° Если Π΅ΡΡ‚ΡŒ нСсколько ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, находящихся Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅, ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ ΠΈΠ΄Π΅Ρ‚ слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ. ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ Ρ€Π°Π±ΠΎΡ‚Ρ‹

  • ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ ΡΡ‚ΠΈΠ»ΡŒ β€’ Π”Π°ΠΆΠ΅ для языков, Π³Π΄Π΅ Π΅ΡΡ‚ΡŒ Ρ‡Π΅Ρ‚ΠΊΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Java, Python), считаСтся Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ стилСм явно ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ свои ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.x = (a * b) + (c / d) β€’ Π­Ρ‚ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ слоТных Ρ„ΠΎΡ€ΠΌΡƒΠ», Π½ΠΎ ΠΈ являСтся Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡ΠΊΠΎΠΉ для языков, Π³Π΄Π΅ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Π½Π΅ всСгда ясСн (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, C ++, C).

  • Π’Π²ΠΎΠ΄ β€’ ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰Π°Ρ ΡΡ‚Ρ€ΠΎΠΊΠΎΠ²ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. β€’ Π‘Ρ‚Ρ€ΠΎΠΊΠΈ нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для вычислСний (информация ΠΎ числовом Π²Π²ΠΎΠ΄Π΅ Π±ΡƒΠ΄Π΅Ρ‚ прСдоставлСна ​​в блиТайшСС врСмя). β€’ Π€ΠΎΡ€ΠΌΠ°Ρ‚: <имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ> = input () Π˜Π›Π˜ <имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ> = input (Β«<ΠŸΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅>Β») β€’ ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Имя ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹: input1.py print («ΠšΠ°ΠΊ вас Π·ΠΎΠ²ΡƒΡ‚:») name = input () OR name = input («ΠšΠ°ΠΊ вас Π·ΠΎΠ²ΡƒΡ‚:»)

  • on off OR β€’ Π‘Π°ΠΉΡ‚ β€’ 8 Π±ΠΈΡ‚ ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅: Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ β€’ На ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ вся информация хранится Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ (2 состояния) β€’ ΠŸΡ€ΠΈΠΌΠ΅Ρ€: ΠžΠ—Π£ / ΠΏΠ°ΠΌΡΡ‚ΡŒ Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² Π²ΠΈΠ΄Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π΄Π²ΡƒΡ…ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΉ Π‘ΠΈΡ‚

  • ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅: Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ (2) β€’ Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Π° Π² Π΄Π²ΠΎΠΈΡ‡Π½ΡƒΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ хранится Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅. ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ сохранСно Π² ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ ΠΏΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ 13

  • ΠŸΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ число Π¦ΠΈΡ„Ρ€Ρ‹, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ числа ΠžΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ число Π Π°Π·ΠΌΠ΅Ρ€ числа, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС = 13 ΠŸΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ число Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ цСлочислСнной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ β€’ 1 Π±ΠΈΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для прСдставлСния Π·Π½Π°ΠΊΠ° , ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для хранСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° числа β€’ Π—Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Π±ΠΈΡ‚: 1 / Π²ΠΊΠ». = ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ, 0 / Π²Ρ‹ΠΊΠ». = ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ β€’ Π€ΠΎΡ€ΠΌΠ°Ρ‚: β€’ ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€

  • ΠœΠ°Π½Ρ‚ΠΈΡΡΠ° Π—Π½Π°ΠΊ экспонСнты НСсколько Π±ΠΈΡ‚ΠΎΠ² НСсколько Π±ΠΈΡ‚ΠΎΠ² 1 Π±ΠΈΡ‚ Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ вСщСствСнного числа Числа Π² Ρ„ΠΎΡ€ΠΌΠ΅ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой β€’ ΠœΠ°Π½Ρ‚ΠΈΡΡΠ°: Ρ†ΠΈΡ„Ρ€Ρ‹ сохраняСмого числа β€’ ЭкспонСнта: Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ количСство разрядов, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ дСсятичная Ρ‚ΠΎΡ‡ΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ («с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉΒ») ΠΏΡ€ΠΈ сохранСнии Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ числа ΠΊΠ°ΠΊ значСния с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой.β€’ ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ с 5 Ρ†ΠΈΡ„Ρ€Π°ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ для прСдставлСния мантиссы: β€’ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π•Π΄ΠΈΠ½ΠΈΡ†Π°: 123,45 прСдставлСна ​​как 12345 * 10-2 β€’ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Π”Π²Π°: 0,12 прСдставлСно ΠΊΠ°ΠΊ 12000 * 10-5 β€’ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Π’Ρ€ΠΈ: 123456 прСдставляСтся ΠΊΠ°ΠΊ 12345 * 101 β€’ ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅: использованиС чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΠΎΡ‚Π΅Ρ€Π΅ точности (число с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой являСтся ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ значСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ).

  • ΠžΠ±Ρ‹Ρ‡Π½ΠΎ символы ΠΊΠΎΠ΄ΠΈΡ€ΡƒΡŽΡ‚ΡΡ с использованиСм ASCII ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ символ отобраТаСтся Π½Π° числовоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ‘A’ = 65, ‘B’ = 66, ‘a’ = 97, ‘2’ = 50 Π­Ρ‚ΠΈ числовыС значСния ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ с использованиСм Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ символьной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ

  • Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ: ниТняя строка β€’ ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π²Π°ΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ хранятся ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ? β€’ НСкоторыС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠ°ΠΌ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ привСсти ΠΊ ошибкам ΠΈΠ»ΠΈ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ‚ΠΈΠΏΠ°ΠΌ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.β€’ ΠŸΡ€ΠΈΠΌΠ΅Ρ€ num = input (Β«Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число») numHalved = num / 2

  • ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ β€’ ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΠΎΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ: Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Ρ…ΠΎΡ‚Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ числовая информация ΡΠΎΡ…Ρ€Π°Π½ΡΠ»Π°ΡΡŒ Π² Π²ΠΈΠ΄Π΅ строки (для возмоТностСй форматирования) Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π²Π°ΠΌ Π½ΡƒΠΆΠ½Π° Ρ‚Π° ΠΆΠ΅ информация Π² числовой Ρ„ΠΎΡ€ΠΌΠ΅ (для выполнСния расчСтов). β€’ НСкоторыС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ прСобразования, доступныС Π² Python: Π€ΠΎΡ€ΠΌΠ°Ρ‚: int (<Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для прСобразования>) float (<Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для прСобразования>) str (<Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для прСобразования>) ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹: Имя ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹: convert1.py x = 10.9 y = int (x) print (x, y)

  • ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ (2) ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹: Имя ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹: convert2.py x = ‘100’ y = ‘-10.5’ print (x + y) print (int (x) + float (y)) (ЧисловоС Π² строку: convert3.py) aNum = 123 aString = str (aNum) aNum = aNum + aNum aString = aString + aString print (aNum) print (aString)

  • «Возраст» относится ΠΊ строкС, Π° Π½Π΅ ΠΊ числу. β€’ Β«*Β» Π½Π΅ являСтся матСматичСским ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ β€’ «Возраст» ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ Π² Ρ†Π΅Π»ΠΎΠ΅ число.β€’ Π’Π΅ΠΏΠ΅Ρ€ΡŒ Β«*Β» ΡƒΠΌΠ½ΠΎΠΆΠ°Π΅Ρ‚ числовоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ: ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ числового Π²Π²ΠΎΠ΄Π° β€’ ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ функция Β«inputΒ» Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΡ‚Ρ€ΠΎΠΊΠΎΠ²ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π΅Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ‚ΠΈΠΏ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости. β€’ ΠŸΡ€ΠΈΠΌΠ΅Ρ€ НазваниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹: convert4.py # ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ°! HUMAN_CAT_AGE_RATIO = 7 age = input («Π‘колько Π²Π°ΠΌ Π»Π΅Ρ‚ Π² Π³ΠΎΠ΄Π°Ρ…:») catAge = age * HUMAN_CAT_AGE_RATIO print («Π’озраст Π² Π³ΠΎΠ΄Π°Ρ… кошки:», catAge) # ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ€Π΅ΡˆΠ΅Π½Π°! HUMAN_CAT_AGE_RATIO = 7 age = int (input («Π’Π°Ρˆ возраст Π² Π³ΠΎΠ΄Π°Ρ…:»)) catAge = age * HUMAN_CAT_AGE_RATIO print («Π’озраст Π² Π³ΠΎΠ΄Π°Ρ… кошки:», catAge)

  • ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, хранящСйся Π² A ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ β€’ Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ созданной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Python ‘type’ β€’ ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹: type.py myInteger = 10 myString = «foo!» print (type (myInteger)) print (type (10.5)) print (type (myString))

  • Π’Ρ‹Π²ΠΎΠ΄: Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ β€’ Π’Ρ‹Π²ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ Π² Python с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π΅ΠΉ. β€’ Π€ΠΎΡ€ΠΌΠ°Ρ‚: print («% <Ρ‚ΠΈΠΏ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ для отобраТСния / ΠΊΠΎΠ΄>«% <источник ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ для отобраТСния>) β€’ ΠŸΡ€ΠΈΠΌΠ΅Ρ€: β€’ Имя ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹: formatting1.py num = 123 st = «cpsc 231» print («num =% d «% num) print (» course:% s «% st) num = 12,5 print («% f% d «% (num, num))

  • Π’ΠΈΠΏΡ‹ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π°

  • НСкоторыС эффСкты форматирования с использованиСм дСскрипторных ΠΊΠΎΠ΄ΠΎΠ² β€’ Π€ΠΎΡ€ΠΌΠ°Ρ‚:% 1.<Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ> 2 <Ρ‚ΠΈΠΏ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ> β€’ ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹: β€’ Имя ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹: formatting2.py num = 12,55 print («% 5.1f»% num) print («% .1f»% num) num = 12 st = «num = «print («% s% d «% (st, num)) print («% 5s% 5s% 1s «% (» hi «,» hihi «,» there «)) 1 ΠŸΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ( Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΠΏΡ€Π°Π²ΠΎΠΌΡƒ ΠΊΡ€Π°ΡŽ), Π½Π΅Π³Π°Ρ‚ΠΈΠ²Ρ‹ добавят ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ (Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ Π»Π΅Π²ΠΎΠΌΡƒ ΠΊΡ€Π°ΡŽ). Если ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, для ΡˆΠΈΡ€ΠΈΠ½Ρ‹ поля Π±ΡƒΠ΄Π΅Ρ‚ установлСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, достаточно большоС для отобраТСния Π²Ρ‹Π²ΠΎΠ΄Π°. 2 Волько для прСдставлСний с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой.

  • Из Python Programming (2nd Edition) Майкла Доусона Π’Ρ‹Π²ΠΎΠ΄ Π² Ρ‚Ρ€ΠΎΠΉΠ½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ… β€’ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для форматирования Π²Ρ‹Π²ΠΎΠ΄Π° тСкста β€’ Бпособ Π²Π²ΠΎΠ΄Π° тСкста Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π² точности соотвСтствуСт Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ тСкст Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π½Π° экранС.β€’ Имя ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹: formatting3.py

  • Π‘ΠΈΠΌΠ²ΠΎΠ» ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ косой Ρ‡Π΅Ρ€Ρ‚Ρ‹, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΉ Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ , Π½ΠΎ вмСсто этого ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ форматирования (escape) Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Π·Π° косой Ρ‡Π΅Ρ€Ρ‚ΠΎΠΉ: Escape Codes

  • Escape Codes (2) β€’ Имя ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹: formatting4.

  • Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

    Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *