Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Простой Python просто с нуля
.pdf
ɂ ɟɳɺ. ȼ ɤɨɞɟ ɩɪɢɫɭɬɫɬɜɭɟɬ ɨɬɥɚɞɨɱɧɵɣ ɜɵɜɨɞ ɧɚ ɷɤɪɚɧ. Ɉɧ ɞɚɺɬ ɬɚɤɢɟ
ɪɟɡɭɥɶɬɚɬɵ:
4
[18, 15, 95, 51]
Ȼɵɫɬɪɨ ɫɨɫɱɢɬɚɣɬɟ ɜ ɭɦɟ, ɤɚɤɢɦ ɛɭɞɟɬ ɪɚɡɦɟɪ ɮɚɣɥɚ. (ɉɪɚɜɢɥɶɧɵɣ ɨɬɜɟɬ –
28). Ɂɚɣɦɺɦɫɹ ɱɬɟɧɢɟɦ.
f = open( 'd:/rand.bin', 'rb')
Ok = checkSign(f)
L = []
if Ok:
data = f.read(4)
howMany = struct.unpack( '<i4', data)
for i in xrange(0,howMany[0]):
data = f.read(4)
r = struct.unpack( '<i4', data)
L.append(r[0])
else:
print 'Bad. very bad.'
f.close()
Ɂɞɟɫɶ ɩɪɹɦɨ-ɬɚɤɢ ɧɚɩɪɚɲɢɜɚɟɬɫɹ ɪɹɞ ɢɧɬɟɪɟɫɧɵɯ ɤɨɦɦɟɧɬɚɪɢɟɜ. Ɉɛɪɚɬɢɬɟ
ɜɧɢɦɚɧɢɟ, ɱɬɨ ɩɪɢɫɜɨɟɧɢɟ ɩɟɪɟɦɟɧɧɨɣ ɫɩɢɫɤɚ ɩɭɫɬɨɝɨ ɡɧɚɱɟɧɢɹ
ɩɪɨɢɫɯɨɞɢɬ
ɩɟɪɟɞ ɜɯɨɞɨɦ ɜ ɭɫɥɨɜɧɵɣ ɨɩɟɪɚɬɨɪ. ɉɪɢɱɢɧɚ ɩɨɧɹɬɧɚ – ɞɚɠɟ
ɟɫɥɢ ɫɢɝɧɚɬɭɪɚ ɨɤɚɠɟɬɫɹ ɧɟɩɪɚɜɢɥɶɧɨɣ, ɫɩɢɫɨɤ ɞɨɥɠɟɧ ɢɦɟɟɬ ɯɨɬɶ
ɤɚɤɨɟ-ɬɨ, ɧɨ ɡɧɚɱɟɧɢɟ. ȼɬɨɪɨɟ ɡɚɦɟɱɚɧɢɟ ɦɟɧɟɟ ɨɩɬɢɦɢɫɬɢɱɧɨ – ɜɚɦ
ɧɚɞɨɟɥɨ ɜɟɱɧɨ ɩɢɫɚɬɶ ɧɭɥɟɜɨɣ ɢɧɞɟɤɫ ɩɨɫɥɟ ɱɬɟɧɢɹ ɢɡ ɮɚɣɥɚ ɜ
ɩɟɪɟɦɟɧɧɭɸ? ɉɟɪɟɦɟɧɧɚɹ ɷɬɚ ɧɟɢɡɛɟɠɧɨ ɨɤɚɡɵɜɚɟɬɫɹ ɤɨɪɬɟɠɟɦ. Ɉɬɜɟɬɚ ɧɟ
ɬɪɟɛɭɟɬɫɹ.
Ɉɛɨɛɳɚɟɦ ɢ ɫɢɫɬɟɦɚɬɢɡɢɪɭɟɦ
Ɍɟɩɟɪɶ ɫɭɦɦɢɪɭɟɦ, ɚ ɬɨɱɧɟɟ ɞɨɩɨɥɧɹɟɦ. ȿɫɬɶ ɟɳɺ ɧɟɤɨɬɨɪɵɟ, ɧɟ
ɡɚɬɪɨɧɭɬɵɟ ɧɚɦɢ ɬɢɩɵ ɞɚɧɧɵɯ. ɐɟɥɵɟ, ɩɥɚɜɚɸɳɢɟ ɢ ɫɬɪɨɤɢ – ɷɬɨ
ɩɪɚɤɬɢɱɟɫɤɢ ɜɫɺ, ɧɨ ɟɫɬɶ ɢ ɟɳɺ ɤɨɟ-ɱɬɨ. ɋɧɨɜɚ ɩɪɟɞɭɩɪɟɠɞɚɸ – ɟɫɥɢ ɜɚɦ
ɢɧɬɟɪɟɫɟɧ ɉɢɬɨɧ ɢ ɬɨɥɶɤɨ ɉɢɬɨɧ ɢ ɫɞɚɱɚ ȿȽɗ ɫ ɟɝɨ ɩɪɢɦɟɧɟɧɢɟɦ – ɬɨ ɷɬɨɬ
ɪɚɡɞɟɥ ɧɟ ɞɥɹ ɜɚɫ.
201

ɇɚɱɚɬɶ ɫ ɬɨɝɨ, ɱɬɨ ɰɟɥɵɟ ɩɟɪɟɦɟɧɧɵɟ ɦɨɠɧɨ ɡɚɩɢɫɵɜɚɬɶ ɜ ɮɚɣɥ ɫ ɪɚɡɧɵɦ
ɪɚɡɦɟɪɨɦ – ɜ ɛɚɣɬɚɯ. Ɇɵ ɩɢɫɚɥɢ ɫ ɪɚɡɦɟɪɨɦ ɱɟɬɵɪɟ. ɏɨɪɨɲɨ ɷɬɨ ɢɥɢ
ɩɥɨɯɨ? ȿɫɬɶ ɬɚɤɚɹ ɮɢɥɨɫɨɮɫɤɚɹ ɧɚɭɤɚ – ɞɢɚɥɟɤɬɢɤɚ. Ɉɧɚ ɭɱɢɬ ɧɚɫ, ɜ
ɱɚɫɬɧɨɫɬɢ, ɱɬɨ ɢɫɬɢɧɚ ɤɨɧɤɪɟɬɧɚ. ȼ ɧɚɲɟɦ ɫɥɭɱɚɟ ɷɬɨ ɨɡɧɚɱɚɟɬ, ɱɬɨ ɟɫɥɢ
ɪɚɡɦɟɪ ɮɚɣɥɚ ɞɥɹ ɧɚɫ ɜɚɠɟɧ, ɬɨ,
ɨɱɟɧɶ ɛɨɥɶɲɢɟ ɰɟɥɵɟ ɱɢɫɥɚ, ɬɨ,
ɜɨɡɦɨɠɧɨ, ɱɟɬɵɪɟ ɦɧɨɝɨ. Ⱥ ɟɫɥɢ ɭ ɧɚɫ ɧɭ
ɜɨɡɦɨɠɧɨ, ɷɬɨ ɦɚɥɨ. ɉɨɹɫɧɹɸ.
ɐɟɥɵɟ ɱɢɫɥɚ ɦɨɠɧɨ ɡɚɩɢɫɵɜɚɬɶ ɜ ɮɚɣɥ ɫ ɫɚɦɨɣ ɪɚɡɧɨɣ ɞɥɢɧɨɣ.
Ɂɚɩɢɫɚɧɧɵɯ ɱɢɫɟɥ ɦɨɠɟɬ ɛɵɬɶ ɨɱɟɧɶ ɦɧɨɝɨ, ɧɚɩɪɢɦɟɪ ɦɢɥɥɢɨɧɵ. ɗɬɨ
ɫɨɜɟɪɲɟɧɧɨ ɨɛɵɱɧɨ. Ɋɚɡɦɟɪ ɰɟɥɨɝɨ ɱɢɫɥɚ ɩɪɢ ɡɚɩɢɫɢ ɦɨɠɟɬ ɦɟɧɹɬɶɫɹ ɨɬ
ɞɜɭɯ ɞɨ ɜɨɫɶɦɢ ɛɚɣɬ. ɑɟɦ ɦɟɧɶɲɟ ɪɚɡɦɟɪ, ɬɟɦ ɛɨɥɶɲɟ ɱɢɫɟɥ ɜ ɮɚɣɥ
ɩɨɦɟɫɬɢɬɫɹ. Ɉɞɧɚɤɨ ɜ ɧɚɢɦɟɧɶɲɟɟ ɞɜɭɯɛɚɣɬɨɜɨɟ ɱɢɫɥɨ ɦɵ ɦɨɠɟɦ
ɩɨɦɟɫɬɢɬɶ ɬɨɥɶɤɨ ɡɧɚɱɟɧɢɟ ɜ ɞɢɚɩɚɡɨɧɟ -32768..32767. ɗɬɨɝɨ, ɤɚɤ ɩɪɚɜɢɥɨ,
ɨɤɚɡɵɜɚɟɬɫɹ ɧɟɞɨɫɬɚɬɨɱɧɨ. ȼ ɜɨɫɶɦɢɛɚɣɬɨɜɨɟ ɰɟɥɨɟ ɩɨɦɟɳɚɟɬɫɹ ɩɨɱɬɢ ɜɫɺ,
ɇɨ ɪɚɡɦɟɪ ɮɚɣɥɚ ɪɚɫɬɺɬ ɜ ɱɟɬɵɪɟ ɪɚɡɚ. ȼɵɛɢɪɚɣɬɟ, ɱɬɨ ɞɥɹ ɜɚɫ ɜɚɠɧɟɟ. ɉɪɢ
ɫɨɜɪɟɦɟɧɧɨɦ ɪɚɡɜɢɬɢɢ ɬɟɯɧɢɱɟɫɤɢɯ ɫɪɟɞɫɬɜ ɪɚɡɦɟɪ ɮɚɣɥɚ ɧɟ ɨɱɟɧɶ ɜɚɠɟɧ.
Ɉɞɧɚɤɨ ɱɚɫɬɨ ɨɱɟɧɶ ɜɚɠɧɚ ɫɤɨɪɨɫɬɶ ɩɟɪɟɞɚɱɢ ɞɚɧɧɵɯ ɩɨ ɤɚɧɚɥɚɦ ɫɜɹɡɢ ɢ
ɩɪɢɯɨɞɢɬɫɹ ɜɵɛɢɪɚɬɶ ɷɬɢ ɫɚɦɵɟ ɧɟɫɱɚɫɬɧɵɟ ɞɜɚ ɛɚɣɬɚ, ɟɫɥɢ ɞɢɚɩɚɡɨɧ
ɞɚɧɧɵɯ ɩɨɦɟɳɚɟɬɫɹ ɜ ɧɢɯ. Ⱥ ɟɫɥɢ ɤ ɧɚɦ ɩɨ ɤɚɧɚɥɭ ɩɪɢɲɥɢ ɬɨɥɶɤɨ ɞɜɚ
ɛɚɣɬɚ, ɡɚɱɟɦ ɩɢɫɚɬɶ ɜ ɮɚɣɥ ɛɨɥɶɲɟ? ɂɬɚɤ, ɤɚɤ ɠɟ ɩɢɲɭɬɫɹ ɷɬɢ ɰɟɥɵɟ ɜ
ɞɪɭɝɢɯ ɮɨɪɦɚɬɚɯ? ɉɪɨɳɟ ɩɨɤɚɡɚɬɶ ɧɚ ɩɪɢɦɟɪɚɯ.
import struct
f = open( 'd:/something strange.bin', 'wb')
something = 128
# ɰɟɥɨɟ - ɞɜɚ ɛɚɣɬɚ
data = struct.pack('<h2',something)
f.write(data)
# ɰɟɥɨɟ - ɱɟɬɵɪɟ ɛɚɣɬɚ
data = struct.pack('<i4',something)
f.write(data)
# ɰɟɥɨɟ - ɜɨɫɟɦɶ ɛɚɣɬ
data = struct.pack('<q8',something)
f.write(data)
f.close()
202

Ʉɚɤ ɷɬɨ ɜɫɺ ɩɪɨɱɢɬɚɬɶ, ɹ ɭɤɚɡɵɜɚɬɶ ɧɟ ɛɭɞɭ, ɧɟ ɫɨɦɧɟɜɚɸɫɶ, ɜɵ ɫɩɪɚɜɢɬɟɫɶ
ɨɬɥɢɱɧɨ. ɉɨɱɬɢ ɬɨ ɠɟ ɫɚɦɨɟ ɢ ɫ ɩɥɚɜɚɸɳɢɦɢ ɱɢɫɥɚɦɢ, ɬɨɥɶɤɨ ɜɵɛɨɪ ɬɚɦ
ɦɟɧɶɲɟ.
somethingFloat = 123.45
# ɩɥɚɜɚɸɳɟɟ - ɱɟɬɵɪɟ ɛɚɣɬɚ
data = struct.pack( '<f4', somethingFloat)
f.write(data)
# ɩɥɚɜɚɸɳɟɟ - ɜɨɫɟɦɶ ɛɚɣɬ
data = struct.pack( '<d8', somethingFloat)
f.write(data)
Ɂɞɟɫɶ ɩɨ ɫɭɬɢ ɜɵɛɨɪɚ ɧɟɬ – ɜɵɛɢɪɚɣɬɟ ɱɟɬɵɪɟ ɛɚɣɬɚ. ɉɥɚɜɚɸɳɟɟ ɢɡ ɜɨɫɶɦɢ
ɛɚɣɬ ɷɬɨ ɹ ɞɚɠɟ ɢ ɧɟ ɡɧɚɸ, ɝɞɟ ɦɨɠɟɬ ɩɨɧɚɞɨɛɢɬɶɫɹ. ɑɟɬɵɪɟ ɛɚɣɬɚ – ɷɬɨ
ɬɨɱɧɨɫɬɶ ɜ 6-7 ɞɟɫɹɬɢɱɧɵɯ ɱɢɫɟɥ. ȼɨɫɟɦɶ ɛɚɣɬ, ɩɨɧɹɬɧɨ, ɜ ɞɜɚ ɪɚɡɚ ɛɨɥɶɲɟ.
ȿɫɥɢ ɜɵ ɧɟ ɡɚɩɭɫɤɚɟɬɟ ɪɚɤɟɬɵ ɧɚ Ɇɚɪɫ, ɜɚɦ ɨɧɨ ɧɭɠɧɨ?
Ɍɟɩɟɪɶ, ɩɪɨɫɬɨ ɞɥɹ ɩɨɥɧɨɬɵ ɤɚɪɬɢɧɵ, ɡɚɩɢɫɶ ɛɭɥɟɜɫɤɢɯ ɩɟɪɟɦɟɧɧɵɯ.
theSenseOfLife = True
# ɛɭɥɟɜɫɤɨɟ
data = struct.pack( '?1', theSenseOfLife)
f.write(data)
ȼ ɩɟɪɜɨɦ ɩɪɢɛɥɢɠɟɧɢɢ ɷɬɨ ɜɫɺ, ɱɬɨ ɧɚɞɨ ɡɧɚɬɶ ɨ ɛɢɧɚɪɧɵɯ ɮɚɣɥɚɯ. ȿɫɬɶ
ɟɳɺ ɞɪɭɝɢɟ ɮɨɪɦɚɬɵ ɢ ɞɪɭɝɢɟ ɫɩɨɫɨɛɵ ɡɚɩɢɫɢ, ɧɚɩɪɢɦɟɪ ɜɨɡɦɨɠɧɨɫɬɶ
ɨɞɧɨɜɪɟɦɟɧɧɨɣ ɡɚɩɢɫɢ ɛɨɥɶɲɨɝɨ ɤɨɥɢɱɟɫɬɜɚ ɨɞɧɨɬɢɩɧɵɯ ɞɚɧɧɵɯ, ɧɨ ɛɟɡ
ɧɢɯ ɦɨɠɧɨ ɨɛɨɣɬɢɫɶ. ɉɨɤɚ ɦɨɠɧɨ.
203

Ƚɥɚɜɚ ɨɞɢɧɧɚɞɰɚɬɚɹ. Ƚɪɚɮɢɤɚ
ɗɬɨ ɯɨɪɨɲɚɹ, ɞɨɛɪɚɹ ɝɥɚɜɚ. Ɇɵ ɛɭɞɟɦ ɪɢɫɨɜɚɬɶ. ɋɧɚɱɚɥɚ ɦɧɟ ɤɚɡɚɥɨɫɶ, ɱɬɨ
ɝɥɚɜɚ ɷɬɚ ɛɭɞɟɬ ɩɨɱɬɢ ɧɢɤɚɤ ɧɟ ɫɜɹɡɚɧɚ ɫ ɞɪɭɝɢɦɢ. Ɉɤɚɡɚɥɨɫɶ, ɩɨɤɚɡɚɥɨɫɶ.
ɉɪɟɠɞɟ ɱɟɦ ɱɬɨ-ɬɨ ɧɚɪɢɫɨɜɚɬɶ, ɨɱɟɧɶ ɧɟɩɥɨɯɨ ɛɭɞɟɬ ɨɫɜɨɢɬɶ ɟɳɺ ɨɞɢɧ
ɧɟɫɥɨɠɧɵɣ ɦɟɬɨɞ ɪɚɛɨɬɵ ɫ ɮɭɧɤɰɢɹɦɢ. Ʉɨɧɤɪɟɬɧɨ – ɩɟɪɟɞɚɱɚ ɩɚɪɚɦɟɬɪɨɜ
ɩɨ ɢɦɟɧɚɦ. ɑɭɬɶ ɪɚɧɶɲɟ ɹ ɟɝɨ ɭɩɨɦɢɧɚɥ, ɧɨ ɨɛɴɹɜɢɥ, ɱɬɨ ɧɚɦ ɨɧ ɧɟ ɧɭɠɟɧ.
Ȼɵɥ ɧɟɩɪɚɜ.
ɉɨɞɝɨɬɨɜɢɬɟɥɶɧɵɟ ɭɩɪɚɠɧɟɧɢɹ.
ɉɚɪɚɦɟɬɪɵ ɩɨ ɢɦɟɧɚɦ
Ⱥ ɫɧɚɱɚɥɚ ɜɫɩɨɦɧɢɦ ɨ ɩɚɪɚɦɟɬɪɚɯ ɩɨ ɭɦɨɥɱɚɧɢɸ. Ɏɭɧɤɰɢɹ ɜɵɱɢɫɥɟɧɢɹ
ɜɟɫɚ ɰɢɥɢɧɞɪɚ ɩɨ ɟɝɨ ɪɚɞɢɭɫɭ, ɜɵɫɨɬɟ ɢ ɭɞɟɥɶɧɨɦɭ ɜɟɫɭ, ɬɨɥɶɤɨ ɬɟɩɟɪɶ ɩɨ
ɭɦɨɥɱɚɧɢɸ ɛɭɞɭɬ ɡɚɞɚɜɚɬɶɫɹ ɜɫɟ ɩɚɪɚɦɟɬɪɵ:
def weightCyl ( R = 5, h = 100, gamma = 7.85):
result = 3.14158 * R**2 * h * gamma
result = result / 1000
return result
print 'iron', weightCyl( 5,100, 7.85)
print 'iron', weightCyl()
iron 61.6535075
iron 61.6535075
ɗɬɨ ɡɧɚɱɢɬ, ɱɬɨ ɮɭɧɤɰɢɸ ɦɨɠɧɨ ɜɵɡɵɜɚɬɶ ɛɟɡ ɩɚɪɚɦɟɬɪɨɜ ɜɨɨɛɳɟ,
ɪɟɡɭɥɶɬɚɬ ɛɭɞɟɬ ɬɟɦ ɠɟ, ɱɬɨ ɢ ɫ ɩɚɪɚɦɟɬɪɚɦɢ ɩɨ ɭɦɨɥɱɚɧɢɸ. ȼɫɺ ɡɧɚɤɨɦɨ ɢ
ɜɫɺ ɩɨɧɹɬɧɨ.
Ⱥ ɬɟɩɟɪɶ ɜɵɡɨɜ ɩɚɪɚɦɟɬɪɨɜ ɩɨ ɢɦɟɧɚɦ. Ɂɚɝɨɥɨɜɨɤ ɮɭɧɤɰɢɢ ɫɬɚɧɟɬ ɫɨɜɫɟɦ
ɨɛɵɱɧɵɦ, ɞɚɠɟ ɛɟɡ ɩɚɪɚɦɟɬɪɨɜ ɩɨ ɭɦɨɥɱɚɧɢɸ. ɋ ɜɵɡɨɜɨɦ ɮɭɧɤɰɢɢ ɜɫɺ
ɞɨɥɠɧɨ ɛɵɬɶ ɨɱɟɜɢɞɧɨ.
def weightCyl ( R, h, gamma):
result = 3.14158 * R**2 * h * gamma
result = result / 1000
return result
print 'copper', weightCyl( R=5,h=100, gamma = 8.96)
copper 70.371392
204

ɉɟɪɟɞ ɤɚɠɞɵɦ ɡɧɚɱɟɧɢɟɦ ɩɚɪɚɦɟɬɪɚ ɭɤɚɡɚɧɨ ɢɦɹ ɩɚɪɚɦɟɬɪɚ. Ɂɚɱɟɦ ɷɬɨ
ɧɭɠɧɨ ɢ ɤɚɤɢɟ ɞɚɺɬ ɩɪɟɢɦɭɳɟɫɬɜɚ? Ɉɛɵɱɧɨ ɝɨɜɨɪɹɬ – ɬɚɤ ɝɨɪɚɡɞɨ
ɧɚɝɥɹɞɧɟɟ ɢ ɫ ɩɟɪɜɨɝɨ ɜɡɝɥɹɞɚ ɜɫɺ ɩɨɧɹɬɧɨ, ɩɪɢɱɺɦ ɜɫɟɦ. ȼɬɨɪɨɟ
ɩɪɟɢɦɭɳɟɫɬɜɨ, ɩɚɪɚɦɟɬɪɵ ɬɟɩɟɪɶ ɦɨɠɧɨ ɩɢɫɚɬɶ ɜ ɩɪɨɢɡɜɨɥɶɧɨɦ ɩɨɪɹɞɤɟ:
print 'copper', weightCyl( gamma = 8.96, R=5, h=100)
ə ɨɬɤɪɨɸ ɫɟɤɪɟɬ, ɫɚɦɨ ɩɨ ɫɟɛɟ ɷɬɨ ɩɪɚɤɬɢɱɟɫɤɢ ɛɟɫɩɨɥɟɡɧɨ, ɧɨ ɨɱɟɧɶ
ɩɨɥɟɡɧɨ ɜ ɫɨɱɟɬɚɧɢɢ ɫ ɩɚɪɚɦɟɬɪɚɦɢ ɩɨ ɭɦɨɥɱɚɧɢɸ. ɉɪɢ ɢɫɩɨɥɶɡɨɜɚɧɢɢ
ɩɚɪɚɦɟɬɪɨɜ ɩɨ ɭɦɨɥɱɚɧɢɸ ɦɨɠɧɨ ɩɪɨɩɭɫɤɚɬɶ ɢ ɧɟ ɩɢɫɚɬɶ
ɬɨɥɶɤɨ
ɩɨɫɥɟɞɧɢɟ ɩɚɪɚɦɟɬɪɵ, ɜ ɥɸɛɨɦ ɤɨɥɢɱɟɫɬɜɟ. ɇɟɥɶɡɹ ɧɚɩɢɫɚɬɶ ɩɟɪɜɵɣ ɢ
ɬɪɟɬɢɣ, ɚ ɜɬɨɪɨɣ ɩɪɨɩɭɫɬɢɬɶ. Ⱥ ɬɟɩɟɪɶ ɦɨɠɧɨ, ɜɨɬ ɬɚɤɢɦ ɨɛɪɚɡɨɦ. Ɍɨɥɶɤɨ
ɦɵ ɞɨɥɠɧɵ ɢɫɩɨɥɶɡɨɜɚɬɶ ɩɟɪɜɭɸ ɜɟɪɫɢɸ ɮɭɧɤɰɢɢ, ɬɭ, ɱɬɨ ɫɜɟɪɯɭ.
print 'copper', weightCyl( R=7, gamma = 8.96)
Ⱦɥɹ ɱɟɝɨ ɷɬɨ ɧɭɠɧɨ ɢ ɝɞɟ ɷɬɨ ɢɫɩɨɥɶɡɭɟɬɫɹ, ɜɵ ɭɜɢɞɢɬɟ ɩɨɱɬɢ ɧɟɦɟɞɥɟɧɧɨ,
ɤɚɤ ɬɨɥɶɤɨ ɦɵ ɡɚɣɦɺɦɫɹ ɧɟɩɨɫɪɟɞɫɬɜɟɧɧɨ ɪɢɫɨɜɚɧɢɟɦ.
ɇɚɱɢɧɚɟɦ ɪɢɫɨɜɚɬɶ
ɑɬɨɛɵ ɫɨɫɱɢɬɚɬɶ ɫɢɧɭɫ ɫɬɚɧɞɚɪɬɧɨɣ ɮɭɧɤɰɢɟɣ, ɧɚɞɨ ɩɨɞɤɥɸɱɢɬɶ ɦɨɞɭɥɶ
math. ɑɬɨɛɵ ɧɚɪɢɫɨɜɚɬɶ ɯɨɬɶ ɱɬɨ-ɬɨ, ɧɚɞɨ ɩɨɞɤɥɸɱɢɬɶ ɦɨɞɭɥɶ Tkinter. ɇɚ
ɫɚɦɨɦ ɞɟɥɟ ɷɬɨɬ ɦɨɞɭɥɶ ɞɟɥɚɟɬ ɝɨɪɚɡɞɨ ɛɨɥɶɲɟ. Ɉɧ ɨɬɜɟɱɚɟɬ ɡɚ ɪɚɛɨɬɭ ɫ
GUI – Graphic User Interface – Ƚɪɚɮɢɱɟɫɤɢɣ ɂɧɬɟɪɮɟɣɫ ɉɨɥɶɡɨɜɚɬɟɥɹ. Ɍɨ
ɟɫɬɶ ɡɚ ɪɢɫɨɜɚɧɢɟ ɤɧɨɩɨɤ, ɦɟɧɸ, ɮɥɚɠɤɨɜ, ɩɨɥɨɫ ɩɪɨɤɪɭɬɤɢ ɢ
ɦɧɨɝɨɝɨ-ɦɧɨɝɨɝɨ ɞɪɭɝɨɝɨ. ɂ ɧɟ ɬɨɥɶɤɨ ɡɚ ɪɢɫɨɜɚɧɢɟ, ɧɨ ɢ ɡɚ ɬɨ, ɱɬɨɛɵ ɨɧɢ
ɩɪɚɜɢɥɶɧɨ ɪɟɚɝɢɪɨɜɚɥɢ ɧɚ ɫɨɛɵɬɢɹ ɜɧɟɲɧɟɝɨ ɦɢɪɚ. ȿɫɥɢ ɤɥɢɟɧɬ ɬɵɤɚɟɬ
ɦɵɲɤɨɣ ɜ ɤɧɨɩɤɭ, ɢ ɱɬɨ-ɬɨ ɞɨɥɠɧɨ ɩɪɨɢɡɨɣɬɢ, ɬɨ ɡɚ ɷɬɨ ɬɨɠɟ ɨɬɜɟɱɚɟɬ
ɦɨɞɭɥɶ
Tkinter. ɇɨ ɩɨɤɚ ɤɧɨɩɨɤ ɧɟ ɛɭɞɟɬ, ɦɵ ɛɭɞɟɦ ɩɪɨɫɬɨ ɪɢɫɨɜɚɬɶ –
ɩɚɥɤɚ, ɩɚɥɤɚ, ɨɝɭɪɟɱɢɤ, ɩɨɥɭɱɢɥɫɹ ɱɟɥɨɜɟɱɟɤ.
Ʉɪɨɦɟ ɢɦɩɨɪɬɚ ɦɨɞɭɥɹ, ɧɟɨɛɯɨɞɢɦɨ ɞɨɛɚɜɢɬɶ ɟɳɺ ɧɟɫɤɨɥɶɤɨ ɧɟ ɜɩɨɥɧɟ
ɩɨɧɹɬɧɵɯ ɫ ɩɟɪɜɨɝɨ ɜɡɝɥɹɞɚ ɫɬɪɨɤ ɤɨɞɚ:
from Tkinter import *
c = Canvas( width = 400, height = 100, bg = 'white')
c.pack( expand = YES, fill = BOTH )
#
# ɚ ɡɞɟɫɶ ɦɵ ɛɭɞɟɦ ɪɢɫɨɜɚɬɶ
#
205

mainloop()
ɗɬɭ ɩɪɨɝɪɚɦɦɭ ɭɠɟ ɦɨɠɧɨ ɡɚɩɭɫɬɢɬɶ ɧɚ ɢɫɩɨɥɧɟɧɢɟ, ɜɨɬ ɪɟɡɭɥɶɬɚɬ.
ɗɬɨ ɫɨɜɟɪɲɟɧɧɨ ɫɬɚɧɞɚɪɬɧɚɹ ɩɪɨɝɪɚɦɦɚ ɞɥɹ Windows. ȿɺ ɨɤɧɨ ɦɨɠɧɨ
ɩɟɪɟɬɚɫɤɢɜɚɬɶ, ɟɝɨ ɦɨɠɧɨ ɦɚɤɫɢɦɢɡɢɪɨɜɚɬɶ ɧɚ ɜɟɫɶ ɷɤɪɚɧ, ɦɨɠɧɨ ɫɤɪɵɬɶ.
Ɂɚɤɪɵɬɶ ɩɪɨɝɪɚɦɦɭ ɦɨɠɧɨ, ɧɚɠɚɜ ɧɚ ɤɪɟɫɬɢɤ ɜ ɩɪɚɜɨɦ ɜɟɪɯɧɟɦ ɭɝɥɭ.
Ⱦɪɭɝɨɝɨ ɫɩɨɫɨɛɚ ɡɚɤɪɵɬɶ ɩɪɨɝɪɚɦɦɭ ɩɨɤɚ ɧɟɬ. ȿɞɢɧɫɬɜɟɧɧɚɹ
ɢɧɞɢɜɢɞɭɚɥɶɧɚɹ ɱɟɪɬɚ ɩɪɨɝɪɚɦɦɵ – ɢɤɨɧɤɚ ɜ ɥɟɜɨɦ ɜɟɪɯɧɟɦ ɭɝɥɭ,
ɧɚɩɨɦɢɧɚɸɳɚɹ ɨ ɦɨɞɭɥɟ
Tkinter.
Ʉɨɦɦɟɧɬɚɪɢɣ ɤ ɩɪɨɝɪɚɦɦɧɨɦɭ ɤɨɞɭ. ɋɨ ɫɬɪɨɤɨɣ ɢɦɩɨɪɬɚ ɩɨɧɹɬɧɨ. ȼ
ɫɥɟɞɭɸɳɟɣ ɫɬɪɨɤɟ ɜɢɞɢɦ ɫɥɨɜɨ
Canvas, ɩɨ-ɚɧɝɥɢɣɫɤɢ ɷɬɨ ɨɡɧɚɱɚɟɬ ɯɨɥɫɬ,
ɜɨ ɜɫɟɯ ɡɧɚɱɟɧɢɹɯ ɷɬɨɝɨ ɫɥɨɜɨ. Ʉɨɧɤɪɟɬɧɨ ɡɞɟɫɶ ɷɬɨ ɬɨɬ ɯɨɥɫɬ, ɧɚ ɤɨɬɨɪɨɦ
ɪɢɫɭɸɬ ɯɭɞɨɠɧɢɤɢ, ɚ ɫɟɣɱɚɫ ɛɭɞɟɦ ɪɢɫɨɜɚɬɶ ɦɵ. ɗɬɨ ɫɥɨɜɨ ɜ ɷɬɨɦ ɠɟ
ɫɦɵɫɥɟ ɜɫɬɪɟɱɚɟɬɫɹ ɢ ɜɨ ɦɧɨɝɢɯ ɞɪɭɝɢɯ ɹɡɵɤɚɯ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ. ɋɥɟɜɚ
ɨɬ ɨɩɟɪɚɬɨɪɚ ɩɪɢɫɜɚɢɜɚɧɢɹ ɧɟɡɚɦɟɬɧɚɹ ɩɟɪɟɦɟɧɧɚɹ
ɬɢɩɚ
ɯɨɥɫɬ ɢ ɩɪɢɫɜɚɢɜɚɟɦ ɫɫɵɥɤɭ ɧɚ ɷɬɨɬ ɧɨɜɵɣ ɨɛɴɟɤɬ ɩɟɪɟɦɟɧɧɨɣ.
c. Ɇɵ ɫɨɡɞɚɺɦ ɨɛɴɟɤɬ
Ɉɛɴɟɤɬ ɫɨɡɞɚɺɬɫɹ ɧɟ ɩɪɨɫɬɨ ɬɚɤ, ɚ ɫ ɩɟɪɟɞɚɱɟɣ ɮɭɧɤɰɢɢ, ɟɝɨ ɫɨɡɞɚɸɳɟɣ,
ɧɟɫɤɨɥɶɤɢɯ ɩɚɪɚɦɟɬɪɨɜ. ɉɪɨ ɨɛɴɟɤɬɵ ɡɚɞɭɦɵɜɚɬɶɫɹ ɩɨɤɚ ɧɟ ɧɚɞɨ, ɚ ɜɨɬ ɨ
ɩɚɪɚɦɟɬɪɚɯ ɩɨɝɨɜɨɪɢɦ. Ɏɨɪɦɚ ɡɚɞɚɧɢɹ ɩɚɪɚɦɟɬɪɨɜ ɨɞɧɨɡɧɚɱɧɨ ɭɤɚɡɵɜɚɟɬ,
ɱɬɨ ɷɬɨ ɩɚɪɚɦɟɬɪɵ ɩɨ ɢɦɟɧɚɦ. Ⱥ ɟɫɥɢ ɷɬɨ ɩɚɪɚɦɟɬɪɵ ɩɨ ɢɦɟɧɚɦ, ɬɨ ɢɯ,
ɫɤɨɪɟɟ ɜɫɟɝɨ, ɝɨɪɚɡɞɨ ɛɨɥɶɲɟ, ɱɟɦ ɦɵ ɜɢɞɢɦ. ɉɪɨɫɬɨ ɨɫɬɚɥɶɧɵɟ ɩɨɥɭɱɢɥɢ
ɡɧɚɱɟɧɢɹ ɩɨ ɭɦɨɥɱɚɧɢɸ. Ɂɧɚɱɟɧɢɹ ɩɟɪɜɵɯ ɞɜɭɯ ɨɱɟɜɢɞɧɵ, width = ɲɢɪɢɧɚ,
height = ɜɵɫɨɬɚ. ɗɬɨ ɪɚɡɦɟɪɵ ɮɨɪɦɵ. ɂɦɟɧɧɨ ɬɚɤɢɟ ɪɚɡɦɟɪɵ ɭ ɧɟɺ ɞɥɹ ɬɨɝɨ,
ɱɬɨɛɵ ɧɟ ɡɚɧɢɦɚɬɶ ɦɧɨɝɨ ɦɟɫɬɚ ɧɚ ɫɬɪɚɧɢɰɟ. Ⱦɥɹ ɪɢɫɨɜɚɧɢɹ ɷɬɨɝɨ ɦɚɥɨ,
ɧɟɦɟɞɥɟɧɧɨ ɭɜɟɥɢɱɶɬɟ ɯɨɬɹ ɛɵ ɞɨ 400
u400. Ɍɪɟɬɢɣ ɩɚɪɚɦɟɬɪ ɧɟ ɬɚɤ
ɨɱɟɜɢɞɟɧ, ɩɨɤɚ ɜɵ ɧɟ ɞɨɝɚɞɚɟɬɟɫɶ, ɱɬɨ bg = background = ɮɨɧ. Ȼɭɞɭɱɢ
ɫɨɜɫɟɦ ɡɚɧɭɞɧɵɦ
, white ɷɬɨ ɛɟɥɵɣ. Ɍɨ ɟɫɬɶ ɰɜɟɬ ɮɨɧɚ ɧɚɲɟɝɨ ɯɨɥɫɬɚ, ɧɚ
ɤɨɬɨɪɨɦ ɦɵ ɛɭɞɟɦ ɞɚɥɶɲɟ ɪɢɫɨɜɚɬɶ, – ɛɟɥɵɣ.
206

ɋɥɟɞɭɸɳɚɹ ɫɬɪɨɤɚ, ɤɨɬɨɪɚɹ
c.pack, ɹɜɥɹɟɬɫɹ ɫɩɟɰɢɮɢɱɟɫɤɨɣ ɞɥɹ ɢɦɟɧɧɨ
ɉɢɬɨɧɚ. ȿɺ ɧɚɞɨ ɧɚɩɢɫɚɬɶ ɢ ɜɫɺ ɬɭɬ.
Ⱥ ɜɨɬ ɬɚ ɫɬɪɨɤɚ, ɱɬɨ ɩɨɫɥɟ ɤɨɦɦɟɧɬɚɪɢɟɜ, ɬɨ ɟɫɬɶ
ɨɛɳɟɣ ɞɥɹ ɜɫɟɯ ɩɪɨɝɪɚɦɦ ɩɨɞ Windows. ɗɬɨ ɬɚɤ ɧɚɡɵɜɚɟɦɵɣ
ɰɢɤɥ
, ɜɨɡɦɨɠɧɵ ɢ ɞɪɭɝɢɟ ɢɦɟɧɚ. ɋɦɵɫɥ ɷɬɨɝɨ ɰɢɤɥɚ ɜ ɬɨɦ, ɱɬɨ ɨɧ ɤɪɭɬɢɬɫɹ
mainloop(), ɹɜɥɹɟɬɫɹ
ɨɫɧɨɜɧɨɣ
ɜɟɱɧɨ. ɉɨɤɚ ɪɚɛɨɬɚɟɬ ɩɪɨɝɪɚɦɦɚ, ɪɚɛɨɬɚɟɬ ɢ ɷɬɨɬ ɰɢɤɥ. Ɂɚɞɚɱɚ ɟɝɨ ɜ ɬɨɦ,
ɱɬɨɛɵ ɪɟɚɝɢɪɨɜɚɬɶ ɧɚ ɜɫɟ ɜɧɟɲɧɢɟ ɫɨɛɵɬɢɹ – ɨɬ ɞɜɢɠɟɧɢɹ ɦɵɲɢ ɧɚ ɨɞɢɧ
ɩɢɤɫɟɥ ɞɨ… ɞɚɠɟ ɧɟ ɡɧɚɸ, ɞɨ ɱɟɝɨ. Ⱦɪɭɝɨɟ ɞɟɥɨ, ɱɬɨ ɨɛɵɱɧɨ – ɜ ɞɪɭɝɢɯ
ɫɢɫɬɟɦɚɯ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ – ɷɬɚ ɫɬɪɨɤɚ ɨɫɬɚɺɬɫɹ ɫɤɪɵɬɨɣ ɢ ɧɢɤɬɨ ɟɺ ɧɟ
ɜɢɞɢɬ. ɂ ɞɚɠɟ ɧɢɤɬɨ ɧɟ ɩɢɲɟɬ. ɇɨ ɡɞɟɫɶ ɜɚɦ ɧɟ ɬɭɬ, ɡɞɟɫɶ ɩɪɢɞɺɬɫɹ ɩɢɫɚɬɶ
ɹɜɧɨ.
Ɉɞɧɚɤɨ ɧɚɱɢɧɚɟɦ ɪɢɫɨɜɚɬɶ. Ƚɟɨɦɟɬɪɢɹ ɧɚɱɢɧɚɟɬɫɹ ɫ ɬɨɱɤɢ, ɧɨ ɬɨɱɤɭ ɧɚ
ɷɤɪɚɧɟ ɩɨɱɬɢ ɧɟ ɜɢɞɧɨ. ɉɨɷɬɨɦɭ ɧɚɱɧɟɦ ɫ ɥɢɧɢɢ. Ʌɢɧɢɹ ɜ ɝɟɨɦɟɬɪɢɢ
ɡɚɞɚɺɬɫɹ ɞɜɭɦɹ ɬɨɱɤɚɦɢ – ɧɚɱɚɥɨɦ ɢ ɤɨɧɰɨɦ. ȼ ɉɢɬɨɧɟ ɬɨɱɧɨ ɬɚɤ ɠɟ. Ɍɨɱɤɚ
ɡɚɞɚɺɬɫɹ ɞɜɭɦɹ ɤɨɨɪɞɢɧɚɬɚɦɢ, ɩɨ X ɢ ɩɨ Y. ɋ ɤɨɨɪɞɢɧɚɬɨɣ X ɜɫɺ ɯɨɪɨɲɨ –
ɨɧɚ ɞɺɬ ɫɥɟɜɚ ɧɚɩɪɚɜɨ, ɤɚɤ ɢ ɩɨɥɨɠɟɧɨ. Ⱥ ɜɨɬ ɤɨɨɪɞɢɧɚɬɚ Y ɜ
ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɢ ɬɪɚɞɢɰɢɨɧɧɨ ɩɟɪɟɜɺɪɧɭɬɚ – ɜɜɟɪɯɭ ɧɨɥɶ, ɚ ɩɨ ɦɟɪɟ
ɨɩɭɫɤɚɧɢɹ ɜɧɢɡ ɤɨɨɪɞɢɧɚɬɚ ɪɚɫɬɺɬ. ȼɫɩɨɦɧɢɜ ɜɫɺ ɷɬɨ, ɧɚɤɨɧɟɰ ɪɢɫɭɟɦ
ɥɢɧɢɸ. ȼɫɟ ɧɚɲɢ ɛɭɞɭɳɢɟ ɯɭɞɨɠɟɫɬɜɚ ɞɨɥɠɧɵ ɧɚɯɨɞɢɬɶɫɹ ɧɚ ɦɟɫɬɟ
ɤɨɦɦɟɧɬɚɪɢɟɜ ɜ ɡɚɝɨɬɨɜɤɟ ɩɪɨɝɪɚɦɦɵ.
c.create_line( 0,0, 200,50)
– ɷɬɨ ɨɛɴɟɤɬ ɯɨɥɫɬɚ. ɍ ɨɛɴɟɤɬɚ ɟɫɬɶ ɦɟɬɨɞɵ, ɨɛɵɱɧɨ. Ɂɞɟɫɶ ɜɵ ɜɢɞɢɬɟ
C
ɦɟɬɨɞ ɫ ɝɨɜɨɪɹɳɢɦ ɢɦɟɧɟɦ
ɤɨɨɪɞɢɧɚɬɵ ɤɨɧɟɱɧɵɯ ɬɨɱɟɤ.
create_line, ɬɨ ɟɫɬɶ ɫɨɡɞɚɬɶ ɥɢɧɢɸ. Ⱦɚɥɟɟ
Ʌɢɧɢɢ ɫɨ ɫɦɵɫɥɨɦ
ɇɚɪɢɫɭɟɦ ɱɬɨ-ɬɨ ɛɨɥɟɟ ɨɫɦɵɫɥɟɧɧɨɟ, ɤɨɧɤɪɟɬɧɨ ɨɫɢ ɩɪɹɦɨɭɝɨɥɶɧɵɯ
ɤɨɨɪɞɢɧɚɬ. ɋɪɚɡɭ ɧɚɩɪɚɲɢɜɚɟɬɫɹ ɱɬɨ-ɬɨ ɜɪɨɞɟ ɬɚɤɨɝɨ:
207

c.create_line( 0,200, 400,200)
c.create_line( 200,0, 200,400)
ɗɬɨ ɛɭɞɟɬ ɪɚɛɨɬɚɬɶ, ɧɨ ɷɬɨ ɧɟ ɨɱɟɧɶ ɯɨɪɨɲɨ. ɉɨɱɟɦɭ? ɐɟɧɬɪ ɤɨɨɪɞɢɧɚɬ ɭ
ɧɚɫ ɫɟɣɱɚɫ ɧɚɯɨɞɢɬɫɹ ɜ ɬɨɱɤɟ (200,200). ȿɫɥɢ ɧɚɦ ɡɚɯɨɱɟɬɫɹ ɟɝɨ ɫɞɜɢɧɭɬɶ ɜ
ɞɪɭɝɭɸ ɬɨɱɤɭ, ɩɪɢɞɺɬɫɹ ɦɟɧɹɬɶ ɜɫɟ ɤɨɧɫɬɚɧɬɵ. Ƚɨɪɚɡɞɨ ɥɭɱɲɟ, ɟɫɥɢ ɞɥɹ
ɷɬɨɝɨ ɛɭɞɟɬ ɞɨɫɬɚɬɨɱɧɨ ɢɡɦɟɧɢɬɶ ɬɨɥɶɤɨ ɞɜɚ ɷɬɢɯ ɱɢɫɥɚ – ɫɨɛɫɬɜɟɧɧɨ
ɧɚɱɚɥɨ ɤɨɨɪɞɢɧɚɬ. ɂ ɱɬɨɛɵ ɞɜɚ ɪɚɡɚ ɧɟ ɜɫɬɚɜɚɬɶ, ɜɵɧɟɫɟɦ ɜ ɩɟɪɟɦɟɧɧɵɟ ɢ
ɪɚɡɦɟɪ ɧɚɲɟɝɨ ɩɨɥɹ ɜɵɜɨɞɚ, ɤɨɬɨɪɵɣ ɹɜɥɹɟɬɫɹ ɤɜɚɞɪɚɬɨɦ ɫɨ ɫɬɨɪɨɧɨɣ 400.
ɇɭ, ɢ ɱɬɨɛɵ ɩɨɩɭɬɧɨ ɭɡɧɚɬɶ ɱɬɨ-ɬɨ ɧɨɜɨɟ, ɧɚɪɢɫɭɟɦ ɥɢɧɢɢ ɩɨɠɢɪɧɟɟ ɢ
ɩɨɬɨɥɳɟ. Ⱦɥɹ ɫɪɚɜɧɟɧɢɹ ɬɨɥɳɢɧ ɥɢɧɢɣ ɩɪɨɜɟɞɺɦ ɞɢɚɝɨɧɚɥɶ. ɂ ɞɨɛɚɜɢɦ
ɟɳɺ ɤɨɟ-ɱɬɨ ɩɪɨɫɬɨɟ ɢ ɩɨɥɟɡɧɨɟ.
x0 = 200
y0 = 200
s = 400
c.create_line( 0,y0, s,y0, width = 3)
c.create_line( x0,0, x0,s, width = 3)
c.create_line( x0,y0, x0+s/3,y0-s/3, arrow = LAST)
ȿɳɺ ɪɚɡ – ɜɫɺ ɷɬɨ ɪɢɫɨɜɚɧɢɟ ɜɫɬɚɜɥɹɟɬɫɹ ɧɚ ɦɟɫɬɨ ɤɨɦɦɟɧɬɚɪɢɟɜ ɜ
ɡɚɝɨɬɨɜɤɟ ɩɪɨɝɪɚɦɦɵ. Ɂɞɟɫɶ ɦɵ ɜɢɞɢɦ ɞɜɚ ɜɢɞɚ ɩɚɪɚɦɟɬɪɨɜ – ɨɛɵɱɧɵɟ ɢ ɫ
ɢɦɟɧɚɦɢ. ɋɧɚɱɚɥɚ ɢɞɭɬ ɨɛɵɱɧɵɟ, ɫ ɢɦɟɧɚɦɢ – ɩɨɬɨɦ. Ɍɨɥɳɢɧɚ ɥɢɧɢɢ
ɡɚɞɚɺɬɫɹ ɤɚɤ ɩɚɪɚɦɟɬɪ ɫ ɢɦɟɧɟɦ. Ⱥ ɩɚɪɚɦɟɬɪ
ɤɨɧɰɟ ɥɢɧɢɢ. ȿɫɥɢ ɯɨɬɢɬɟ ɫɬɪɟɥɨɱɤɭ ɜ ɧɚɱɚɥɟ, ɧɚɩɢɲɢɬɟ
arrow ɨɬɜɟɱɚɟɬ ɡɚ ɫɬɪɟɥɨɱɤɭ ɧɚ
arrow = FIRST.
ȿɫɥɢ ɯɨɬɢɬɟ ɨɛɟ ɫɪɚɡɭ, ɭɤɚɠɢɬɟ ɨɛɚ ɩɚɪɚɦɟɬɪɚ.
208

ɇɚ ɫɚɦɨɦ ɞɟɥɟ, ɜɨɡɦɨɠɧɨɫɬɢ ɦɟɬɨɞɚ ɞɥɹ ɪɢɫɨɜɚɧɢɹ ɥɢɧɢɣ ɧɟɫɤɨɥɶɤɨ ɲɢɪɟ.
Ɋɚɡɧɵɯ ɩɚɪɚɦɟɬɪɨɜ, ɢɥɢ, ɩɨ ɞɪɭɝɨɣ ɬɟɪɦɢɧɨɥɨɝɢɢ,
ɨɩɰɢɣ, ɭ ɧɟɝɨ ɛɨɥɶɲɟ
ɞɜɚɞɰɚɬɢ. Ʉɪɨɦɟ ɬɨɝɨ, ɬɨɱɟɤ, ɩɨ ɤɨɬɨɪɵɦ ɪɢɫɭɟɬɫɹ ɥɢɧɢɹ, ɦɨɠɟɬ ɛɵɬɶ
ɛɨɥɶɲɟ ɞɜɭɯ. Ⱦɟɦɨɧɫɬɪɢɪɭɸ. ɋɧɚɱɚɥɚ ɧɚɩɢɲɟɦ ɮɭɧɤɰɢɸ, ɪɢɫɭɸɳɭɸ
ɪɚɜɧɨɫɬɨɪɨɧɧɢɣ ɬɪɟɭɝɨɥɶɧɢɤ, ɜ ɤɚɱɟɫɬɜɟ ɩɚɪɚɦɟɬɪɨɜ – ɫɬɨɪɨɧɚ ɢ
ɤɨɨɪɞɢɧɚɬɵ ɥɟɜɨɝɨ ɧɢɠɧɟɝɨ ɭɝɥɚ. ɂɡ ɝɟɨɦɟɬɪɢɢ. ȼɵɫɨɬɚ ɪɚɜɧɨɫɬɨɪɨɧɧɟɝɨ
a
ɬɪɟɭɝɨɥɶɧɢɤɚ ɩɨ ɟɝɨ ɫɬɨɪɨɧɟ ɜɵɱɢɫɥɹɟɬɫɹ ɬɚɤ:
3
. Ⱦɥɹ ɱɟɝɨ ɧɚɦ
h
2
ɜɵɫɨɬɚ? ȼ ɝɟɨɦɟɬɪɢɢ ɩɨɫɬɪɨɟɧɢɟ ɜɵɩɨɥɧɹɟɬɫɹ ɰɢɪɤɭɥɟɦ ɢ ɥɢɧɟɣɤɨɣ. ɍ ɧɚɫ
ɧɢ ɰɢɪɤɭɥɹ, ɧɢ ɥɢɧɟɣɤɢ ɧɟɬ, ɡɚɬɨ ɭ ɧɚɫ ɟɫɬɶ ɩɪɹɦɨɭɝɨɥɶɧɚɹ ɫɢɫɬɟɦɚ
ɤɨɨɪɞɢɧɚɬ. ɗɬɨ ɞɚɠɟ ɥɭɱɲɟ.
def Triangle( a, x0,y0):
h = (a*3**0.5)/2.0
c.create_line( x0,y0, x0+a,y0)
c.create_line( x0+a,y0, x0+a/2,y0-h)
c.create_line( x0+a/2,y0-h, x0,y0)
Triangle( 100, x0+10,y0-10)
ȼɫɺ ɬɪɚɞɢɰɢɨɧɧɨ, ɬɨɥɶɤɨ ɜ ɨɱɟɪɟɞɧɨɣ ɪɚɡ ɧɚɩɨɦɢɧɚɸ, ɱɬɨ
ɡɚɝɨɥɨɜɤɟ ɮɭɧɤɰɢɢ ɢ
x0,y0 ɜ ɜɵɡɨɜɟ ɮɭɧɤɰɢɢ ɷɬɨ ɨɱɟɧɶ ɪɚɡɧɵɟ ɢɦɟɧɚ. ȿɫɥɢ
x0,y0 ɜ
ɩɪɢɫɦɨɬɪɟɬɶɫɹ ɤ ɜɵɡɨɜɚɦ ɦɟɬɨɞɚ, ɬɨ ɩɪɹɦɨ-ɬɚɤɢ ɫɬɚɧɨɜɢɬɫɹ ɨɱɟɜɢɞɧɵɦ,
ɱɬɨ ɜɬɨɪɚɹ ɬɨɱɤɚ ɩɟɪɜɨɣ ɥɢɧɢɢ ɫɨɜɩɚɞɚɟɬ ɫ ɩɟɪɜɨɣ ɬɨɱɤɨɣ ɜɬɨɪɨɣ ɥɢɧɢɢ ɢ
ɬɚɤ ɞɚɥɟɟ. Ⱥ ɬɨɝɞɚ ɡɚɱɟɦ ɩɢɫɚɬɶ ɥɢɲɧɢɣ ɤɨɞ? ɉɪɚɜɢɥɶɧɨ, ɦɨɠɧɨ ɜɨɬ ɬɚɤ:
def Triangle( a, x0,y0):
h = (a*3**0.5)/2.0
c.create_line( x0,y0, x0+a,y0, x0+a/2,y0-h, x0,y0)
Ɇɵ ɩɪɨɫɬɨ ɩɟɪɟɱɢɫɥɹɟɦ ɬɨɱɤɢ, ɱɟɪɟɡ ɤɨɬɨɪɵɟ ɞɨɥɠɧɚ ɩɪɨɣɬɢ ɥɢɧɢɹ,
ɬɨɥɶɤɨ ɭɠɟ ɧɟ ɩɪɹɦɚɹ, ɚ ɥɨɦɚɧɚɹ. Ɍɨɱɟɤ ɧɟ ɬɪɢ, ɚ ɱɟɬɵɪɟ, ɩɨɬɨɦɭ ɱɬɨ
209

ɧɟɨɛɯɨɞɢɦɨ ɨɛɟɫɩɟɱɢɬɶ ɡɚɦɤɧɭɬɨɫɬɶ ɥɢɧɢɢ. ɉɪɨɜɟɪɶɬɟ, ɪɟɡɭɥɶɬɚɬ ɞɨɥɠɟɧ
ɛɵɬɶ ɬɨɬ ɠɟ. ɇɟɦɧɨɝɨ ɭɫɥɨɠɧɢɦ ɤɨɞ, ɢɥɢ ɭɩɪɨɫɬɢɦ, ɤɨɦɭ ɤɚɤ ɩɨɤɚɠɟɬɫɹ:
def Triangle( a, x0,y0):
h = (a*3**0.5)/2.0
L = [ x0,y0, x0+a,y0, x0+a/2,y0-h, x0,y0 ]
c.create_line( L )
Ɋɟɡɭɥɶɬɚɬ ɪɢɫɨɜɚɧɢɹ, ɩɪɟɞɫɤɚɡɭɟɦɨ, ɬɨɬ ɠɟ. Ɇɵ ɫɧɚɱɚɥɚ ɡɚɬɨɥɤɚɥɢ ɬɨɱɤɢ ɜ
ɫɩɢɫɨɤ, ɚ ɩɨɬɨɦ ɩɟɪɟɞɚɥɢ ɟɝɨ ɞɥɹ ɨɬɨɛɪɚɠɟɧɢɹ. ɇɚ ɷɬɨɦ ɦɵ ɧɟ
ɨɫɬɚɧɨɜɢɦɫɹ, ɟɳɺ ɨɞɢɧ ɜɚɪɢɚɧɬ.
L = [ (x0,y0), (x0+a,y0), (x0+a/2,y0-h), (x0,y0) ]
ȼ ɱɺɦ ɟɝɨ ɩɪɟɢɦɭɳɟɫɬɜɨ? ȼ ɬɨɦ, ɱɬɨ ɤɨɨɪɞɢɧɚɬɵ ɫɝɪɭɩɩɢɪɨɜɚɧɵ ɩɨɩɚɪɧɨ,
ɤɚɠɞɚɹ ɩɚɪɚ ɤɨɨɪɞɢɧɚɬ – ɬɨɱɤɚ. Ɍɚɤ ɧɚɝɥɹɞɧɟɟ. Ɍɟɩɟɪɶ ɦɨɠɧɨ ɧɚɩɢɫɚɬɶ,
ɤɚɡɚɥɨɫɶ ɛɵ, ɞɥɢɧɧɟɟ, ɚ ɡɧɚɱɢɬ, ɨɩɹɬɶ-ɬɚɤɢ, ɤɚɡɚɥɨɫɶ ɛɵ, ɯɭɠɟ. ɇɨ ɷɬɨ
ɬɨɥɶɤɨ ɤɚɠɟɬɫɹ.
def Triangle( a, x0,y0):
h = (a*3**0.5)/2.0
L = []
L.append( (x0,y0) )
L.append( (x0+a,y0) )
L.append( (x0+a/2,y0-h) )
L.append( (x0,y0) )
c.create_line( L )
ȼɬɨɪɵɟ ɫɤɨɛɤɢ ɧɟɨɛɯɨɞɢɦɵ, ɩɨɬɨɦɭ ɱɬɨ ɦɟɬɨɞ
append ɜ ɫɨɫɬɨɹɧɢɢ ɩɪɢɧɹɬɶ
ɧɚ ɜɯɨɞ ɬɨɥɶɤɨ ɨɞɢɧ ɩɚɪɚɦɟɬɪ. ɋɨɝɥɚɫɧɨ ɢɞɟɨɥɨɝɢɢ ɉɢɬɨɧɚ, ɞɜɚ ɱɢɫɥɚ,
ɜɡɹɬɵɟ ɜ ɫɤɨɛɤɢ, ɧɟɦɟɞɥɟɧɧɨ ɩɪɟɜɪɚɳɚɸɬɫɹ ɜ ɨɞɢɧ ɤɨɪɬɟɠ, ɤɨɬɨɪɵɣ
ɦɨɠɧɨ ɞɨɛɚɜɢɬɶ ɜ ɫɩɢɫɨɤ ɡɚ ɨɞɢɧ ɩɪɢɺɦ. ɂɧɚɱɟ ɞɜɚ ɱɢɫɥɚ ɩɪɢɲɥɨɫɶ ɛɵ
ɞɨɛɚɜɥɹɬɶ ɡɚ ɞɜɚ ɪɚɡɚ. ɗɬɨ ɧɢɱɟɝɨ, ɱɬɨ ɹ ɬɚɤ ɩɨɞɪɨɛɧɨ ɜɫɺ ɨɛɴɹɫɧɹɸ?
ɉɪɟɢɦɭɳɟɫɬɜɨ ɨɬ ɬɚɤɨɝɨ ɩɨɞɯɨɞɚ ɜ ɬɨɦ, ɱɬɨ ɟɫɥɢ ɬɨɱɤɢ ɦɨɠɧɨ ɞɨɛɚɜɥɹɬɶ
ɩɨ ɨɞɧɨɣ ɪɭɤɚɦɢ, ɬɨ ɦɨɠɧɨ ɞɨɛɚɜɥɹɬɶ ɢɯ ɢ ɜ ɰɢɤɥɟ, ɚ ɷɬɨ ɞɚɺɬ ɧɨɜɵɟ
ɜɨɡɦɨɠɧɨɫɬɢ. ȼɨɬ ɩɪɢɦɟɪ – ɪɢɫɨɜɚɧɢɟ ɩɪɚɜɢɥɶɧɨɝɨ ɦɧɨɝɨɭɝɨɥɶɧɢɤɚ. ɗɬɨ
ɬɚɤɨɣ ɦɧɨɝɨɭɝɨɥɶɧɢɤ, ɭ ɤɨɬɨɪɨɝɨ ɪɚɜɧɵ ɜɫɟ ɫɬɨɪɨɧɵ ɢ ɪɚɜɧɵ ɜɫɟ ɭɝɥɵ.
ɋɚɦɵɣ ɥɸɛɢɦɵɣ ɧɚɪɨɞɨɦ ɷɤɡɟɦɩɥɹɪ, ɛɟɡɭɫɥɨɜɧɨ, ɤɜɚɞɪɚɬ.
# ɛɟɫɩɨɥɟɡɧɚɹ ɢɧɮɨɪɦɚɰɢɹ
ɇɟɤɨɬɨɪɵɟ ɩɪɚɜɢɥɶɧɵɟ ɦɧɨɝɨɭɝɨɥɶɧɢɤɢ ɦɨɠɧɨ ɩɨɫɬɪɨɢɬɶ ɰɢɪɤɭɥɟɦ ɢ
ɥɢɧɟɣɤɨɣ. Ƚɚɭɫɫ ɞɨɤɚɡɚɥ, ɱɬɨ ɩɪɚɜɢɥɶɧɵɣ ɦɧɨɝɨɭɝɨɥɶɧɢɤ ɦɨɠɧɨ
ɩɨɫɬɪɨɢɬɶ, ɟɫɥɢ ɱɢɫɥɨ ɟɝɨ ɫɬɨɪɨɧ ɪɚɜɧɨ ɩɪɨɫɬɨɦɭ ɱɢɫɥɭ Ɏɟɪɦɚ. ɇɚ ɞɚɧɧɵɣ
210
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
