Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Простой Python просто с нуля

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
ɜɚɠɧɵ. Ɍɟɩɟɪɶ ɜɫɩɨɦɢɧɚɟɦ – 00
= 000000002. ȼɨɬ ɷɬɢ ɜɨɫɟɦɶ ɞɜɨɢɱɧɵɯ
16
ɰɢɮɪ, ɤɨɧɤɪɟɬɧɨ ɧɭɥɟɣ, ɨɬɜɟɱɚɸɬ ɡɚ ɜɨɫɟɦɶ ɬɨɱɟɤ ɧɚ ɷɤɪɚɧɟ ɢ ɩɨ ɝɨɪɢɡɨɧɬɚɥɢ. ȿɫɥɢ ɭ ɧɚɫ ɧɭɥɢ – ɧɢɱɟɝɨ ɧɟ ɪɢɫɭɟɬɫɹ. Ⱥ ɱɬɨ ɧɚɪɢɫɭɟɬ ɝɪɭɩɩɚ
0xff? ɗɥɟɦɟɧɬɚɪɧɨ. FF
= 111111112. ɂɦɟɟɦ ɜɨɫɟɦɶ ɧɚɪɢɫɨɜɚɧɧɵɯ ɬɨɱɟɤ.
16
Ⱦɥɹ ɡɚɜɟɪɲɟɧɢɹ ɢ ɩɨɥɧɨɝɨ ɩɨɧɢɦɚɧɢɹ – ɚ ɱɬɨ, ɟɫɥɢ ɧɚɦ ɧɚɞɨ ɧɚɪɢɫɨɜɚɬɶ ɱɬɨ-ɬɨ ɩɨɥɨɫɚɬɨɟ, ɱɟɪɟɡ ɬɨɱɤɭ? Ɇɨɠɧɨ, ɧɚɩɪɢɦɟɪ, ɬɚɤ – 10101010 Ɍɨ ɟɫɬɶ ɜ ɬɟɤɫɬɨɜɨɦ ɮɚɣɥɟ ɞɨɥɠɧɨ ɫɬɨɹɬɶ
0xaa. ɉɪɨɜɟɪɶɬɟ ɢ ɨɛɞɭɦɚɣɬɟ.
= AA16.
2
ȼɫɟɝɞɚ ɩɨɥɟɡɧɨ, ɭɡɧɚɜ ɱɬɨ-ɬɨ ɧɨɜɨɟ, ɨɛɴɟɞɢɧɢɬɶ ɟɝɨ ɫ ɱɟɦ-ɬɨ ɫɬɚɪɵɦ. ɂ ɫɬɚɪɨɟ ɡɚɤɪɟɩɥɹɟɬɫɹ ɢ ɧɨɜɨɟ ɩɨɞɬɜɟɪɠɞɚɟɬɫɹ.
Ɉɬɤɭɲɚɬɶ ɩɪɨɫɢɦ, ɞɨɤɬɨɪ, ɱɟɦ ɛɨɝ ɩɨɫɥɚɥ. – Ɉɬɤɭɲɚɬɶ ɦɨɠɧɨ. Ʉɨɥɢ ɞɨɤɬɨɪ ɫɵɬ, ɬɚɤ ɢ ɛɨɥɶɧɨɦɭ ɥɟɝɱɟ.
© ɤ/ɮ «Ɏɨɪɦɭɥɚ ɥɸɛɜɢ»
Ⱦɚɧɧɵɟ ɞɥɹ ɪɢɫɨɜɚɧɢɹ ɤɚɪɬɢɧɤɢ ɛɟɪɭɬɫɹ ɢɡ ɬɟɤɫɬɨɜɨɝɨ ɮɚɣɥɚ. Ɏɚɣɥ ɦɵ ɫɨɡɞɚɜɚɥɢ ɧɟɜɟɞɨɦɨ ɝɞɟ, ɧɟɜɟɞɨɦɨ ɱɟɦ ɢ ɧɟɜɟɞɨɦɨ ɤɚɤ. ɋɨɡɞɚɞɢɦ ɟɝɨ ɫɚɦɢ, ɫɜɨɢɦɢ ɛɟɥɵɦɢ ɪɭɱɤɚɦɢ, ɜ ɬɨɣ ɠɟ ɩɪɨɝɪɚɦɦɟ ɱɭɬɶ ɪɚɧɶɲɟ ɢ ɧɟɩɨɫɪɟɞɫɬɜɟɧɧɨ ɩɟɪɟɞ ɜɵɜɨɞɨɦ ɧɚ ɷɤɪɚɧ.
f = open( 'd:/mu_1.xbm', 'w')
f.write( '#define mu_width 8\n'); f.write( '#define mu_height 8\n'); f.write( 'static unsigned char x_bits[] = {\n'); f.write( ' 0x81,\n'); f.write( ' 0x42,\n'); f.write( ' 0x24,\n'); f.write( ' 0x18,\n'); f.write( ' 0x18,\n'); f.write( ' 0x24,\n'); f.write( ' 0x42,\n'); f.write( ' 0x81);\n;');
f.close()
c.create_bitmap( 200,100, bitmap = '@d:\mu_1.xbm')
ɗɬɨ ɹ ɞɥɹ ɪɚɡɧɨɨɛɪɚɡɢɹ ɧɚɪɢɫɨɜɚɥ ɤɪɟɫɬɢɤ. ȿɫɥɢ ɡɚɯɨɬɢɬɟ ɢɡɨɛɪɚɠɟɧɢɟ ɩɨɤɪɚɫɢɬɶ, ɬɨ ɫɤɚɡɚɧɧɨɟ ɪɚɧɶɲɟ ɨ ɰɜɟɬɚɯ ɩɨɥɧɨɫɬɶɸ ɩɪɢɦɟɧɢɦɨ ɢ ɡɞɟɫɶ:
c.create_bitmap( 200,100, bitmap = '@d:\mu_1.xbm', foreground = ‘blue’)
231
Ⱥ ɦɨɠɧɨ ɥɢ ɩɪɨɫɬɨ ɢ ɛɟɡ ɡɚɬɟɣ ɡɚɝɪɭɡɢɬɶ ɢɡɨɛɪɚɠɟɧɢɟ ɢɡ ɮɚɣɥɚ ɤɚɤɨɝɨ-ɬɨ ɛɨɥɟɟ ɩɪɢɜɵɱɧɨɝɨ ɮɨɪɦɚɬɚ? Ɇɨɠɧɨ. ɇɨ, ɤɚɤ ɢ ɜɨ ɦɧɨɝɢɯ ɞɪɭɝɢɯ ɫɥɭɱɚɹɯ, ɉɢɬɨɧ ɢɞɺɬ ɡɞɟɫɶ ɫɜɨɢɦ ɩɭɬɺɦ. Ⱦɥɹ ɧɚɱɚɥɚ, ɜɵ ɦɨɠɟɬɟ ɜɵɜɟɫɬɢ ɢɡɨɛɪɚɠɟɧɢɟ ɜ ɮɨɪɦɚɬɟ PPM. ȼɵ ɨ ɬɚɤɨɦ ɫɥɵɲɚɥɢ? ȼɨɬ ɢ ɹ ɬɨɠɟ. ɂɥɢ ɫɥɵɲɚɥ ɢ ɦɧɨɝɨ ɥɟɬ ɤɚɤ ɡɚɛɵɥ. Ⱦɚɥɟɟ ɫɥɟɞɭɟɬ ɫɬɨɥɶ ɠɟ ɩɨɩɭɥɹɪɧɵɣ ɮɨɪɦɚɬ PGM. Ʉ ɫɱɚɫɬɶɸ, ɟɳɺ ɞɨɩɭɫɤɚɟɬɫɹ ɢ ɜɩɨɥɧɟ ɬɪɚɞɢɰɢɨɧɧɵɣ ɮɨɪɦɚɬ GIF. Ⱦɥɹ ɨɱɟɧɶ ɨɛɪɚɡɨɜɚɧɧɵɯ, ɡɧɚɸɳɢɯ, ɱɬɨ GIF ɛɵɜɚɟɬ ɢ ɚɧɢɦɢɪɨɜɚɧɧɵɣ, ɭɬɨɱɧɹɸ – ɚɧɢɦɚɰɢɹ ɧɟ ɩɪɟɞɭɫɦɨɬɪɟɧɚ. ȼ ɷɬɨɦ ɫɥɭɱɚɟ ɛɭɞɟɬ ɜɵɜɟɞɟɧ ɬɨɥɶɤɨ ɩɟɪɜɵɣ ɤɚɞɪ ɢɡ ɮɚɣɥɚ. ɇɨ ɟɫɬɶ ɢ ɯɨɪɨɲɚɹ ɧɨɜɨɫɬɶ – ɢɡɨɛɪɚɠɟɧɢɟ ɢɦɟɟɬ ɩɪɚɜɨ ɛɵɬɶ ɰɜɟɬɧɵɦ. ɇɢɤɚɤɢɯ ɞɨɩɨɥɧɢɬɟɥɶɧɵɯ ɡɚɤɥɢɧɚɧɢɣ ɞɥɹ ɷɬɨɝɨ ɩɪɨɢɡɧɨɫɢɬɶ ɧɟ ɬɪɟɛɭɟɬɫɹ. ȿɫɥɢ ɢɡɨɛɪɚɠɟɧɢɟ ɰɜɟɬɧɨɟ – ɨɧɨ ɢ ɨɬɨɛɪɚɡɢɬɫɹ ɤɚɤ ɰɜɟɬɧɨɟ.
Ɋɢɫɭɟɬɫɹ ɢɡɨɛɪɚɠɟɧɢɟ ɜ ɞɜɚ ɲɚɝɚ:
im = PhotoImage( file = 'd:/t.gif') c.create_image( 100,100, image = im)
ɇɢɱɟɝɨ ɫɥɨɠɧɨɝɨ. ɇɚ ɞɚɧɧɨɦ ɷɬɚɩɟ ɩɨɫɬɢɠɟɧɢɹ ɉɢɬɨɧɚ ɷɬɨ ɧɚɞɨ ɩɪɨɫɬɨ ɡɚɩɨɦɧɢɬɶ. ɇɢɤɚɤɢɯ ɫɩɟɰɢɚɥɶɧɵɯ ɥɢɱɧɨ ɞɥɹ ɫɟɛɹ ɩɚɪɚɦɟɬɪɨɜ ɦɟɬɨɞ ɧɟ ɢɦɟɟɬ.
ȿɫɥɢ ɯɨɱɟɬɫɹ ɫɬɪɚɧɧɨɝɨ. Ȼɢɛɥɢɨɬɟɤɚ PIL
PIL ɪɚɫɲɢɮɪɨɜɵɜɚɟɬɫɹ ɤɚɤ Python Image Library – ɜɟɞɶ ɜɫɺ ɩɨɧɹɬɧɨ ɢ ɛɟɡ ɩɟɪɟɜɨɞɚ, ɩɪɚɜɞɚ? Ȼɢɛɥɢɨɬɟɤɭ ɭɠɟ ɧɟ ɩɨɞɞɟɪɠɢɜɚɸɬ ɩɨɱɬɢ ɞɟɫɹɬɶ ɥɟɬ, ɧɨ ɟɫɬɶ ɬɨ, ɱɬɨ ɜ ɤɢɧɟɦɚɬɨɝɪɚɮɟ ɧɚɡɵɜɚɟɬɫɹ
ɜɛɨɤɜɟɥ, ɚ ɭ ɧɟɤɨɬɨɪɵɯ
ɩɪɨɝɪɚɦɦɢɫɬɨɜ fork. ɗɬɚ ɲɬɭɤɚ ɧɚɡɵɜɚɟɬɫɹ Pillow ɢ, ɩɨ ɫɥɭɯɚɦ, ɢɦɟɟɬ ɧɚɦɧɨɝɨ ɛɨɥɶɲɢɟ ɜɨɡɦɨɠɧɨɫɬɢ. ɇɚɦ ɜɵɲɟ ɝɨɥɨɜɵ ɯɜɚɬɢɬ ɢ ɧɚɱɚɥɶɧɨɣ ɛɢɛɥɢɨɬɟɤɢ PIL. Ȼɢɛɥɢɨɬɟɤɚ ɫɨɜɟɪɲɟɧɧɨ ɛɟɫɩɥɚɬɧɚ. Ƚɞɟ ɜɡɹɬɶ? Ɇɨɠɧɨ ɡɞɟɫɶ –
http://www.pythonware.com. ɂɥɢ ɩɪɨɫɬɨ ɧɚɛɟɪɢɬɟ ɜ ɥɸɛɨɦ
ɩɨɢɫɤɨɜɢɤɟ PIL. ɍɫɬɚɧɨɜɤɚ ɛɢɛɥɢɨɬɟɤɢ ɧɟ ɩɪɟɞɫɬɚɜɥɹɟɬ ɧɢɤɚɤɢɯ ɡɚɬɪɭɞɧɟɧɢɣ – ɩɪɢ ɭɫɥɨɜɢɢ, ɱɬɨ ɫɚɦ ɉɢɬɨɧ ɭɫɬɚɧɨɜɥɟɧ ɤɨɪɪɟɤɬɧɨ. ȼɵ ɫɩɪɚɜɢɬɟɫɶ.
232
ɉɪɢɥɨɠɟɧɢɟ A. Ʉɨɧɫɨɥɶ
ɋɟɣɱɚɫ ɦɵ ɡɚɣɦɺɦɫɹ ɤɪɚɣɧɟɣ ɥɟɜɨɣ ɢɤɨɧɤɨɣ. ȼɵɝɥɹɞɢɬ ɨɧɚ ɜɨɬ ɬɚɤ
. ɂɡɜɢɧɢɬɟ ɡɚ ɱɺɪɧɵɣ ɮɨɧ, ɜ ɨɪɢɝɢɧɚɥɟ ɨɧ ɛɵɥ ɡɟɥɺɧɵɦ. ȿɫɥɢ
ɜɵɡɵɜɚɬɶ ɩɪɨɝɪɚɦɦɭ ɱɟɪɟɡ Ɇɟɧɸ, ɬɨ ɜɵɡɨɜ ɛɭɞɟɬ ɜɵɝɥɹɞɟɬɶ ɬɚɤ – ɉɪɨɝɪɚɦɦɵ \Python 2.7 \Python (command line). Ɉɩɹɬɶ-ɬɚɤɢ, ɜɨ ɜɫɟɯ ɤɧɢɝɚɯ ɷɬɨ ɧɚɡɵɜɚɟɬɫɹ ɫɬɪɚɲɧɨ:
ɤɨɧɫɨɥɶ. ɉɨɫɥɟ ɡɚɩɭɫɤɚ ɜɵɝɥɹɞɢɬ ɤɨɧɫɨɥɶ, ɫɤɚɠɟɦ ɩɪɹɦɨ,
Ⱦɚɠɟ ɹ ɬɚɤɨɝɨ ɭɠɚɫɚ ɦɧɨɝɨ ɞɟɫɹɬɢɥɟɬɢɣ ɧɟ ɜɢɞɟɥ. Ɍɟɩɟɪɶ ɩɢɲɟɦ ɬɟɤɫɬ ɜ ɤɨɧɫɨɥɢ:
>>>2+3 5
>>>2-3
-1
>>>2*3 6
Ɍɨ ɟɫɬɶ ɩɨɤɚ ɱɬɨ ɦɵ ɢɦɟɟɦ ɛɚɧɚɥɶɧɵɣ ɤɚɥɶɤɭɥɹɬɨɪ. Ʉɚɤ ɜɵ ɩɨɧɹɥɢ, ɭɦɧɨɠɟɧɢɟ ɨɛɨɡɧɚɱɚɟɬɫɹ ɡɜɺɡɞɨɱɤɨɣ. ɉɪɨɞɨɥɠɚɟɦ ɨɩɵɬɵ.
>>>2/3 0
>>>2 % 3 2
>>>3 % 2 1
ɇɟɫɥɨɠɧɨ ɞɨɝɚɞɚɬɶɫɹ, ɱɬɨ ɤɨɫɚɹ ɱɟɪɬɚ ɩɪɨɢɡɜɨɞɢɬ ɞɟɥɟɧɢɟ ɧɚɰɟɥɨ, ɚ ɩɪɨɰɟɧɬ, ɧɚɨɛɨɪɨɬ, ɜɨɡɜɪɚɳɚɟɬ ɨɫɬɚɬɨɤ ɨɬ ɞɟɥɟɧɢɹ. ɇɨ ɜɫɺ-ɬɚɤɢ, ɱɬɨ ɞɟɥɚɬɶ, ɟɫɥɢ ɧɚɦ ɧɭɠɧɨ ɧɚɫɬɨɹɳɟɟ ɞɟɥɟɧɢɟ, ɫ ɞɪɨɛɹɦɢ?
233
>>>2.0/ 3.0
0.66666
>>>2/3.0
0.66666
ɇɚɞɨ ɹɜɧɵɦ ɨɛɪɚɡɨɦ ɭɤɚɡɚɬɶ, ɱɬɨ ɭ ɧɚɫ ɧɟ ɰɟɥɵɟ ɱɢɫɥɚ, ɚ ɞɪɨɛɧɵɟ, ɬɨ ɟɫɬɶ ɩɨɫɥɟ ɰɟɥɨɣ ɱɚɫɬɢ ɩɨɫɬɚɜɢɬɶ ɬɨɱɤɭ. Ɇɨɠɧɨ ɭ ɨɛɨɢɯ ɱɢɫɟɥ, ɦɨɠɧɨ ɭ ɨɞɧɨɝɨ.
Ʉɚɤ ɦɵ ɜɢɞɢɦ, ɤɨɧɫɨɥɶ ɦɨɠɧɨ ɢɫɩɨɥɶɡɨɜɚɬɶ ɜ ɤɚɱɟɫɬɜɟ ɤɚɥɶɤɭɥɹɬɨɪɚ. ɇɚ ɫɚɦɨɦ ɞɟɥɟ, ɜ ɤɨɧɫɨɥɢ ɉɢɬɨɧɚ ɦɨɠɧɨ ɩɢɫɚɬɶ ɫɚɦɵɟ ɧɚɫɬɨɹɳɢɟ ɩɪɨɝɪɚɦɦɵ. ȼɨɬ ɩɪɢɦɟɪ ɦɚɥɟɧɶɤɨɣ, ɧɨ ɩɪɨɝɪɚɦɦɵ:
>>>a = 2 >>>b = 3 >>>c = a + 2**b >>>print c 10
Ⱥ ɜɨɬ ɫɨɜɫɟɦ ɧɚɫɬɨɹɳɚɹ ɩɪɨɝɪɚɦɦɚ:
x = -1 if x > 0: … print ‘positive’ else: … print ‘negative’ negative
Ɇɨɠɧɨ ɞɟɥɚɬɶ ɩɨɱɬɢ ɜɫɺ, ɬɨɥɶɤɨ ɤ ɱɟɦɭ ɷɬɢ ɢɡɜɪɚɳɟɧɢɹ? Ɂɚɱɟɦ ɧɚɦ ɜɨɨɛɳɟ ɷɬɚ ɤɨɧɫɨɥɶ? Ɂɚɛɭɞɶɬɟ.
234
ɉɪɢɥɨɠɟɧɢɟ B. Ⱦɪɭɝɢɟ ɱɢɫɥɚ
ɗɬɨɬ ɪɚɡɞɟɥ ɦɨɠɧɨ ɜɨɨɛɳɟ ɧɟ ɱɢɬɚɬɶ – ɩɨɬɨɦɭ ɨɧ ɡɞɟɫɶ, ɜ ɩɪɢɥɨɠɟɧɢɹɯ. ȿɫɥɢ ɧɟ ɩɪɨɱɢɬɚɟɬɟ, ɧɢɱɟɝɨ ɧɟ ɩɨɬɟɪɹɟɬɟ. ȿɫɥɢ ɩɪɨɱɢɬɚɟɬɟ, ɭɡɧɚɟɬɟ ɱɬɨ-ɬɨ ɧɨɜɨɟ ɢ ɪɚɫɲɢɪɢɬɟ ɤɪɭɝɨɡɨɪ. ɍɡɧɚɬɶ ɱɬɨ-ɬɨ ɧɨɜɨɟ, ɬɟɦ ɛɨɥɟɟ ɨɬɧɨɫɹɳɟɟɫɹ ɤ ɬɨɦɭ, ɱɟɦ ɜɵ ɢɧɬɟɪɟɫɭɟɬɟɫɶ, ɜɫɟɝɞɚ ɩɨɥɟɡɧɨ. ȼ ɥɸɛɨɦ ɫɥɭɱɚɟ, ɹ ɜɚɫ ɩɪɟɞɭɩɪɟɞɢɥ.
Ɂɚɧɭɞɫɬɜɚ ɪɚɞɢ, ɪɟɱɶ ɜ ɷɬɨɦ ɪɚɡɞɟɥɟ ɧɟ ɨ ɬɨɦ, ɤɚɤɢɟ ɛɵɜɚɸɬ ɱɢɫɥɚ ɜ ɦɚɬɟɦɚɬɢɤɟ, ɤɨɦɭ ɧɚɞɨ, ɬɨɬ ɡɧɚɟɬ. Ɋɟɱɶ ɨ ɬɨɦ, ɤɚɤɢɟ ɬɢɩɵ ɱɢɫɟɥ ɨɩɪɟɞɟɥɟɧɵ ɜ ɉɢɬɨɧɟ – ɢ ɤɨɦɭ ɨɧɢ ɜɨɨɛɳɟ ɧɭɠɧɵ. ȿɫɥɢ ɜɵ ɧɟ ɡɚɛɵɥɢ, ɬɨ ɹ ɝɨɜɨɪɢɥ, ɚ ɦɚɬɟɦɚɬɢɤɚ ɩɨɞɬɜɟɪɠɞɚɟɬ – ɦɟɠɞɭ ɰɟɥɵɦɢ ɱɢɫɥɚɦɢ ɢ ɱɢɫɥɚɦɢ ɞɟɣɫɬɜɢɬɟɥɶɧɵɦɢ, ɨɧɢ ɠɟ ɩɥɚɜɚɸɳɢɟ, ɧɟɡɚɦɟɬɧɨ ɩɪɨɦɟɥɶɤɧɭɥɢ ɱɢɫɥɚ ɪɚɰɢɨɧɚɥɶɧɵɟ. ɗɬɨ ɬɚɤɢɟ ɱɢɫɥɚ, ɤɨɬɨɪɵɟ ɦɨɝɭɬ ɛɵɬɶ ɜɵɪɚɠɟɧɵ ɤɚɤ
7
1
2
ɪɟɡɭɥɶɬɚɬ ɨɬ ɞɟɥɟɧɢɹ ɞɜɭɯ ɰɟɥɵɯ ɱɢɫɟɥ
2
ɫɨɤɪɚɳɚɟɦɵɦɢ, ɤɚɤ
, ɢɥɢ ɧɟɬ, ɤɚɤ ɜɫɟ ɨɫɬɚɥɶɧɵɟ ɜ ɷɬɨɦ ɪɹɞɭɷɬɨ
2
,
,
1024
3
4
4
ɧɟɩɪɢɧɰɢɩɢɚɥɶɧɨ. ȿɳɺ ɞɪɨɛɢ ɛɵɜɚɸɬ ɧɟɩɪɚɜɢɥɶɧɵɟ, ɬɟ, ɭ ɤɨɬɨɪɵɯ ɱɢɫɥɢɬɟɥɶ (ɫɜɟɪɯɭ) ɛɨɥɶɲɟ ɡɧɚɦɟɧɚɬɟɥɹ (ɫɧɢɡɭ). ɂɡ ɧɟɩɪɚɜɢɥɶɧɵɯ ɞɪɨɛɟɣ ɦɨɠɧɨ ɜɵɞɟɥɢɬɶ ɰɟɥɭɸ ɱɚɫɬɶ. ɇɟɩɪɚɜɢɥɶɧɵɟ, ɤ ɩɪɢɦɟɪɭ,
23
17
1
17
99
,
. ɉɢɬɨɧ ɩɨɡɜɨɥɹɟɬ ɢɦɟɬɶ ɞɟɥɨ ɫ ɪɚɰɢɨɧɚɥɶɧɵɦɢ ɞɪɨɛɹɦɢ
1
99
6
ɢɦɟɧɧɨ ɤɚɤ ɫ ɪɚɰɢɨɧɚɥɶɧɵɦɢ ɞɪɨɛɹɦɢ. Ɍɨ ɟɫɬɶ ɢɡ ɲɤɨɥɶɧɨɣ ɚɪɢɮɦɟɬɢɤɢ
3
ɩɨɦɧɢɦ
2
5
3
ɜɫɬɪɨɟɧɧɵɣ ɬɢɩ
19
4
. Ʉɚɤ ɷɬɨ ɜɵɝɥɹɞɢɬ ɜ ɉɢɬɨɧɟɟɫɥɢ ɢɫɩɨɥɶɡɨɜɚɬɶ
1
15
15
ɞɪɨɛɢ?
import fractions
a = fractions.Fraction (2,3) b = fractions.Fraction (3,5)
c = a + b print a,b,c
2/3 3/5 19/15
Ɂɚɦɟɬɢɜ, ɱɬɨ ɧɟɩɪɚɜɢɥɶɧɚɹ ɞɪɨɛɶ ɬɚɤ ɢ ɨɫɬɚɥɚɫɶ ɧɟɩɪɚɜɢɥɶɧɨɣ, ɩɪɢɫɦɨɬɪɢɦɫɹ ɤ ɨɫɬɚɥɶɧɨɦɭ. ɑɬɨɛɵ ɜɨɨɛɳɟ ɩɨɥɭɱɢɬɶ ɜɨɡɦɨɠɧɨɫɬɶ ɪɚɛɨɬɚɬɶ ɫ ɞɪɨɛɹɦɢ, ɧɟɨɛɯɨɞɢɦɨ ɩɨɞɤɥɸɱɢɬɶ ɦɨɞɭɥɶ, ɤɨɬɨɪɵɣ ɧɚɡɵɜɚɟɬɫɹ
. Ⱦɪɨɛɢ ɦɨɝɭɬ ɛɵɬɶ
,
17
235
import fractions. Ⱦɪɨɛɢ ɫɚɦɢ ɫɨɛɨɣ ɧɢɨɬɤɭɞɚ ɧɟ ɜɨɡɧɢɤɚɸɬ, ɧɚɞɨ ɩɢɫɚɬɶ
ɢɦɹ ɦɨɞɭɥɹ ɢ ɢɦɹ ɫɨɡɞɚɸɳɟɣ ɞɪɨɛɶ ɮɭɧɤɰɢɢ, ɝɨɜɨɪɹ ɩɨ-ɞɪɭɝɨɦɭ – ɤɨɧɫɬɪɭɤɬɨɪɚ ɮɭɧɤɰɢɢ. ȼ ɱɺɦ ɩɪɟɢɦɭɳɟɫɬɜɨ ɢɫɩɨɥɶɡɨɜɚɧɢɹ ɞɪɨɛɟɣ? ɗɬɨ ɥɟɝɤɨ ɭɜɢɞɟɬɶ, ɩɪɨɞɟɥɚɜ ɬɟ ɠɟ ɜɵɱɢɫɥɟɧɢɹ, ɧɨ ɫ ɨɛɵɱɧɵɦɢ ɩɥɚɜɚɸɳɢɦɢ ɱɢɫɥɚɦɢ.
afl = 2.0/3.0 bfl = 3.0/5.0
cfl = afl + bfl print afl,bfl,cfl
0.666666666667 0.6 1.26666666667
ɇɟɫɥɨɠɧɨ ɡɚɦɟɬɢɬɶ, ɱɬɨ ɜɫɺ ɩɨɲɥɨ ɧɟ ɬɚɤ. ɍɡɧɚɬɶ ɜ ɡɚɩɢɫɢ ɧɚɬɭɪɚɥɶɧɭɸ ɞɪɨɛɶ
19
ɨɱɟɧɶ ɢ ɨɱɟɧɶ ɧɟɩɪɨɫɬɨ. ɍ ɩɢɬɨɧɨɜɫɤɢɯ
1.26666666667
15
ɧɚɬɭɪɚɥɶɧɵɯ ɞɪɨɛɟɣ ɟɫɬɶ ɟɳɺ ɨɞɧɚ ɨɱɟɧɶ ɢɧɬɟɪɟɫɧɚɹ ɨɫɨɛɟɧɧɨɫɬɶ. Ɉɫɨɛɟɧɧɨɫɬɶ ɫɬɨɥɶ ɠɟ ɢɧɬɟɪɟɫɧɚɹ, ɫɤɨɥɶ ɢ ɛɟɫɩɨɥɟɡɧɚɹ, ɟɫɥɢ ɧɟ ɫɤɚɡɚɬɶ – ɜɪɟɞɧɚɹ. Ⱦɪɨɛɢ ɧɟ ɨɛɹɡɚɬɟɥɶɧɨ ɡɚɞɚɜɚɬɶ ɜ ɤɥɚɫɫɢɱɟɫɤɨɣ ɮɨɪɦɟ – ɫ ɱɢɫɥɢɬɟɥɟɦ ɢ ɡɧɚɦɟɧɚɬɟɥɟɦ. Ɉɛɳɟɩɪɢɧɹɬɨɣ ɹɜɥɹɟɬɫɹ ɢ ɞɟɫɹɬɢɱɧɚɹ ɮɨɪɦɚ. ȼɨɬ ɩɪɢɦɟɪ:
x = fractions.Fraction(0.125) print x
1/8
1
Ⱦɥɹ ɬɟɯ, ɤɬɨ ɡɚɛɵɥ, ɧɚɩɨɦɢɧɚɸ
125.0
. ȼɫɺ ɪɚɛɨɬɚɟɬ ɨɬɥɢɱɧɨ, ɩɨɤɚ.
8
Ɍɟɩɟɪɶ ɪɟɡɤɨ ɭɩɪɨɳɚɟɦ ɡɚɞɚɱɭ, ɧɟ 0.125, ɚ ɜɫɟɝɨ-ɧɚɜɫɟɝɨ 0.1. Ɋɟɡɭɥɶɬɚɬ ɧɟɫɤɨɥɶɤɨ ɫɸɪɩɪɢɡɟɧ:
y = fractions.Fraction(0.1) print y
3602879701896397/36028797018963968
ɇɭ, ɬɨ ɟɫɬɶ, ɟɫɥɢ ɩɨɫɦɨɬɪɟɬɶ ɞɚ ɩɪɢɡɚɞɭɦɚɬɶɫɹ – ɬɨ ɨɧɨ ɝɞɟ-ɬɨ ɬɚɤ ɧɚ ɬɚɤ ɢ ɜɵɣɞɟɬ, ɧɨ ɯɨɬɟɥɨɫɶ ɛɵ ɱɟɝɨ-ɬɨ ɞɪɭɝɨɝɨ, ɫɜɟɬɥɨɝɨ ɢ ɪɚɞɨɫɬɧɨɝɨ – ɢ ɨɞɧɨɡɧɚɱɧɨ ɱɺɬɤɨɝɨ. ɉɪɢɱɢɧɚ ɩɨɧɹɬɧɚ. ȼɵ ɛɟɫɤɨɧɟɱɧɨɟ ɤɨɥɢɱɟɫɬɜɨ ɪɚɡ ɜɫɬɪɟɱɚɥɢ ɭɬɜɟɪɠɞɟɧɢɟ, ɱɬɨ ɱɢɫɥɚ ɜ ɤɨɦɩɶɸɬɟɪɟ ɯɪɚɧɹɬɫɹ ɜ ɞɜɨɢɱɧɨɦ ɜɢɞɟ. Ȼɟɫɤɨɧɟɱɧɨɟ ɤɨɥɢɱɟɫɬɜɨ ɪɚɡ ɜɵ ɷɬɨ ɢɝɧɨɪɢɪɨɜɚɥɢ, ɩɨɬɨɦɭ ɱɬɨ – ɤɚɤɚɹ
236
ɪɚɡɧɢɰɚ? ɗɬɨ ɬɨɬ ɭɧɢɤɚɥɶɧɵɣ ɫɥɭɱɚɣ, ɤɨɝɞɚ ɪɚɡɧɢɰɚ ɟɫɬɶ. ȼ ɧɚɬɭɪɚɥɶɧɵɟ ɞɪɨɛɢ ɢɞɟɚɥɶɧɨ ɩɪɟɨɛɪɚɡɭɸɬɫɹ ɬɨɥɶɤɨ ɬɟ ɱɢɫɥɚ, ɤɨɬɨɪɵɟ ɩɪɟɞɫɬɚɜɢɦɵ ɜ ɧɚɬɭɪɚɥɶɧɵɯ ɞɪɨɛɹɯ ɫ ɡɧɚɦɟɧɚɬɟɥɟɦ, ɹɜɥɹɸɳɢɦɫɹ ɫɬɟɩɟɧɶɸ ɞɜɨɣɤɢ. Ɉɛɞɭɦɚɣɬɟ.
Ⱦɚɥɟɟ ɦɵɫɥɶ ɬɜɨɪɰɨɜ ɉɢɬɨɧɚ – ɢɥɢ ɬɜɨɪɰɚ ɜ ɟɞɢɧɫɬɜɟɧɧɨɦ ɱɢɫɥɟ – ɪɚɡɜɟɬɜɥɹɟɬɫɹ. Ɉɞɧɚ ɜɟɬɜɶ – ɫɭɝɭɛɨ ɩɪɨɝɪɚɦɦɢɫɬɫɤɚɹ, ɞɪɭɝɚɹ – ɱɢɫɬɨ ɦɚɬɟɦɚɬɢɱɟɫɤɚɹ. ɋɧɚɱɚɥɚ ɨ ɦɚɬɟɦɚɬɢɤɟ. ɑɢɫɥɚ ɛɵɜɚɸɬ ɧɚɬɭɪɚɥɶɧɵɟ, ɰɟɥɵɟ, ɪɚɰɢɨɧɚɥɶɧɵɟ, ɞɟɣɫɬɜɢɬɟɥɶɧɵɟ. ȼɫɟɦ ɷɬɢɦ ɦɚɬɟɦɚɬɢɱɟɫɤɢɦ ɩɨɧɹɬɢɹɦ ɟɫɬɶ ɫɨɨɬɜɟɬɫɬɜɢɹ ɜ ɉɢɬɨɧɟ. Ɇɚɬɟɦɚɬɢɤɢ, ɨɞɧɚɤɨ, ɧɚ ɷɬɨɦ ɧɟ ɨɫɬɚɧɨɜɢɥɢɫɶ ɢ ɜɵɞɭɦɚɥɢ ɤɨɦɩɥɟɤɫɧɵɟ ɱɢɫɥɚ. ɑɬɨ ɷɬɨ ɬɚɤɨɟ? ȼɜɟɞɺɦ
1 i
ɨɛɨɡɧɚɱɟɧɢɟ
. ȼɚɦ ɤɬɨ-ɬɨ ɫɤɚɡɚɥ, ɱɬɨ ɢɡ ɨɬɪɢɰɚɬɟɥɶɧɵɯ ɱɢɫɟɥ
ɤɨɪɧɢ ɧɟ ɢɡɜɥɟɤɚɸɬɫɹ? Ɉɧ ɧɟ ɦɚɬɟɦɚɬɢɤ. ȼ ɦɚɬɟɦɚɬɢɤɟ ɜɨɡɦɨɠɧɨ ɜɫɺ, ɥɢɲɶ ɛɵ ɨɧɨ ɧɟ ɜɫɬɭɩɚɥɨ ɜ ɩɪɨɬɢɜɨɪɟɱɢɟ ɫɨ ɜɫɟɦ, ɱɬɨ ɫɨɡɞɚɧɨ ɩɪɟɞɵɞɭɳɢɦɢ ɩɨɤɨɥɟɧɢɹɦɢ ɦɚɬɟɦɚɬɢɤɨɜ. Ɍɟɩɟɪɶ, ɤɨɝɞɚ ɦɵ ɜɜɟɥɢ ɜ ɨɛɪɚɳɟɧɢɟ ɤɨɪɟɧɶ ɢɡ ɦɢɧɭɫ ɟɞɢɧɢɰɵ, ɜɜɟɞɺɦ ɢ ɤɨɦɩɥɟɤɫɧɵɟ ɱɢɫɥɚ ɜɨ ɜɫɟɣ ɢɯ ɤɪɚɫɟ. ȼɨɬ ɬɚɤ ɨɧɢ ɜɵɝɥɹɞɹɬ:
bia , ɝɞɟ a ɢ b – ɫɚɦɵɟ ɨɛɵɱɧɵɟ
ɞɟɣɫɬɜɢɬɟɥɶɧɵɟ (ɩɥɚɜɚɸɳɢɟ) ɱɢɫɥɚ. Ⱥ ɱɬɨ ɦɨɠɧɨ ɞɟɥɚɬɶ ɫ ɤɨɦɩɥɟɤɫɧɵɦɢ ɱɢɫɥɚɦɢ? Ɍɨ ɠɟ ɫɚɦɨɟ, ɱɬɨ ɢ ɫ ɨɛɵɱɧɵɦɢ. ɋɥɨɠɟɧɢɟ ɢ ɜɵɱɢɬɚɧɢɟ:
ibbaaibaiba )()()()(
. ɍɦɧɨɠɟɧɢɟ ɱɭɬɶ ɫɥɨɠɧɟɟ:
21212211
ibaabbbaaibaiba )()()()(
u . ȿɫɥɢ ɹ ɝɞɟ-ɬɨ ɜ ɷɬɨɣ ɟɪɭɧɞɟ
211121212211
ɱɬɨ-ɬɨ ɩɟɪɟɩɭɬɚɥ, ɧɟ ɧɚɞɨ ɦɟɧɹ ɫɭɞɢɬɶ ɫɥɢɲɤɨɦ ɫɬɪɨɝɨ. Ɉɲɢɛɤɢ ɦɨɢ ɪɨɥɢ ɧɟ ɢɝɪɚɸɬ – ɜɫɺ ɪɚɜɧɨ ɜɦɟɫɬɨ ɧɚɫ ɜɫɟ ɷɬɢ ɦɚɧɢɩɭɥɹɰɢɢ ɩɪɨɢɡɜɨɞɢɬ ɉɢɬɨɧ. ȿɫɥɢ ɱɬɨ, ɬɚɦ ɟɫɬɶ ɟɳɺ ɢ ɞɟɥɟɧɢɟ, ɧɨ ɧɚ ɷɬɨ – ɡɚɬɚɥɤɢɜɚɧɢɟ
ɬɚɤɢɯ ɮɨɪɦɭɥ ɜ
ɬɟɤɫɬ – ɹ ɭɠɟ ɧɟ ɫɩɨɫɨɛɟɧ. ɂ ɟɳɺ ɨɞɢɧ ɱɢɫɬɨ ɬɟɪɦɢɧɨɥɨɝɢɱɟɫɤɢɣ ɦɨɦɟɧɬ. ȿɫɥɢ ɜ
bia 0 a , ɬɨ ɨɫɬɚɬɨɤ ɨɬ ɤɨɦɩɥɟɤɫɧɨɝɨ ɱɢɫɥɚ bi ɧɚɡɵɜɚɟɬɫɹ
ɦɧɢɦɨɟ ɱɢɫɥɨ. ȿɫɥɢ, ɧɚɨɛɨɪɨɬ, 0 b , ɬɨ ɦɵ ɩɨɥɭɱɚɟɦ ɯɨɪɨɲɨ ɡɧɚɤɨɦɨɟ,
ɨɧɨ ɠɟ ɞɟɣɫɬɜɢɬɟɥɶɧɨɟ, ɨɧɨ ɠɟ ɩɥɚɜɚɸɳɟɟ, ɱɢɫɥɨ. Ɉɛ ɷɬɨɦ ɧɚɦ ɩɪɢɞɺɬɫɹ ɜɫɩɨɦɧɢɬɶ ɱɭɬɶ ɩɨɡɠɟ.
Ɍɟɩɟɪɶ ɫɨɡɞɚɞɢɦ ɞɜɚ ɤɨɦɩɥɟɤɫɧɵɯ ɱɢɫɥɚ. ɇɚɞ ɝɥɚɝɨɥɨɦ ɞɭɦɚɥ. ȼ ɬɪɚɞɢɰɢɨɧɧɨɦ ɹɡɵɤɟ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ ɹ ɛɵ ɧɚɩɢɫɚɥ
ɫɨɡɞɚɞɢɦ ɹ ɞɨɥɝɨ
ɨɛɴɹɜɢɦ,
ɧɨ ɜ ɉɢɬɨɧɟ ɩɟɪɟɦɟɧɧɵɟ ɧɟ ɨɛɴɹɜɥɹɸɬɫɹ, ɨɧɢ ɢɦɟɧɧɨ ɱɬɨ ɫɨɡɞɚɸɬɫɹ.
x = 1 + 2j y = 3 - 1j
plus = x + y minus = x - y mult = x * y
237
print 'x = ',x,' y = ',y
j
print plus print minus print mult
x = (1+2j) y = (3-1j) (4+1j) (-2+3j) (5+5j)
ɉɟɪɜɨɟ, ɧɚ ɱɬɨ ɫɬɨɢɬ ɨɛɪɚɬɢɬɶ ɜɧɢɦɚɧɢɟ. ɉɢɬɨɧ ɡɞɟɫɶ, ɞɚ ɢ ɜɨ ɦɧɨɝɢɯ ɞɪɭɝɢɯ ɦɟɫɬɚɯ, ɧɟɫɤɨɥɶɤɨ ɧɟɩɨɫɥɟɞɨɜɚɬɟɥɟɧ ɢ ɧɟɩɪɟɞɫɤɚɡɭɟɦ. ȿɫɥɢ ɞɪɨɛɧɵɟ ɱɢɫɥɚ ɦɵ ɫɨɡɞɚɜɚɥɢ ɹɜɧɨ ɢ ɢɦɟɧɧɨ ɤɚɤ ɞɪɨɛɧɵɟ ɱɢɫɥɚ, ɬɨ ɤɨɦɩɥɟɤɫɧɵɟ ɜɨɡɧɢɤɚɸɬ ɤɚɤ-ɬɨ ɫɚɦɢ ɫɨɛɨɣ, ɧɟɢɡɜɟɫɬɧɨ ɨɬɤɭɞɚ. ɏɭɠɟ ɬɨɝɨ, ɤɨɦɩɥɟɤɫɧɵɯ ɱɢɫɟɥ ɜ ɉɢɬɨɧɟ ɢ ɧɟɬ ɤɚɤ ɬɚɤɨɜɵɯ. ɋɬɪɚɧɧɨ, ɧɨ ɷɬɨ ɬɚɤ. ȼ ɉɢɬɨɧɟ ɟɫɬɶ ɬɨɥɶɤɨ ɦɧɢɦɵɟ ɱɢɫɥɚ, ɬɨ ɟɫɬɶ ɱɢɫɥɚ ɜɢɞɚ ɦɚɬɟɦɚɬɢɱɟɫɤɚɹ ɡɚɩɢɫɶ), ɤɨɬɨɪɵɟ ɡɚɩɢɫɵɜɚɸɬɫɹ ɜ ɉɢɬɨɧɟ ɤɚɤ
bi (ɷɬɨ
b
, ɧɚɩɪɢɦɟɪ
j3 . Ⱥ ɤɨɦɩɥɟɤɫɧɨɟ ɱɢɫɥɨ – ɜɫɟɝɨ-ɧɚɜɫɟɝɨ ɫɭɦɦɚ ɞɟɣɫɬɜɢɬɟɥɶɧɨɝɨ ɱɢɫɥɚ ɢ
ɦɧɢɦɨɝɨ ɱɢɫɥɚ, ɬɨ ɟɫɬɶ:
j32 . ɗɬɨ ɧɟ ɹ ɩɪɢɞɭɦɚɥ, ɷɬɨ ɨɧɢ.
ȼɬɨɪɨɟ. Ʉɚɤ-ɬɨ ɬɚɤ ɫɚɦɨ ɫɨɛɨɣ ɩɨɥɭɱɢɥɨɫɶ, ɱɬɨ ɭ ɧɚɫ ɜɨ ɜɫɟɯ ɩɪɢɦɟɪɚɯ ɢɫɯɨɞɧɵɟ ɢ ɪɚɫɱɟɬɧɵɟ ɤɨɦɩɥɟɤɫɧɵɟ ɱɢɫɥɚ ɫɨɫɬɨɹɬ ɬɨɥɶɤɨ ɢɡ ɰɟɥɵɯ ɤɨɦɩɨɧɟɧɬ. Ɋɚɡɭɦɟɟɬɫɹ, ɷɬɨ ɧɟ ɨɛɹɡɚɬɟɥɶɧɨ. Ȼɵɜɚɸɬ ɢ ɞɪɭɝɢɟ ɱɢɫɥɚ:
z = 2**0.5 + 3.14158j print z
(1.41421356237+3.14158j)
Ɇɨɠɧɨ ɩɨɥɭɱɢɬɶ ɤɨɦɩɥɟɤɫɧɨɟ ɱɢɫɥɨ ɫ ɞɪɨɛɧɵɦɢ ɫɨɫɬɚɜɥɹɸɳɢɦɢ ɢ ɟɫɬɟɫɬɜɟɧɧɵɦ ɩɭɬɺɦ – ɩɨɞɟɥɢɜ X ɧɚ Y.
div = x / y print 'div = ', div
div = (0.1+0.7j)
Ʉɫɬɚɬɢ, ɞɥɹ ɥɸɛɨɡɧɚɬɟɥɶɧɵɯ – ɯɨɬɹ ɦɧɢɦɨɟ ɱɢɫɥɨ ɷɬɨ ɫɤɨɥɶɤɨ-ɬɨ ɤɨɪɧɟɣ ɢɡ ɦɢɧɭɫ ɟɞɢɧɢɰɵ, ɬɨ ɟɫɬɶ
13232 u i , ɢɡɜɥɟɱɶ ɤɨɪɟɧɶ ɢɡ ɦɢɧɭɫ
ɟɞɢɧɢɰɵ ɜ ɉɢɬɨɧɟ ɜɫɺ-ɬɚɤɢ ɧɟɥɶɡɹ. ȼɨɬ ɬɚɤɨɣ ɩɚɪɚɞɨɤɫ.
Ɋɚɡɞɟɥ ɩɨɥɭɱɚɟɬɫɹ ɞɨɜɨɥɶɧɨ-ɬɚɤɢ ɞɥɢɧɧɵɦ, ɧɨ ɜɫɺ-ɬɚɤɢ, ɨɱɟɧɶ ɤɪɚɬɤɨ ɟɳɺ ɨɛ ɨɞɧɨɣ ɪɚɡɧɨɜɢɞɧɨɫɬɢ ɱɢɫɟɥ. ɉɨɱɟɦɭ ɨɧɢ ɜɨɨɛɳɟ ɡɞɟɫɶ, ɬɨ ɟɫɬɶ ɜ
238
ɉɢɬɨɧɟ, ɩɪɢɫɭɬɫɬɜɭɸɬ? ɇɟ ɡɧɚɸ, ɱɬɨ ɧɚɡɵɜɚɟɬɫɹ – ɞɚɧɶ ɬɪɚɞɢɰɢɢ. Ɍɨɥɶɤɨ ɛɵɥɨ ɷɬɨ ɨɱɟɧɶ ɞɚɜɧɨ ɢ ɜ ɬɪɚɞɢɰɢɨɧɧɵɯ ɹɡɵɤɚɯ ɨɛ ɷɬɨɦ ɞɚɜɧɨ ɭɠɟ ɡɚɛɵɥɢ. ɗɬɨ ɧɚɡɵɜɚɟɬɫɹ
ɱɢɫɥɚ ɫ ɮɢɤɫɢɪɨɜɚɧɧɨɣ ɬɨɱɧɨɫɬɶɸ. Ɂɞɟɫɶ ɨɩɹɬɶ
ɧɚɱɢɧɚɟɬɫɹ ɞɥɢɧɧɵɣ ɢ ɧɭɞɧɵɣ ɢ ɛɟɫɩɨɥɟɡɧɵɣ ɪɚɡɝɨɜɨɪ ɨ ɬɨɦ, ɱɬɨ ɝɞɟ-ɬɨ ɜɧɭɬɪɢ ɱɢɫɥɚ ɨɧɢ ɜɫɟ ɞɜɨɢɱɧɵɟ. ɉɨɱɬɢ ɜɫɟɝɞɚ, ɪɚɡɝɨɜɨɪ ɷɬɨɬ ɧɢ ɨ ɱɺɦ, ɩɪɨɝɪɚɦɦɢɫɬɭ ɷɬɨɝɨ ɡɧɚɬɶ ɧɟ ɧɭɠɧɨ, ɧɨ ɢɧɨɝɞɚ, ɨɱɟɧɶ ɪɟɞɤɨ,
ɨɧɨ ɜɵɥɟɡɚɟɬ.
Ɇɨɠɧɨ ɹ ɨɩɭɛɥɢɤɭɸ ɡɞɟɫɶ ɫɬɚɪɵɣ ɞɥɢɧɧɵɣ ɡɚɦɲɟɥɵɣ ɫɨɜɟɬɫɤɢɣ ɚɧɟɤɞɨɬ? Ɇɨɠɧɨ? ɋɩɚɫɢɛɨ. Ɉɧ ɜ ɬɨɱɧɨɫɬɢ ɨɩɢɫɵɜɚɟɬ ɧɚɲɭ ɫɢɬɭɚɰɢɸ:
ȼ ɢɫɩɨɥɤɨɦ (ɫɟɣɱɚɫ – ɚɞɦɢɧɢɫɬɪɚɰɢɹ) ɩɪɢɲɥɚ ɠɚɥɨɛɚ: ɇɚɩɪɨɬɢɜ ɦɨɟɝɨ
ɨɤɧɚ ɠɟɧɫɤɚɹ ɛɚɧɹ. Ɇɧɟ ɜɫɟ ɜɢɞɧɨ ɢ ɷɬɨ ɨɬɜɥɟɤɚɟɬ ɦɟɧɹ ɢ ɜɨɨɛɳɟ ɞɟɣɫɬɜɭɟɬ ɧɚ ɦɨɣ ɦɨɪɚɥɶɧɵɣ ɨɛɥɢɤ. ɉɪɨɲɭ ɩɪɟɞɨɫɬɚɜɢɬɶ ɦɧɟ ɧɨɜɭɸ ɤɜɚɪɬɢɪɭ
. ɉɪɢɟɯɚɥɚ ɤɨɦɢɫɫɢɹ, ɫɦɨɬɪɹɬ ɜ ɨɤɧɨ. — ɇɭ ɢ ɱɬɨ? ɇɢɱɟɝɨ ɧɟ ɜɢɞɧɨ! — Ⱥ ɜɵ ɧɚ ɲɤɚɮ ɡɚɥɟɡɶɬɟ! — ɇɭ, ɡɚɥɟɡ, — ɝɨɜɨɪɢɬ ɩɪɟɞɫɟɞɚɬɟɥɶ, — ɜɫɺ ɪɚɜɧɨ ɧɟ ɜɢɞɧɨ! — Ⱦɜɢɝɚɣɬɟɫɶ ɥɟɜɟɟ... — ȼɫɺ ɪɚɜɧɨ ɧɟ ɜɢɞɧɨ! — ȿɳɺ ɥɟɜɟɟ! ɉɪɟɞɫɟɞɚɬɟɥɶ ɞɜɢɝɚɟɬɫɹ ɥɟɜɟɟ ɢ ɩɚɞɚɟɬ. — ȼɨɬ ɜɢɞɢɬɟ! Ⱥ ɹ ɬɚɤ ɰɟɥɵɣ ɞɟɧɶ!
Ʉ ɱɟɦɭ ɷɬɚ ɲɭɬɤɚ? ɉɢɲɟɦ ɜɨɬ ɬɚɤɨɣ ɧɟɫɥɨɠɧɵɣ ɤɨɞ ɢ ɩɨɥɭɱɚɟɦ ɜɨɬ ɬɚɤɨɣ
a = 0.3 + 0.3 + 0.3 - 0.9 print a
-1.11022302463e-16
Ⱦɚɥɟɟ ɧɟɩɪɟɦɟɧɧɨ ɫɥɟɞɭɸɬ ɡɧɚɤɨɦɵɟ ɪɚɡɴɹɫɧɟɧɢɹ, ɱɬɨ ɜɧɭɬɪɢ ɤɨɦɩɶɸɬɟɪɚ ɱɢɫɥɚ ɯɪɚɧɹɬɫɹ ɜ ɞɜɨɢɱɧɨɦ ɜɢɞɟ, ɱɬɨ ɪɟɞɤɨɟ ɞɟɫɹɬɢɱɧɨɟ ɱɢɫɥɨ ɦɨɠɟɬ ɛɵɬɶ ɡɚɩɢɫɚɧɨ ɜ ɞɜɨɢɱɧɨɦ ɜɢɞɟ ɚɤɤɭɪɚɬɧɨ ɢ ɛɟɡ ɦɭɫɨɪɚ ɜ ɯɜɨɫɬɟ ɢ ɬɚɤ ɞɚɥɟɟ ɢ ɬɨɦɭ ɩɨɞɨɛɧɨɟ. ȼɫɺ ɷɬɨ ɚɛɫɨɥɸɬɧɨ ɜɟɪɧɨ, ɧɨ ɩɪɨɞɨɥɠɢɦ ɨɩɵɬɵ:
a = 0.3 + 0.3 - 0.6 print a
a = 0.4 + 0.4 + 0.4 - 0.8
239
print a
a = 0.5 + 0.5 + 0.5 - 1.5 print a
a = 0.15 + 0.15 + 0.15 - 1.45 print a
0.0
0.4
0.0
-1.0
ȿɫɬɶ ɚɛɫɨɥɸɬɧɨ ɞɨɫɬɨɜɟɪɧɚɹ ɢɫɬɨɪɢɹ ɨ ɧɟ ɩɨɦɧɸ ɤɚɤɨɦ-ɬɨ ɡɧɚɦɟɧɢɬɨɦ ɮɢɡɢɤɟ-ɬɟɨɪɟɬɢɤɟ – ɬɨ ɥɢ ɗɣɧɲɬɟɣɧɟ, ɬɨ ɥɢ Ȼɨɪɟ, ɬɨ ɥɢ Ƚɟɣɡɟɧɛɟɪɝɟ. Ɏɢɡɢɤ-ɷɤɫɩɟɪɢɦɟɧɬɚɬɨɪ ɩɨɤɚɡɚɥ ɟɦɭ ɝɪɚɮɢɤ, ɩɨɥɭɱɟɧɧɵɣ ɜ ɪɟɡɭɥɶɬɚɬɟ ɨɩɵɬɨɜ, ɢ ɩɨɩɪɨɫɢɥ ɨɛɴɹɫɧɢɬɶ. ȼɟɥɢɤɢɣ ɮɢɡɢɤ ɥɟɝɤɨ ɨɛɴɹɫɧɢɥ. ɗɤɫɩɟɪɢɦɟɧɬɚɬɨɪ ɢɡɜɢɧɢɥɫɹ ɢ ɩɟɪɟɜɟɪɧɭɥ ɝɪɚɮɢɤ ɜɜɟɪɯ ɧɨɝɚɦɢ. ȼɟɥɢɤɢɣ ɮɢɡɢɤ ɩɨɞɧɚɩɪɹɝɫɹ, ɧɨ ɭɫɩɟɲɧɨ ɨɛɴɹɫɧɢɥ ɫɧɨɜɚ. ə ɧɟ ɢɡ ɜɟɥɢɤɢɯ – ɥɟɝɤɨ ɦɨɝɭ ɨɛɴɹɫɧɢɬɶ ɩɪɢɦɟɪ ɧɨɦɟɪ ɬɪɢ ɢ, ɫ ɛɨɥɶɲɢɦ ɬɪɭɞɨɦ, ɩɪɢɦɟɪ ɧɨɦɟɪ ɞɜɚ. Ʉɫɬɚɬɢ, ɟɫɥɢ ɜɵ ɧɚɩɢɲɢɬɟ ɤɨɞ ɧɟɦɧɨɝɨ ɩɨ-ɞɪɭɝɨɦɭ, ɬɨ ɩɨɥɭɱɢɬɟ ɧɟɦɧɨɝɨ ɞɪɭɝɨɣ ɪɟɡɭɥɶɬɚɬ:
a = 0.4 + 0.4 + 0.4 - 1.2 print a
2.22044604925e-16
Ɇɨɺ ɦɧɟɧɢɟ – ɜɫɺ ɷɬɨ ɞɥɹ ɩɪɨɝɪɚɦɦɢɫɬɚ ɚɛɫɨɥɸɬɧɨ ɧɟɜɚɠɧɨ. ɑɢɫɥɚ, ɫ ɤɨɬɨɪɵɦɢ ɨɧ ɪɚɛɨɬɚɟɬ, ɟɫɥɢ ɷɬɨ ɪɟɚɥɶɧɵɟ ɱɢɫɥɚ ɢ ɩɨɥɭɱɟɧɵ ɢɡ ɪɟɚɥɶɧɨɣ ɠɢɡɧɢ, ɜɫɟɝɞɚ ɧɟɬɨɱɧɵɟ. Ɍɨɱɧɵɟ ɱɢɫɥɚ ɛɵɜɚɸɬ ɢɥɢ ɜ ɮɢɧɚɧɫɨɜɵɯ ɪɚɫɱɺɬɚɯ, ɢɥɢ ɜ ɱɢɫɬɨ ɭɱɟɛɧɵɯ ɡɚɞɚɱɚɯ. Ɏɢɧɚɧɫɨɜɵɟ ɪɚɫɱɺɬɵ ɞɟɥɚɸɬɫɹ ɮɢɧɚɧɫɨɜɵɦɢ ɩɪɨɝɪɚɦɦɚɦɢ, ɷɬɨ ɧɟ ɤɨ ɦɧɟ. Ⱥ ɜɨɬ ɞɥɹ ɱɢɫɬɨ ɧɟ ɡɧɚɸ ɤɚɤɢɯ, ɱɢɬɚɣ – ɭɱɟɛɧɵɯ ɰɟɥɟɣ – ɉɢɬɨɧ ɩɪɟɞɥɚɝɚɟɬ ɪɟɲɟɧɢɟ. ɗɬɨ ɧɟ ɹɜɥɹɟɬɫɹ ɢɡɨɛɪɟɬɟɧɢɟɦ ɉɢɬɨɧɚ, ɷɬɨ ɛɵɥɨ ɞɚɜɧɨ. ɇɨ ɷɬɨ ɛɵɥɨ ɬɚɤ ɞɚɜɧɨ, ɱɬɨ ɜɫɟɦɢ ɭɠɟ ɡɚɛɵɬɨ – ɚ ɜ ɉɢɬɨɧɟ ɟɫɬɶ ɢ ɬɟɩɟɪɶ ɫɦɨɬɪɢɬɫɹ ɤɚɤ ɧɨɜɟɧɶɤɨɟ. ɗɬɨ ɧɚɡɵɜɚɟɬɫɹ
ɱɢɫɥɚ ɫ ɮɢɤɫɢɪɨɜɚɧɧɨɣ ɬɨɱɧɨɫɬɶɸ – ɬɚɤ ɞɥɢɧɧɨ ɨɧɢ
ɧɚɡɵɜɚɸɬɫɹ ɜ ɪɭɫɫɤɢɯ ɩɟɪɟɜɨɞɚɯ, ɜ ɚɧɝɥɢɣɫɤɨɦ ɨɪɢɝɢɧɚɥɟ ɨɧɢ ɩɪɨɫɬɨ
Decimal.
ȼɨɡɶɦɺɦ ɧɚɲ ɩɟɪɜɵɣ ɧɟɯɨɪɨɲɢɣ ɩɪɢɦɟɪ ɢ ɩɟɪɟɩɢɲɟɦ ɟɝɨ ɞɥɹ ɧɨɜɵɯ ɱɢɫɟɥ:
import decimal
240
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]