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

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

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
Ƚɥɚɜɚ ɞɟɫɹɬɚɹ. Ɏɚɣɥɵ ɛɢɧɚɪɧɵɟ
Ȼɢɧɚɪɧɵɟ ɮɚɣɥɵ ɧɚɫɬɨɥɶɤɨ ɜɚɠɧɵ, ɱɬɨ ɩɨɹɜɢɥɚɫɶ ɧɟɨɬɥɨɠɧɚɹ ɧɭɠɞɚ ɜɵɞɟɥɢɬɶ ɢɯ ɜ ɨɬɞɟɥɶɧɭɸ ɝɥɚɜɭ. ȿɫɥɢ ɜɵ ɩɪɨɱɢɬɚɥɢ ɜɫɺ ɩɪɟɞɵɞɭɳɟɟ – ɜɫɺ ɩɪɟɞɵɞɭɳɟɟ ɦɨɠɧɨ ɡɚɛɵɬɶ. ɒɭɱɭ, ɤɨɧɟɱɧɨ. Ɂɚɛɵɜɚɬɶ ɧɢɱɟɝɨ ɧɟ ɧɚɞɨ, ɥɸɛɵɟ ɡɧɚɧɢɹ ɛɟɫɰɟɧɧɵ. Ɍɟɦ ɧɟ ɦɟɧɟɟ, ɜɫɟ ɷɬɢ ɮɚɣɥɵ – ɷɬɨ ɧɟ ɫɨɜɫɟɦ ɧɚɫɬɨɹɳɢɟ ɮɚɣɥɵ. ɇɚɫɬɨɹɳɢɟ ɮɚɣɥɵ – ɬɟ, ɜ ɤɨɬɨɪɵɟ ɩɢɲɭɬɫɹ ɛɢɧɚɪɧɵɟ ɞɚɧɧɵɟ, ɤɚɤ ɨɧɢ ɟɫɬɶ. ɋɤɨɪɟɟ ɜɫɟɝɨ, ɬɚɤɚɹ ɮɨɪɦɭɥɢɪɨɜɤɚ ɜɚɦ ɧɟɩɨɧɹɬɧɚ – ɧɨ ɹ ɨɛɴɹɫɧɸ. ȿɫɥɢ ɜɵ ɩɪɨɩɭɫɬɢɥɢ, ɩɨ ɦɨɟɦɭ ɫɨɜɟɬɭ, ɩɪɟɞɵɞɭɳɢɟ ɪɚɡɞɟɥɵ ɢ ɩɟɪɟɲɥɢ ɫɪɚɡɭ ɫɸɞɚ, ɬɨ ɜɚɦ ɛɭɞɟɬ ɞɚɠɟ ɩɪɨɳɟ.
ɉɨɜɬɨɪɸ ɟɳɺ ɪɚɡ – ɛɢɧɚɪɧɵɣ ɮɚɣɥ ɚɛɫɨɥɸɬɧɨ ɭɧɢɜɟɪɫɚɥɟɧ, ɟɝɨ ɦɨɠɧɨ ɫɨɜɟɪɲɟɧɧɨ ɨɞɧɨɡɧɚɱɧɨ ɩɪɨɱɟɫɬɶ ɜ ɥɸɛɨɣ ɨɩɟɪɚɰɢɨɧɧɨɣ ɫɢɫɬɟɦɟ ɢ ɩɪɢɦɟɧɹɹ ɥɸɛɨɣ ɹɡɵɤ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ.
# ɟɫɬɶ ɧɸɚɧɫɵ, ɤɨɧɟɱɧɨ ȼ ɪɚɡɧɵɯ ɹɡɵɤɚɯ ɢ ɧɚ ɪɚɡɧɵɯ ɩɥɚɬɮɨɪɦɚɯ ɪɚɡɧɢɰɚ, ɤɨɧɟɱɧɨ, ɫɨ ɜɪɟɦɟɧɟɦ ɜɵɥɟɡɚɟɬ. Ʉ ɩɪɢɦɟɪɭ, ɟɫɬɶ ɦɢɧɢɦɭɦ ɞɜɚ ɮɨɪɦɚɬɚ ɡɚɩɢɫɢ ɩɥɚɜɚɸɳɢɯ ɱɢɫɟɥ. ɇɨ ɤ ɬɨɦɭ ɦɨɦɟɧɬɭ, ɤɨɝɞɚ ɩɟɪɟɞ ɜɚɦɢ ɜɨɡɧɢɤɧɭɬ ɬɚɤɢɟ ɩɪɨɛɥɟɦɵ, ɜɵ ɭɠɟ ɛɭɞɟɬɟ ɡɧɚɬɶ, ɤɚɤ ɫ ɧɢɦɢ ɛɨɪɨɬɶɫɹ. # ɤɨɧɟɰ ɇɸɚɧɫɨɜ
ɏɨɬɹ ɹ ɫɱɢɬɚɸ, ɱɬɨ ɛɢɧɚɪɧɵɟ ɞɚɧɧɵɟ – ɷɬɨ ɝɥɚɜɧɵɣ, ɨɫɧɨɜɧɨɣ ɢ ɛɚɡɨɜɵɣ ɮɨɪɦɚɬ ɡɚɩɢɫɢ ɢ ɱɬɟɧɢɹ ɮɚɣɥɨɜ, ɉɢɬɨɧ ɫɱɢɬɚɟɬ ɩɨ-ɞɪɭɝɨɦɭ. ɋ ɬɨɱɤɢ ɡɪɟɧɢɹ ɉɢɬɨɧɚ, ɷɬɨ ɮɨɪɦɚɬ ɜɫɩɨɦɨɝɚɬɟɥɶɧɵɣ ɢ ɪɟɚɥɢɡɨɜɚɧ ɫɨɨɬɜɟɬɫɬɜɟɧɧɨ, ɬɨ ɟɫɬɶ ɧɟ ɨɱɟɧɶ. ɂ ɟɳɺ – ɟɫɥɢ ɜɵ ɛɭɞɟɬɟ ɱɢɬɚɬɶ ɤɧɢɝɢ ɩɨ ɉɢɬɨɧɭ ɢ ɞɚɠɟ ɟɝɨ ɨɮɢɰɢɚɥɶɧɭɸ ɢ ɩɨɥɭɨɮɢɰɢɚɥɶɧɭɸ ɞɨɤɭɦɟɧɬɚɰɢɸ, ɬɨ ɜɟɡɞɟ ɜɫɬɪɟɬɢɬɟ ɭɬɜɟɪɠɞɟɧɢɟ, ɱɬɨ ɷɬɨɬ ɦɟɬɨɞ ɡɚɩɢɫɢ ɩɪɟɞɧɚɡɧɚɱɟɧ ɞɥɹ ɨɛɦɟɧɚ ɞɚɧɧɵɯ ɫ ɹɡɵɤɚɦɢ C ɢ C++. ɗɬɨ, ɤɨɧɟɱɧɨ, ɬɚɤ – ɧɨ ɧɟ ɬɨɥɶɤɨ. ɗɬɨ ɞɚɺɬ ɜɨɡɦɨɠɧɨɫɬɶ ɨɛɦɟɧɢɜɚɬɶɫɹ ɞɚɧɧɵɦɢ ɫ ɤɟɦ ɭɝɨɞɧɨ ɢ ɫ ɱɟɦ ɭɝɨɞɧɨ.
Ɂɚɩɢɫɶ ɢ ɱɬɟɧɢɟ ɛɢɧɚɪɧɨɝɨ ɮɚɣɥɚ
Ɋɟɲɢɦ ɩɪɨɫɬɭɸ ɢ ɛɟɫɫɦɵɫɥɟɧɧɭɸ ɩɪɚɤɬɢɱɟɫɤɢ ɡɚɞɚɱɭ, ɩɨɞɯɨɞɹɳɭɸ ɞɥɹ ɭɱɟɛɧɵɯ ɰɟɥɟɣ. ȿɫɬɶ ɪɚɞɢɭɫ ɤɪɭɝɚ – ɰɟɥɨɟ ɱɢɫɥɨ. ɋɱɢɬɚɟɦ ɩɥɨɳɚɞɶ ɤɪɭɝɚ – ɱɢɫɥɨ, ɧɟɢɡɛɟɠɧɨ, ɞɪɨɛɧɨɟ. Ɂɚɩɢɫɵɜɚɟɦ ɢ ɬɨ, ɢ ɞɪɭɝɨɟ ɜ ɛɢɧɚɪɧɵɣ ɮɚɣɥ. Ɂɚɬɟɦ ɱɢɬɚɟɦ. ɋɧɚɱɚɥɚ ɡɚɩɢɫɶ, ɩɨɞɪɨɛɧɨ ɢ ɫ ɤɨɦɦɟɧɬɚɪɢɹɦɢ:
R = 10 S = 3.1415 * R**2
191
print R, S
import struct
f = open( 'd:/square.bin', 'wb')
data = struct.pack('<i4',R) f.write(data)
data = struct.pack('<f4',S) f.write(data)
f.close()
ɋɧɚɱɚɥɚ ɨɛɹɡɚɬɟɥɶɧɨɟ
import struct – ɩɨɞɤɥɸɱɚɟɦ ɜɧɟɲɧɢɣ ɦɨɞɭɥɶ. ɂɦɹ
ɮɚɣɥɚ, ɪɚɡɭɦɟɟɬɫɹ, ɫɨɜɟɪɲɟɧɧɨ ɩɪɨɢɡɜɨɥɶɧɨ. Ɍɨ, ɱɬɨ ɪɚɫɲɢɪɟɧɢɟ ɢɦɟɧɢ ɢɦɟɧɧɨ
*.bin, ɧɢɤɚɤɨɣ ɪɨɥɢ ɧɟ ɢɝɪɚɟɬ. Ⱥ ɜɨɬ ɩɚɪɚɦɟɬɪ ‘wb’ ɨɱɟɧɶ ɜɚɠɟɧ.
ɂɦɟɧɧɨ ɨɧ ɭɤɚɡɵɜɚɟɬ ɧɚ ɬɨ, ɱɬɨ ɮɚɣɥ ɩɢɲɟɬɫɹ ɧɚ ɡɚɩɢɫɶ, ɱɬɨ ɜɚɦ ɭɠɟ ɩɨɧɹɬɧɨ, ɢ ɱɬɨ ɮɚɣɥ ɛɢɧɚɪɧɵɣ. Ɍɟɩɟɪɶ ɨ ɝɥɚɜɧɨɦ, ɩɪɨɲɭ ɦɚɤɫɢɦɚɥɶɧɨ ɫɨɫɪɟɞɨɬɨɱɢɬɶɫɹ. ȿɫɥɢ ɜɵ ɩɨɣɦɺɬɟ ɫɥɟɞɭɸɳɢɟ ɞɜɟ ɫɬɪɨɤɢ, ɬɨ ɜɵ ɩɨɣɦɺɬɟ ɜɫɺ ɨ ɛɢɧɚɪɧɵɯ ɮɚɣɥɚɯ, ɹ ɧɟ ɲɭɱɭ, ɷɬɨ ɫɟɪɶɺɡɧɨ.
data = struct.pack('<i4',R) f.write(data)
ȼ ɩɟɪɜɨɣ ɫɬɪɨɤɟ ɢɦɟɟɦ ɜɵɡɨɜ ɮɭɧɤɰɢɢ ɢɡ ɦɨɞɭɥɹ Ɏɭɧɤɰɢɹ
pack, ɱɬɨ ɨɱɟɜɢɞɧɨ ɢɡ ɟɺ ɧɚɡɜɚɧɢɹ, ɩɚɤɭɟɬ. ɍ ɧɟɺ ɞɜɚ ɩɚɪɚɦɟɬɪɚ ɢ
struct, ɷɬɨ ɩɨɧɹɬɧɨ.
ɜɨɡɜɪɚɳɚɟɦɨɟ ɡɧɚɱɟɧɢɟ. ɇɚɱɧɺɦ ɫ ɫɚɦɨɝɨ ɩɪɨɫɬɨɝɨ – ɜɬɨɪɨɣ ɩɚɪɚɦɟɬɪ ɩɨ ɢɦɟɧɢ ȼɨɡɜɪɚɳɚɟɦɨɟ ɡɧɚɱɟɧɢɟ ɩɚɪɚɦɟɬɪɚ
R – ɷɬɨ ɬɨ, ɱɬɨ ɧɚɞɨ ɭɩɚɤɨɜɚɬɶ. Ɍɟɩɟɪɶ ɧɟɦɧɨɝɨ ɫɥɨɠɧɟɟ.
data – ɷɬɨ ɬɨ, ɜɨ ɱɬɨ ɦɵ ɭɩɚɤɨɜɚɥɢ ɡɧɚɱɟɧɢɟ
R. Ʉɚɤɨɣ ɬɢɩ ɭ ɩɟɪɟɦɟɧɧɨɣ data ɢ ɱɬɨ ɜ ɬɨɱɧɨɫɬɢ ɭ ɧɟɺ ɜɧɭɬɪɢ,
ɧɚɦ ɫɨɜɟɪɲɟɧɧɨ ɧɟ ɢɧɬɟɪɟɫɧɨ. Ɉɧɚ ɟɫɬɶ, ɢ ɷɬɨ ɜɫɺ. ɉɨɤɚ ɢ ɩɨɱɬɢ.
Ɍɟɩɟɪɶ ɨ ɫɚɦɨɦ ɜɚɠɧɨɦ, ɨ ɩɟɪɜɨɦ ɩɚɪɚɦɟɬɪɟ ɮɭɧɤɰɢɢ
'<i4'. ȼɵɝɥɹɞɢɬ,
ɦɹɝɤɨ ɝɨɜɨɪɹ, ɧɟɜɪɚɡɭɦɢɬɟɥɶɧɨ. ɗɬɚ ɡɚɝɨɝɭɥɢɧɚ ɧɟ ɟɞɢɧɨɟ ɰɟɥɨɟ, ɧɟ ɤɚɤɨɣ-ɬɨ ɢɟɪɨɝɥɢɮ, ɚ ɬɪɢ ɫɨɜɟɪɲɟɧɧɨ ɨɬɞɟɥɶɧɵɯ ɧɟɡɚɜɢɫɢɦɵɯ ɫɢɦɜɨɥɚ. ɉɟɪɜɵɣ ɫɢɦɜɨɥ, ɤɨɬɨɪɵɣ ɡɧɚɤ ɦɟɧɶɲɟ, ɩɪɨɫɬɨ ɞɨɥɠɟɧ ɬɚɦ ɛɵɬɶ. Ɂɚɩɨɦɧɢɬɟ ɢ ɜɫɟɝɞɚ ɟɝɨ ɩɢɲɢɬɟ. Ⱦɥɹ ɥɸɛɨɡɧɚɬɟɥɶɧɵɯ ɛɭɞɟɬ ɪɚɡɴɹɫɧɟɧɢɟ ɞɚɥɶɲɟ. ɋɢɦɜɨɥ
i ɭɤɚɡɵɜɚɟɬ, ɱɬɨ ɦɵ ɯɨɬɢɦ ɭɩɚɤɨɜɚɬɶ ɢɦɟɧɧɨ ɰɟɥɨɟ ɱɢɫɥɨ.
ɐɢɮɪɚ 4 ɨɡɧɚɱɚɟɬ, ɱɬɨ ɦɵ ɯɨɬɢɦ ɭɩɚɤɨɜɚɬɶ ɟɝɨ ɜ ɱɟɬɵɪɟ ɛɚɣɬɚ. ɉɨɱɟɦɭ ɢɦɟɧɧɨ ɜ ɱɟɬɵɪɟ, ɚ ɱɬɨ ɷɬɨ ɡɧɚɱɢɬ ɢ ɤɚɤ ɦɨɠɧɨ ɟɳɺ, ɜɵ ɦɨɠɟɬɟ ɩɪɨɱɢɬɚɬɶ ɜ ɩɪɢɥɨɠɟɧɢɢ. Ɍɚɦ ɠɟ ɜɫɺ ɪɚɫɫɤɚɡɚɧɨ ɢ ɨ ɛɚɣɬɚɯ, ɧɚ ɜɫɹɤɢɣ ɫɥɭɱɚɣ. Ⱥ ɬɟɩɟɪɶ ɨ ɫɚɦɨɦ ɝɥɚɜɧɨɦ – ɜɨɬ ɷɬɨ ɫɚɦɨɟ ɱɢɫɥɨ ɱɟɬɵɪɟ ɢ ɟɫɬɶ ɫɚɦɨɟ ɝɥɚɜɧɨɟ ɜɨ ɜɫɟɣ
192
ɷɬɨɣ ɨɩɟɪɚɰɢɢ. ȿɫɥɢ ɦɵ ɩɨɡɠɟ ɡɚɯɨɬɢɦ ɭɫɩɟɲɧɨ ɩɪɨɱɢɬɚɬɶ ɧɚɲ ɮɚɣɥ, ɬɨ ɞɨɥɠɧɵ ɫɟɣɱɚɫ ɡɚɩɨɦɧɢɬɶ ɷɬɨ ɱɢɫɥɨ ɧɚɢɡɭɫɬɶ. ɗɬɨ ɧɟ ɤɚɤɚɹ-ɬɨ ɨɫɨɛɟɧɧɨɫɬɶ ɉɢɬɨɧɚ. ɗɬɨ ɨɛɳɢɣ ɩɪɢɧɰɢɩ ɪɚɛɨɬɵ ɫ ɛɢɧɚɪɧɵɦɢ ɮɚɣɥɚɦɢ, ɚ 99% ɮɚɣɥɨɜ ɜ ɦɢɪɟ ɛɢɧɚɪɧɵɟ. ɏɨɬɹ, ɫɤɨɪɟɟ ɜɫɟɝɨ, ɹ ɧɟɩɪɚɜ. 99.99%.
ɋɥɟɞɭɸɳɚɹ ɫɬɪɨɤɚ ɩɪɨɝɪɚɦɦɧɨɝɨ ɤɨɞɚ ɜɵɝɥɹɞɢɬ ɫɨɜɟɪɲɟɧɧɨ ɧɟɜɢɧɧɨ. Ɉɧɚ ɡɚɩɢɫɵɜɚɟɬ ɭɩɚɤɨɜɚɧɧɨɟ ɰɟɥɨɟ ɱɢɫɥɨ ɜ ɮɚɣɥ. ɋ ɬɨɱɤɢ ɡɪɟɧɢɹ ɉɢɬɨɧɚ, ɬɭɬ ɞɭɦɚɬɶ ɜɨɨɛɳɟ ɧɟ ɨ ɱɟɦ. ɋ ɬɨɱɤɢ ɡɪɟɧɢɹ ɜɧɟɲɧɟɝɨ ɦɢɪɚ, ɧɚɞɨ ɩɨɞɭɦɚɬɶ ɨ ɬɨɦ, ɱɬɨ ɮɚɣɥ, ɤɨɬɨɪɵɣ ɪɟɚɥɶɧɨ ɢ ɮɢɡɢɱɟɫɤɢ ɨɫɬɚɧɟɬɫɹ ɧɚ ɞɢɫɤɟ ɩɨɫɥɟ ɜɵɩɨɥɧɟɧɢɹ ɧɚɲɟɣ ɩɪɨɝɪɚɦɦɵ, ɫɬɚɥ ɛɨɥɶɲɟ ɧɚ ɱɟɬɵɪɟ ɛɚɣɬɚ. ɋɥɟɞɭɸɳɢɟ ɞɜɟ ɫɬɪɨɤɢ ɜɵɝɥɹɞɹɬ ɨɱɟɧɶ ɩɨɯɨɠɟ, ɨɬɥɢɱɢɟ ɬɨɥɶɤɨ ɜ ɨɞɧɨɣ ɛɭɤɜɟ.
data = struct.pack('<f4',S) f.write(data)
ɗɬɨ ɩɨɧɹɬɧɨ, ɦɵ ɫɧɨɜɚ ɡɚɩɢɫɵɜɚɟɦ ɱɢɫɥɨ, ɬɨɥɶɤɨ ɧɟ ɰɟɥɨɟ, ɚ ɩɥɚɜɚɸɳɟɟ.
f – ɫɨɤɪɚɳɟɧɢɟ ɨɬ float. ɐɢɮɪɚ ɱɟɬɵɪɟ ɫɧɨɜɚ ɩɨɞɫɤɚɡɵɜɚɟɬ, ɱɬɨ ɦɵ
Ȼɭɤɜɚ ɯɨɬɢɦ ɡɚɩɢɫɚɬɶ ɩɥɚɜɚɸɳɟɟ ɱɢɫɥɨ ɜ ɱɟɬɵɪɟɯɛɚɣɬɨɜɨɦ ɮɨɪɦɚɬɟ, ɛɵɜɚɸɬ ɢ ɞɪɭɝɢɟ. ȼ ɪɟɡɭɥɶɬɚɬɟ ɪɚɡɦɟɪ ɧɚɲɟɝɨ ɮɚɣɥɚ ɭɜɟɥɢɱɢɥɫɹ ɧɚ ɱɟɬɵɪɟ ɛɚɣɬɚ ɢ ɞɨɫɬɢɝ ɜɨɫɶɦɢ. ɉɪɨɜɟɪɶɬɟ, ɩɨɠɚɥɭɣɫɬɚ.
Ɍɟɩɟɪɶ ɩɪɨɱɢɬɚɟɦ ɮɚɣɥ. ɑɬɟɧɢɟ ɨɱɟɧɶ ɩɨɯɨɠɟ ɧɚ ɡɚɩɢɫɶ – ɬɨɥɶɤɨ ɜɫɺ ɧɚɨɛɨɪɨɬ.
f = open( 'd:/square.bin', 'rb')
data = f.read(4) R = struct.unpack('<i4',data) print 'R = ', R
data = f.read(4) S = struct.unpack('<f4',data) print 'S = ', S
f.close()
ɋɧɚɱɚɥɚ ɨɱɟɧɶ ɧɨɜɵɣ ɨɩɟɪɚɬɨɪ:
data = f.read(4). Ɉɧ ɨɡɧɚɱɚɟɬ, ɱɬɨ ɦɵ
ɱɢɬɚɟɦ ɮɚɣɥ, ɧɨ ɱɢɬɚɟɦ ɢɡ ɧɟɝɨ ɧɟ ɫɬɪɨɤɭ ɢ ɧɟ ɨɛɴɟɤɬ. Ɇɵ ɱɢɬɚɟɦ ɩɪɨɫɬɨ ɱɟɬɵɪɟ ɛɚɣɬɚ ɜ ɩɟɪɟɦɟɧɧɭɸ
data. ɑɬɨ ɭ ɷɬɨɣ ɩɟɪɟɦɟɧɧɨɣ ɜɧɭɬɪɢ, ɧɚɫ,
ɨɩɹɬɶ-ɬɚɤɢ, ɧɟ ɢɧɬɟɪɟɫɭɟɬ. ɂ ɟɳɺ ɪɚɡ ɨ ɫɚɦɨɦ ɝɥɚɜɧɨɦ – ɦɵ ɞɨɥɠɧɵ ɬɨɱɧɨ ɡɧɚɬɶ, ɱɬɨ ɞɨɥɠɧɵ ɩɪɨɱɢɬɚɬɶ ɢɡ ɮɚɣɥɚ ɢɦɟɧɧɨ
ɱɟɬɵɪɟ ɛɚɣɬɚ. ȿɫɥɢ ɪɚɧɶɲɟ
ɦɵ ɩɚɤɨɜɚɥɢ ɰɟɥɭɸ ɩɟɪɟɦɟɧɧɭɸ, ɬɨ ɬɟɩɟɪɶ ɦɵ ɟɺ ɪɚɫɩɚɤɨɜɵɜɚɟɦ:
193
R = struct.unpack('<i4',data)
ȼɵɝɥɹɞɢɬ ɨɱɟɧɶ ɩɨɯɨɠɟ ɧɚ ɭɩɚɤɨɜɤɭ. ɂ ɟɳɺ ɪɚɡ ɨ ɝɥɚɜɧɨɦ, ɢɡɜɢɧɢɬɟ, ɟɫɥɢ ɭɠɟ ɧɚɞɨɟɥ, ɚ ɜɵ ɜɫɺ ɞɚɜɧɨ ɭɠɟ ɩɨɧɹɥɢ – ɦɵ ɞɨɥɠɧɵ ɨɱɟɧɶ ɱɺɬɤɨ ɩɨɦɧɢɬɶ, ɱɬɨ ɩɪɨɱɢɬɚɧɧɵɟ ɧɚɦɢ ɫɬɪɨɤɨɣ ɪɚɧɶɲɟ ɱɟɬɵɪɟ ɛɚɣɬɚ ɷɬɨ ɢɦɟɧɧɨ ɰɟɥɚɹ ɩɟɪɟɦɟɧɧɚɹ, ɚ ɧɟ ɩɥɚɜɚɸɳɚɹ, ɤ ɩɪɢɦɟɪɭ. Ɍɟɩɟɪɶ ɢɧɬɟɪɟɫɧɚɹ ɨɫɨɛɟɧɧɨɫɬɶ ɱɬɟɧɢɹ, ɨɫɨɛɟɧɧɨɫɬɶ ɷɬɚ, ɦɹɝɤɨ ɝɨɜɨɪɹ, ɫ ɩɟɪɜɨɝɨ ɪɚɡɚ ɧɟɦɧɨɝɨ ɩɭɝɚɟɬ. ȼɵɜɟɞɟɦ ɬɨ, ɱɬɨ ɬɨɥɶɤɨ ɱɬɨ ɩɪɨɱɢɬɚɥɢ.
print 'R = ', R R = (10,)
ɉɪɨɱɢɬɚɧɧɨɟ ɱɢɫɥɨ ɱɢɬɚɟɬɫɹ ɧɟ ɩɪɨɫɬɨ ɬɚɤ, ɚ ɨɛɹɡɚɬɟɥɶɧɨ ɫɬɚɧɨɜɢɬɫɹ ɷɥɟɦɟɧɬɨɦ ɤɨɪɬɟɠɚ. Ʉɨɪɬɟɠ ɢɡ ɨɞɧɨɝɨ ɷɥɟɦɟɧɬɚ, ɩɨɷɬɨɦɭ ɜ ɯɜɨɫɬɟ ɧɟɥɟɩɚɹ ɡɚɩɹɬɚɹ. Ɉɬɤɚɡɚɬɶɫɹ ɨɬ ɷɬɨɝɨ – ɨɬ ɤɨɪɬɟɠɚ – ɧɟɥɶɡɹ. ə ɧɟ ɡɧɚɸ, ɡɚɱɟɦ ɢ ɤɨɦɭ ɷɬɨ ɧɭɠɧɨ. Ɋɚɡɭɦɟɟɬɫɹ, ɫɢɬɭɚɰɢɸ ɦɨɠɧɨ ɢɫɩɪɚɜɢɬɶ, ɧɨ ɬɨɥɶɤɨ ɩɨɬɨɦ:
S = struct.unpack('<f4',data) R_ = R[0] print 'R_ = ', R_ R_ = 10
Ɉɛ ɷɬɨɣ ɫɬɪɚɧɧɨɫɬɢ ɹ ɛɨɥɶɲɟ ɧɚɩɨɦɢɧɚɬɶ ɧɟ ɛɭɞɭ, ɚ ɜɵ ɧɟ ɡɚɛɵɜɚɣɬɟ. Ɍɟɩɟɪɶ ɨɛɟɳɚɧɧɵɟ ɩɨɞɪɨɛɧɨɫɬɢ ɨ ɮɨɪɦɚɬɟ ɡɚɩɢɫɢ ɢ ɱɬɨ ɨɡɧɚɱɚɟɬ ɡɧɚɤ
ɦɟɧɶɲɟ ɢ ɜɨɡɦɨɠɧɵɣ ɧɚ ɟɝɨ ɦɟɫɬɟ ɡɧɚɤ ɛɨɥɶɲɟ.
# ɧɟɧɭɠɧɵɟ ɩɨɞɪɨɛɧɨɫɬɢ ɞɥɹ ɥɸɛɨɡɧɚɬɟɥɶɧɵɯ ȼɨɨɛɳɟ ɝɨɜɨɪɹ, ɩɟɪɜɵɣ ɢ ɧɟ ɨɱɟɧɶ ɩɨɧɹɬɧɵɣ ɩɚɪɚɦɟɬɪ ɦɨɠɧɨ ɭɩɪɨɫɬɢɬɶ, ɜɨɬ ɬɚɤɢɦ ɨɛɪɚɡɨɦ:
data = struct.pack('i',R) R = struct.unpack('i’, data)
ɍɤɚɡɵɜɚɬɶ ɬɢɩ ɫɨɜɟɪɲɟɧɧɨ ɧɟɨɛɯɨɞɢɦɨ, ɚ ɜɨɬ ɞɥɢɧɚ ɜ ɱɟɬɵɪɟ ɛɚɣɬɚ ɛɟɪɺɬɫɹ ɩɪɨɫɬɨ ɩɨ ɭɦɨɥɱɚɧɢɸ. ɗɬɨ ɯɨɪɨɲɚɹ, ɩɨɞɯɨɞɹɳɚɹ ɜɟɥɢɱɢɧɚ. ɋ ɩɟɪɜɵɦ ɫɢɦɜɨɥɨɦ ɫɥɨɠɧɟɟ. ɉɨ ɭɦɨɥɱɚɧɢɸ ɧɚ ɟɝɨ ɦɟɫɬɨ ɩɨɞɫɬɚɜɥɹɟɬɫɹ ɡɧɚɤ ɛɨɥɶɲɟ. ɑɬɨ ɷɬɨ ɨɡɧɚɱɚɟɬ? Ɉɡɧɚɱɚɟɬ ɷɬɨ, ɜ ɤɚɤɨɦ ɩɨɪɹɞɤɟ ɡɚɩɢɫɵɜɚɸɬɫɹ ɱɟɬɵɪɟ ɛɚɣɬɚ ɫɨɫɬɚɜɥɹɸɳɢɟ ɰɟɥɨɟ ɱɢɫɥɨ.
ɑɬɨ ɨɡɧɚɱɚɸɬ ɡɧɚɤɢ ɦɟɧɶɲɟ ɢ ɛɨɥɶɲɟ? ȼɵ ɦɨɠɟɬɟ ɭɡɧɚɬɶ ɩɨɞɪɨɛɧɟɟ ɨ ɛɚɣɬɚɯ ɢ ɨ ɜɧɭɬɪɟɧɧɟɦ ɭɫɬɪɨɣɫɬɜɟ ɩɟɪɟɦɟɧɧɵɯ ɜ ɩɪɢɥɨɠɟɧɢɹɯ, ɡɞɟɫɶ ɨ
194
ɬɨɦ, ɤɬɨ ɢɡ ɧɢɯ ɥɭɱɲɟ. ɐɟɥɨɟ ɢɥɢ ɩɥɚɜɚɸɳɟɟ ɱɢɫɥɨ ɡɚɧɢɦɚɟɬ ɜ ɧɚɲɟɦ ɫɥɭɱɚɟ ɱɟɬɵɪɟ ɛɚɣɬɚ. ȿɫɬɶ ɦɥɚɞɲɢɣ ɛɚɣɬ. ȿɫɬɶ ɫɬɚɪɲɢɣ. Ɂɧɚɤ ɦɟɧɶɲɟ ɭɤɚɡɵɜɚɟɬ, ɱɬɨ ɫɧɚɱɚɥɚ ɩɢɲɟɬɫɹ ɦɥɚɞɲɢɣ ɛɚɣɬ, ɡɧɚɤ ɛɨɥɶɲɟ – ɱɬɨ ɧɚɨɛɨɪɨɬ. ȼ ɞɪɭɝɢɯ, ɬɪɚɞɢɰɢɨɧɧɵɯ ɹɡɵɤɚɯ, ɟɫɥɢ ɧɟ ɢɡɜɪɚɳɚɬɶɫɹ ɫɩɟɰɢɚɥɶɧɨ, ɩɨɪɹɞɨɤ ɡɚɩɢɫɢ – ɨɬ ɦɥɚɞɲɟɝɨ ɤ ɫɬɚɪɲɟɦɭ.
Ɂɚɩɢɫɚɧɧɵɣ ɜ ɉɢɬɨɧɟ ɩɨ ɭɦɨɥɱɚɧɢɸ, ɬɨ ɟɫɬɶ ɫ ɫɢɦɜɨɥɨɦ ɛɨɥɶɲɟ, ɮɚɣɥ ɨɬɥɢɱɧɨ ɩɪɨɱɢɬɚɟɬɫɹ, ɩɪɢ ɭɫɥɨɜɢɢ, ɟɫɥɢ ɱɬɟɧɢɟ ɛɭɞɟɬ ɚɛɫɨɥɸɬɧɨ ɫɢɦɦɟɬɪɢɱɧɵɦ, ɬɨ ɟɫɬɶ ɬɨɠɟ ɫ ɩɪɨɩɭɳɟɧɧɵɦɢ ɫɢɦɜɨɥɚɦɢ ɩɨ ɭɦɨɥɱɚɧɢɸ. ȿɫɬɶ ɬɨɥɶɤɨ ɨɞɧɚ ɦɚɥɟɧɶɤɚɹ ɩɪɨɛɥɟɦɚ – ɩɪɨɱɢɬɚɟɬɫɹ ɨɧ ɧɚɲɟɣ ɩɪɨɝɪɚɦɦɨɣ ɧɚ ɉɢɬɨɧɟ ɢ ɤɟɦ-ɬɨ, ɜɨɡɦɨɠɧɨ, ɟɳɺ. Ȼɨɥɶɲɢɧɫɬɜɨ ɫɬɨɪɨɧɧɢɯ ɩɪɨɝɪɚɦɦ ɧɚɲ ɮɚɣɥ ɧɟ ɩɨɣɦɭɬ. ȼɵɜɨɞ – ɧɟ ɭɦɧɢɱɚɣɬɟ ɢ ɞɟɥɚɣɬɟ ɜ ɬɨɱɧɨɫɬɢ, ɤɚɤ ɹ ɫɤɚɡɚɥ. # ɤɨɧɟɰ ɇɟɧɭɠɧɵɯ ɩɨɞɪɨɛɧɨɫɬɟɣ
ɉɪɨɞɨɥɠɚɟɦ ɪɚɡɝɨɜɨɪ. ɋɧɚɱɚɥɚ ɪɟɲɢɦ ɟɳɺ ɨɞɧɭ ɭɱɟɛɧɭɸ ɡɚɞɚɱɭ, ɚ ɩɨɫɥɟ ɢɡɭɱɢɦ, ɤɚɤ ɩɢɲɭɬɫɹ ɜ ɛɢɧɚɪɧɵɣ ɮɚɣɥ ɞɚɧɧɵɟ ɞɪɭɝɢɯ ɬɢɩɨɜ. Ⱥ ɩɨɬɨɦ ɪɟɲɢɦ ɟɳɺ ɨɞɧɭ ɭɱɟɛɧɭɸ ɡɚɞɚɱɭ, ɧɨ ɭɠɟ ɩɨɱɬɢ ɧɚɫɬɨɹɳɭɸ.
ɍɱɟɛɧɚɹ ɡɚɞɚɱɚ. Ɂɚɩɢɫɚɬɶ – ɢ ɩɪɨɱɢɬɚɬɶ – ɫɥɭɱɚɣɧɨɟ ɱɢɫɥɨ ɫɥɭɱɚɣɧɵɯ ɰɟɥɵɯ ɱɢɫɟɥ. Ɂɚɱɟɦ? Ⱦɚ ɤɚɤɚɹ ɪɚɡɧɢɰɚ! ɇɟɫɦɨɬɪɹ ɧɚ ɧɟɫɤɨɥɶɤɨ ɢɫɤɭɫɫɬɜɟɧɧɵɣ ɯɚɪɚɤɬɟɪ, ɡɚɞɚɱɚ ɢɦɟɟɬ ɢ ɨɱɟɧɶ ɞɚɠɟ ɨɛɵɱɧɵɟ ɩɪɚɤɬɢɱɟɫɤɢɟ ɨɫɨɛɟɧɧɨɫɬɢ. Ɋɟɞɤɨ ɩɪɢɯɨɞɢɬɫɹ ɱɢɬɚɬɶ ɮɚɣɥ, ɡɚɪɚɧɟɟ ɡɧɚɹ, ɱɬɨ ɜ ɧɺɦ ɫɨɞɟɪɠɢɬɫɹ ɪɨɜɧɨ ɞɜɚɞɰɚɬɶ ɬɪɢ ɰɟɥɵɯ ɱɢɫɥɚ. Ƚɨɪɚɡɞɨ ɱɚɳɟ ɦɵ ɫɧɚɱɚɥɚ ɱɢɬɚɟɦ ɢɡ ɮɚɣɥɚ ɱɢɫɥɨ ɱɢɫɟɥ ɜ ɧɺɦ, ɜ ɮɚɣɥɟ, ɡɚɩɢɫɚɧɧɵɯ, ɚ ɩɨɬɨɦ ɜ ɰɢɤɥɟ ɫɚɦɢ ɷɬɢ ɱɢɫɥɚ. ɉɨɧɹɬɧɨ. ɑɬɨ ɜɫɺ ɷɬɨ ɨɪɝɚɧɢɡɨɜɚɧɨ ɦɧɨɝɨ ɢ ɦɧɨɝɨ ɫɥɨɠɧɟɟ, ɧɨ ɢɞɟɹ ɬɚ ɠɟ, ɱɬɨ ɢ ɜ ɧɚɲɟɣ ɭɱɟɛɧɨɣ ɡɚɞɚɱɟ.
ɇɨ ɦɵ ɞɨɩɨɥɧɢɬɟɥɶɧɨ ɩɪɢɛɥɢɡɢɦ ɧɚɲɭ ɭɱɟɛɧɭɸ ɡɚɞɚɱɭ ɤ ɪɟɚɥɶɧɨɣ. Ʉɚɤɚɹ ɩɟɪɜɚɹ ɩɪɨɛɥɟɦɚ ɜɫɬɚɺɬ ɩɟɪɟɞ ɧɚɦɢ ɩɪɢ ɱɬɟɧɢɢ ɥɸɛɨɝɨ ɧɚɦɢ ɡɚɩɢɫɚɧɧɨɝɨ ɮɚɣɥɚ, ɫɬɪɭɤɬɭɪɭ ɤɨɬɨɪɨɝɨ ɦɵ ɨɬɥɢɱɧɨ ɡɧɚɟɦ? ɉɟɪɜɚɹ ɩɪɨɛɥɟɦɚ – ɭɛɟɞɢɬɶɫɹ, ɱɬɨ ɷɬɨ ɞɟɣɫɬɜɢɬɟɥɶɧɨ ɧɚɲ ɮɚɣɥ, ɚ ɧɟ ɩɨɞɫɭɧɭɬɚɹ ɜɪɚɝɚɦɢ ɞɟɲɺɜɚɹ ɤɢɬɚɣɫɤɚɹ ɩɨɞɞɟɥɤɚ. ɑɬɨɛɵ ɨɬɥɢɱɢɬɶ ɧɚɲ ɮɚɣɥ ɨɬ ɩɨɬɭɫɬɨɪɨɧɧɟɝɨ, ɢɫɩɨɥɶɡɭɟɬɫɹ
ɫɢɝɧɚɬɭɪɚ. ɗɬɨ ɧɟ ɤɚɤɨɟ-ɬɨ ɫɜɟɪɯɫɥɨɠɧɨɟ
ɩɨɧɹɬɢɟ. ɗɬɨ ɜɫɟɝɨ-ɧɚɜɫɟɝɨ ɩɨɫɥɟɞɨɜɚɬɟɥɶɧɨɫɬɶ ɫɢɦɜɨɥɨɜ, ɡɚɩɢɫɚɧɧɚɹ ɜ ɧɚɱɚɥɟ ɮɚɣɥɚ. ȿɫɬɶ ɫɢɦɜɨɥɵ – ɡɧɚɱɢɬ ɧɚɲ ɮɚɣɥ. ɇɟɬ – ɡɧɚɱɢɬ ɧɟɬ.
# ɢɧɬɟɪɟɫɧɵɣ ɮɚɤɬ
195
ȿɫɥɢ ɜɵ ɡɚɝɥɹɧɟɬɟ ɜ ɥɸɛɨɣ ɢɫɩɨɥɧɹɟɦɵɣ ɮɚɣɥ, ɬɨɬ, ɤɨɬɨɪɵɣ ɫ ɪɚɫɲɢɪɟɧɢɟɦ *.exe, ɬɨ ɨɛɧɚɪɭɠɢɬɟ ɜ ɧɚɱɚɥɟ ɧɟɤɢɟ ɛɭɤɜɵ MZ. ɗɬɨ ɫɨɤɪɚɳɟɧɢɟ ɨɬ ɢɦɟɧɢ ɢ ɮɚɦɢɥɢɢ Ɇɢɲɚ ɐɭɤɟɪɦɚɧ. ȼɨɬ ɱɟɫɬɧɨɟ ɫɥɨɜɨ. ɂ ɤɚɤ ɬɟɩɟɪɶ ɫ ɷɬɢɦ ɠɢɬɶ? # ɤɨɧɟɰ Ɏɚɤɬɚ
Ʉɚɤ ɡɚɩɢɫɚɬɶ ɢ ɩɪɨɱɢɬɚɬɶ ɫɬɪɨɤɭ
Ɉɞɧɚɤɨ ɞɥɹ ɪɟɚɥɢɡɚɰɢɢ ɷɬɨɣ ɨɩɰɢɢ ɧɚɦ ɧɚɞɨ ɧɚɭɱɢɬɶɫɹ ɡɚɩɢɫɵɜɚɬɶ ɜ ɮɚɣɥ ɬɪɟɬɢɣ, ɩɨɫɥɟ ɰɟɥɵɯ ɢ ɩɥɚɜɚɸɳɢɯ, ɬɢɩ ɞɚɧɧɵɯ – ɫɬɪɨɤɢ. ɋ ɝɥɭɛɨɤɢɦ ɫɨɠɚɥɟɧɢɟɦ, ɞɨɥɠɟɧ ɡɚɦɟɬɢɬɶ, ɱɬɨ ɬɟɯɧɨɥɨɝɢɹ ɡɚɦɟɬɧɨ ɨɬɥɢɱɚɟɬɫɹ, ɢ ɧɟ ɜ ɥɭɱɲɭɸ ɫɬɨɪɨɧɭ. ȼɨɬ ɡɚɩɢɫɶ:
name = 'circle' data = struct.pack('6s',name) f.write(data)
Ɇɵ ɩɪɨɫɬɨ ɪɟɲɢɥɢ ɧɚɩɨɦɧɢɬɶ ɱɢɬɚɬɟɥɸ ɮɚɣɥɚ, ɱɬɨ ɡɚɩɢɫɚɥɢ ɜ ɧɟɝɨ ɱɬɨ-ɬɨ, ɨɬɧɨɫɹɳɟɟɫɹ ɤ ɤɪɭɝɭ. ȿɫɥɢ ɜɵ ɡɚɝɥɹɧɟɬɟ ɜ ɫɨɡɞɚɧɧɵɣ ɮɚɣɥ, ɬɨ ɭɜɢɞɢɬɟ, ɱɬɨ ɨɧ ɭɜɟɥɢɱɢɥɫɹ ɪɨɜɧɨ ɧɚ ɲɟɫɬɶ ɛɚɣɬ – ɱɬɨ ɧɟɭɞɢɜɢɬɟɥɶɧɨ – ɢ ɱɬɨ ɜ ɷɬɢɯ ɲɟɫɬɢ ɛɚɣɬɚɯ ɫɨɞɟɪɠɚɬɫɹ ɲɟɫɬɶ ɛɭɤɜ ɫɥɨɜɚ circle. ɗɬɨ ɦɨɠɧɨ ɭɜɢɞɟɬɶ, ɩɨɫɦɨɬɪɟɜ ɮɚɣɥ ɱɟɦ ɭɝɨɞɧɨ ɜɪɨɞɟ Total Commander ɢɥɢ FAR. ɋɨ ɫɬɪɨɤɚɦɢ, ɨɞɧɚɤɨ, ɟɫɬɶ ɧɟɛɨɥɶɲɚɹ ɩɪɨɛɥɟɦɚ. ȼ ɨɬɥɢɱɢɟ ɨɬ ɰɟɥɵɯ ɢ ɩɥɚɜɚɸɳɢɯ, ɢɯ ɨɱɟɧɶ ɪɟɞɤɨ ɦɨɠɧɨ ɩɪɨɫɬɨ ɬɚɤ ɜɡɹɬɶ ɢ ɩɪɨɱɢɬɚɬɶ. Ɏɚɤɬɢɱɟɫɤɢ ɦɵ ɡɚɩɢɫɚɥɢ ɧɟ ɫɬɪɨɤɭ, ɚ ɲɟɫɬɶ ɫɢɦɜɨɥɨɜ, ɢɡ ɤɨɬɨɪɵɯ ɨɧɚ ɫɨɫɬɨɢɬ. ɇɚɲɚ ɤɧɢɝɚ ɧɟ ɢɧɬɟɪɟɫɭɟɬɫɹ ɞɪɭɝɢɦɢ ɹɡɵɤɚɦɢ, ɬɨɥɶɤɨ ɉɢɬɨɧ, ɩɨɷɬɨɦɭ, ɤɚɤ ɢ ɜɫɟɝɞɚ, ɜɫɺ, ɨɬɧɨɫɹɳɟɟɫɹ ɤ ɞɪɭɝɢɦ ɹɡɵɤɚɦ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ, ɢɞɺɬ ɜ ɩɪɢɥɨɠɟɧɢɹɯ. ɑɢɬɚɣɬɟ ɩɪɢɥɨɠɟɧɢɟ ɨ ɬɨɦ, ɤɚɤ ɱɢɬɚɸɬɫɹ ɛɢɧɚɪɧɵɟ ɮɚɣɥɵ ɜ ɞɪɭɝɢɯ ɹɡɵɤɚɯ.
Ⱥ ɩɨɤɚ ɫɚɦɢ, ɜ ɉɢɬɨɧɟ, ɩɪɨɱɢɬɚɟɦ ɬɨ, ɱɬɨ ɡɚɩɢɫɚɥɢ:
data = f.read(6) name = struct.unpack('<6s',data) print 'name = ', name name = ('circle',)
ȼɫɺ ɛɚɧɚɥɶɧɨ ɢ ɨɠɢɞɚɟɦɨ, ɝɥɚɜɧɨɟ ɩɨɦɧɢɬɶ, ɱɬɨ ɦɵ ɡɚɩɢɫɚɥɢ ɢɦɟɧɧɨ ɲɟɫɬɶ ɛɚɣɬ. ɇɨ ɜɨɬ ɩɪɨɝɪɚɦɦɚ, ɧɚɩɢɫɚɧɧɚɹ ɧɚ ɞɪɭɝɨɦ ɹɡɵɤɟ, ɦɨɠɟɬ ɷɬɨɝɨ ɢ ɧɟ ɩɨɧɹɬɶ. ȼɩɪɨɱɟɦ, ɨɝɨɪɱɚɬɶɫɹ ɧɟ ɧɚɞɨ, ɱɬɨ ɤɚɫɚɟɬɫɹ ɡɚɩɢɫɢ ɢ ɱɬɟɧɢɹ ɫɬɪɨɤ, ɷɬɢ ɫɚɦɵɟ ɧɟ ɩɢɬɨɧɫɤɢɟ ɩɪɨɝɪɚɦɦɵ ɨɛɵɱɧɨ ɞɪɭɝ ɞɪɭɝɚ ɬɨɠɟ ɧɟ ɩɨɧɢɦɚɸɬ.
196
Ɂɚɩɢɫɶ ɢ ɱɬɟɧɢɟ ɪɚɛɨɬɚɸɬ, ɧɨ ɬɟɩɟɪɶ ɧɚɦ ɩɪɢɯɨɞɢɬɫɹ ɡɚɩɨɦɢɧɚɬɶ ɧɟ ɬɨɥɶɤɨ ɬɨ, ɱɬɨ ɦɵ ɩɢɲɟɦ ɜ ɮɚɣɥ ɫɬɪɨɤɭ, ɧɨ ɢ ɬɨ, ɱɬɨ ɟɺ ɞɥɢɧɚ ɢɦɟɧɧɨ ɲɟɫɬɶ ɫɢɦɜɨɥɨɜ. Ɉɬ ɡɚɩɨɦɢɧɚɧɢɹ ɬɨɝɨ, ɱɬɨ ɷɬɨ ɢɦɟɧɧɨ ɫɬɪɨɤɚ, ɦɵ ɢɡɛɚɜɢɬɶɫɹ ɧɟ ɫɦɨɠɟɦ, ɧɨ ɜɨɬ ɫ ɲɟɫɬɶɸ ɫɢɦɜɨɥɚɦɢ ɩɪɨɳɟ. ɇɚɞɨ ɜɵɩɨɥɧɢɬɶ ɧɟɛɨɥɶɲɭɸ ɡɚɦɟɧɭ.
# ɛɵɥɨ data = struct.pack('6s',name) f.write(data)
# ɫɬɚɥɨ data = struct.pack('7p',name) f.write(data)
ɑɬɟɧɢɟ ɬɨɠɟ ɧɟɦɧɨɝɨ ɢɡɦɟɧɢɥɨɫɶ.
data = f.read(7) name = struct.unpack('<7p',data)
# ɩɨɞɪɨɛɧɨɫɬɢ ɞɥɹ ɥɸɛɨɡɧɚɬɟɥɶɧɵɯ Ȼɭɤɜɚ
p ɡɞɟɫɶ ɹɜɥɹɟɬɫɹ ɫɨɤɪɚɳɟɧɢɟɦ ɨɬ ɫɥɨɜɚ Pascal – ɢɦɹ ɹɡɵɤɚ
ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ. ɂɦɟɧɧɨ ɬɚɦ ɢɫɩɨɥɶɡɨɜɚɥɫɹ ɬɚɤɨɣ ɮɨɪɦɚɬ ɡɚɩɢɫɢ ɫɬɪɨɤ. ȼ ɩɪɨɲɟɞɲɟɦ ɜɪɟɦɟɧɢ – ɩɨɬɨɦɭ, ɱɬɨ ɷɬɨ ɧɟ ɬɨɬ Object Pascal, ɤɨɬɨɪɵɣ ɜ ɫɪɟɞɟ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ Ⱦɟɥɶɮɢ, ɚ ɬɨɬ, ɤɨɬɨɪɵɣ ɟɳɺ Turbo Pascal. Ɍɚɦ ɫɬɪɨɤɢ ɢɦɟɥɢ ɨɝɪɚɧɢɱɟɧɢɟ ɜ 255 ɫɢɦɜɨɥɨɜ. ɍɞɢɜɢɬɟɥɶɧɨ ɢɥɢ ɧɟɭɞɢɜɢɬɟɥɶɧɨ, ɧɨ ɜ ɉɢɬɨɧɟ ɞɥɹ ɫɬɪɨɤ, ɡɚɩɢɫɚɧɧɵɯ ɜ ɷɬɨɦ ɪɟɠɢɦɟ, ɞɟɣɫɬɜɭɟɬ ɬɨ ɠɟ ɫɚɦɨɟ ɨɝɪɚɧɢɱɟɧɢɟ. # ɤɨɧɟɰ Ⱦɥɹ
Ɉɛɪɚɬɢɬɟ ɜɧɢɦɚɧɢɟ, ɜɦɟɫɬɨ ɲɟɫɬɺɪɤɢ ɜ ɩɪɨɝɪɚɦɦɧɨɦ ɤɨɞɟ ɹ ɧɚɩɢɫɚɥ ɫɟɦɺɪɤɭ. ɗɬɨ ɜɨɜɫɟ ɧɟ ɨɩɟɱɚɬɤɚ, ɬɚɤ ɧɚɞɨ. ɂ, ɬɨɱɧɨ ɬɚɤ ɠɟ, ɟɫɥɢ ɞɨ ɬɨɝɨ ɭ ɧɚɫ ɪɚɧɶɲɟ ɲɥɚ ɛɭɤɜɚ, ɨɡɧɚɱɚɸɳɚɹ ɮɨɪɦɚɬ, ɚ ɬɨɥɶɤɨ ɩɨɬɨɦ ɟɝɨ ɞɥɢɧɚ ɜ ɛɚɣɬɚɯ, ɬɨ ɬɟɩɟɪɶ ɜɫɺ ɧɚɨɛɨɪɨɬ. Ɍɚɤ ɧɚɞɨ, ɡɚɩɨɦɧɢɬɟ.
ɑɬɨ ɛɭɞɟɬ ɫ ɧɚɲɢɦ ɧɨɜɵɦ ɮɚɣɥɨɦ ɩɨɫɥɟ ɬɚɤɨɣ ɡɚɩɢɫɢ? Ɏɚɣɥ ɭɜɟɥɢɱɢɥɫɹ ɧɚ ɨɞɢɧ ɛɚɣɬ, ɟɝɨ ɞɥɢɧɚ ɬɟɩɟɪɶ ɪɚɜɧɚ ɫɟɦɢ ɢ ɜ ɩɟɪɜɨɦ ɛɚɣɬɟ ɡɚɩɢɫɚɧɚ ɞɥɢɧɚ ɫɬɪɨɤɢ. ȼ ɷɬɨɣ ɞɥɢɧɟ ɫɬɪɨɤɢ ɡɚɩɢɫɚɧɨ ɨɞɧɚɤɨ ɧɟ ɫɟɦɶ, ɚ ɲɟɫɬɶ – ɩɨɬɨɦɭ ɱɬɨ ɷɬɨ ɢ ɟɫɬɶ ɞɥɢɧɚ ɫɬɪɨɤɢ. ɗɬɨ ɧɚɞɨ ɬɜɺɪɞɨ ɭɫɜɨɢɬɶ – ɞɥɢɧɚ ɫɬɪɨɤɢ ɩɪɢ ɬɚɤɨɦ ɫɩɨɫɨɛɟ ɨɬɥɢɱɚɟɬɫɹ ɧɚ ɟɞɢɧɢɰɭ, ɜ ɦɟɧɶɲɭɸ ɫɬɨɪɨɧɭ, ɨɬ ɟɺ ɪɚɡɦɟɪɚ ɜ ɮɚɣɥɟ.
197
ɉɪɢ ɡɚɩɢɫɢ ɜ ɮɚɣɥ ɦɵ ɭɤɚɡɵɜɚɟɦ, ɱɬɨ ɩɢɲɟɦ ɫɟɦɶ ɛɚɣɬ, ɢɥɢ ɫɟɦɶ ɫɢɦɜɨɥɨɜ. ɤɚɤ ɜɚɦ ɷɬɨ ɛɨɥɶɲɟ ɩɨɧɪɚɜɢɬɫɹ. Ȼɚɣɬ ɫ ɞɥɢɧɨɣ ɫɬɪɨɤɢ ɬɨɠɟ ɭɱɢɬɵɜɚɟɬɫɹ. ɑɢɬɚɟɦ ɢɡ ɮɚɣɥɚ ɨɩɹɬɶ-ɬɚɤɢ ɫɟɦɶ ɛɚɣɬ, ɩɨɬɨɦɭ ɱɬɨ ɫɟɦɶ ɢ ɡɚɩɢɫɚɥɢ, ɷɬɨ ɩɨɧɹɬɧɨ. Ⱥ ɜɨɬ ɬɨ, ɱɬɨ ɩɪɢ ɪɚɫɩɚɤɨɜɤɟ ɦɵ ɭɤɚɡɵɜɚɟɦ ɬɨɠɟ ɫɟɦɶ, ɦɧɟ ɤɚɠɟɬɫɹ ɧɟɫɤɨɥɶɤɨ ɧɟɥɨɝɢɱɧɵɦ, ɧɨ ɱɬɨ ɢɦɟɟɦ, ɬɨ ɢɦɟɟɦ. ɗɬɨ ɧɚɞɨ ɩɪɨɫɬɨ ɡɚɩɨɦɧɢɬɶ.
Ʉ ɱɟɦɭ, ɨɞɧɚɤɨ, ɜɫɟ ɷɬɢ ɫɥɨɠɧɨɫɬɢ? ȼ ɱɺɦ ɧɚɝɪɚɞɚ? Ɍɟɩɟɪɶ ɧɚɦ ɧɟ ɧɚɞɨ ɩɨɦɧɢɬɶ ɞɥɢɧɭ ɫɬɪɨɤɢ, ɧɚɦ ɧɚɞɨ ɬɨɥɶɤɨ ɩɨɦɧɢɬɶ ɱɬɨ ɷɬɨ ɢɦɟɧɧɨ ɫɬɪɨɤɚ. ȿɺ ɞɥɢɧɚ ɯɪɚɧɢɬɫɹ ɜ ɮɚɣɥɟ. Ɍɨɱɧɨ ɬɚɤ ɠɟ ɥɸɛɚɹ ɞɪɭɝɚɹ ɩɪɨɝɪɚɦɦɚ ɧɚ ɫɨɜɫɟɦ ɞɪɭɝɨɦ ɹɡɵɤɟ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ, ɱɢɬɚɸɳɚɹ ɧɚɲ ɮɚɣɥ, ɞɨɥɠɧɚ ɬɨɥɶɤɨ ɡɧɚɬɶ, ɱɬɨ ɟɺ ɨɠɢɞɚɟɬ ɞɚɥɟɟ ɢɦɟɧɧɨ ɫɬɪɨɤɚ. ɂ, ɟɳɺ ɪɚɡ, ɫ ɡɚɩɢɫɶɸ ɫɬɪɨɤ ɜ ɮɚɣɥ ɫɢɬɭɚɰɢɹ ɩɪɨɫɬɨ ɛɟɡɨɛɪɚɡɧɚɹ ɜɨ
ɜɫɟɯ ɹɡɵɤɚɯ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ.
ɇɢɱɟɝɨ ɧɟ ɩɨɞɟɥɚɬɶ.
Ɍɟɩɟɪɶ ɦɵ ɩɪɨɱɢɬɚɟɦ ɷɬɨ, ɧɨ ɩɪɟɞɩɨɥɚɝɚɹ, ɱɬɨ ɦɵ ɡɧɚɟɦ ɬɨɥɶɤɨ, ɱɬɨ ɷɬɨ ɫɬɪɨɤ,. ɧɨ ɧɟ ɡɧɚɟɦ, ɫɤɨɥɶɤɨ ɢɦɟɧɧɨ ɜ ɷɬɨɣ ɫɬɪɨɤɟ ɫɢɦɜɨɥɨɜ. ɉɪɨɝɪɚɦɦɚ ɛɭɞɟɬ ɤɨɪɨɬɤɨɣ, ɧɨ ɨɱɟɧɶ ɧɚɫɵɳɟɧɧɨɣ ɧɨɜɵɦɢ ɤɨɧɰɟɩɰɢɹɦɢ ɢ ɩɨɧɹɬɢɹɦɢ.
data = f.read(1) Ls = struct.unpack('<b1', data) form = '<' + str(Ls[0]) + 's' data = f.read(int(Ls[0])) name = struct.unpack( form, data)
Ʉɨɦɦɟɧɬɚɪɢɟɜ ɞɥɹ ɬɚɤɨɝɨ ɤɨɪɨɬɤɨɝɨ ɬɟɤɫɬɚ ɩɨɬɪɟɛɭɟɬɫɹ ɦɧɨɝɨ. ɉɟɪɜɚɹ ɫɬɪɨɤɚ – ɱɢɬɚɟɦ ɨɞɢɧ ɛɚɣɬ. ȼɬɨɪɚɹ ɫɬɪɨɤɚ – ɪɚɫɩɚɤɨɜɵɜɚɟɦ ɟɺ ɜ ɩɟɪɟɦɟɧɧɭɸ. ɉɟɪɟɦɟɧɧɚɹ, ɫɚɦɨ ɫɨɛɨɣ, ɨɮɨɪɦɥɹɟɬɫɹ ɜ ɤɨɪɬɟɠ. Ɍɪɟɬɶɹ ɫɬɪɨɤɚ ɜɚɠɧɟɟ ɢ ɢɧɬɟɪɟɫɧɟɟ. ɋɬɪɨɤɭ ɮɨɪɦɚɬɚ ɦɵ ɧɟ ɡɚɞɚɺɦ ɞɥɹ ɩɨɫɥɟɞɭɸɳɟɣ ɪɚɫɩɚɤɨɜɤɢ ɧɟɩɨɫɪɟɞɫɬɜɟɧɧɨ, ɚ ɮɨɪɦɢɪɭɟɦ ɟɺ, ɱɬɨ ɧɚɡɵɜɚɟɬɫɹ, ɧɚ ɥɟɬɭ. Ⱦɥɹ ɷɬɨɝɨ ɢɡ ɤɨɪɬɟɠɚ ɦɵ ɢɡɜɥɟɤɚɟɦ ɩɟɪɜɵɣ ɷɥɟɦɟɧɬ – ɫ ɧɭɥɟɜɵɦ ɢɧɞɟɤɫɨɦ – ɢ ɩɟɪɟɜɨɞɢɦ ɟɝɨ ɜ ɫɬɪɨɤɭ. ɑɟɬɜɺɪɬɨɣ ɫɬɪɨɤɨɣ ɦɵ ɱɢɬɚɟɦ ɢɡ ɮɚɣɥɚ ɱɢɫɥɨ ɛɚɣɬ, ɤɨɬɨɪɨɟ, ɱɬɨ ɜɚɠɧɨ, ɡɚɪɚɧɟɟ ɧɟ ɢɡɜɟɫɬɧɨ. ɑɢɫɥɨ ɛɚɣɬ ɦɵ ɩɪɢɧɭɞɢɬɟɥɶɧɨ ɭɫɬɚɧɚɜɥɢɜɚɟɦ ɰɟɥɵɦ ɱɢɫɥɨɦ, ɩɨɫɤɨɥɶɤɭ ɜɫɟɦ ɢɡɜɟɫɬɧɨ, ɱɬɨ ɜ ɉɢɬɨɧɟ ɬɢɩɨɜ ɧɟɬ.
Ɉɞɧɚɤɨ ɨɩɹɬɶ-ɬɚɤɢ ɜɫɟɦ ɢɡɜɟɫɬɧɨ, ɱɬɨ ɜ ɉɢɬɨɧɟ ɩɪɟɨɛɪɚɡɨɜɚɧɢɹ ɦɟɠɞɭ ɫɬɪɨɤɚɦɢ ɢ ɱɢɫɥɚɦɢ ɫɚɦɢ ɫɨɛɨɣ ɧɟ ɫɥɭɱɚɸɬɫɹ ɢ ɢɯ ɧɚɞɨ ɞɟɥɚɬɶ ɧɚɫɢɥɶɫɬɜɟɧɧɨ, ɫɜɨɢɦɢ ɫɨɛɫɬɜɟɧɧɵɦɢ ɪɭɤɚɦɢ. ɉɹɬɚɹ ɫɬɪɨɤɚ, ɤ ɫɱɚɫɬɶɸ, ɫɨɜɟɪɲɟɧɧɨ ɨɛɵɱɧɚ.
198
ɍɱɟɛɧɚɹ ɡɚɞɚɱɚ
ɇɚɩɨɦɢɧɚɸ ɫɬɪɭɤɬɭɪɭ ɧɚɲɟɝɨ ɮɚɣɥɚ:
ɋɢɝɧɚɬɭɪɚ. ɉɭɫɬɶ ɷɬɨ ɛɭɞɟɬ ɫɬɪɨɤɚ ɢɡ ɜɨɫɶɦɢ ɫɢɦɜɨɥɨɜ ‘Random ’ Ʉɨɥɢɱɟɫɬɜɨ ɫɥɭɱɚɣɧɵɯ ɱɢɫɟɥ. ɑɟɬɵɪɺɯɛɚɣɬɨɜɨɟ ɰɟɥɨɟ ɋɚɦɢ ɫɥɭɱɚɣɧɵɟ ɱɢɫɥɚ. Ɍɨɠɟ ɱɟɬɵɪɺɯɛɚɣɬɨɜɵɟ ɰɟɥɵɟ
ɉɨɱɟɦɭ ɫɢɝɧɚɬɭɪɚ ɢɦɟɟɬ ɞɥɢɧɭ ɜɨɫɟɦɶ ɛɚɣɬ, ɟɫɥɢ ɢɡ ɧɢɯ ɡɚɧɹɬɵ ɬɨɥɶɤɨ ɲɟɫɬɶ? ɑɬɨɛɵ ɭɞɨɛɧɟɟ ɛɵɥɨ ɫɦɨɬɪɟɬɶ ɧɚ ɮɚɣɥ ɜ ɲɟɫɬɧɚɞɰɚɬɟɪɢɱɧɨɦ ɜɢɞɟ.
Ʉɪɚɫɧɭɸ ɲɚɩɨɱɤɭ ɩɨɦɧɢɬɟ? ɉɨɱɟɦɭ ɭ ɬɟɛɹ ɬɚɤɢɟ ɛɨɥɶɲɢɟ ɝɥɚɡɚ? ɍɲɢ? Ɂɭɛɵ?
ȼɨɬ ɢ ɜ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɢ ɬɨ ɠɟ ɫɚɦɨɟ. Ɇɧɨɝɨɟ ɩɪɨɝɪɚɦɦɢɪɭɟɬɫɹ ɢɦɟɧɧɨ ɬɚɤ, ɚ ɧɟ ɩɨ-ɞɪɭɝɨɦɭ, ɬɨɥɶɤɨ ɞɥɹ ɬɨɝɨ, ɱɬɨɛɵ ɩɨɬɨɦ ɛɵɥɨ ɩɪɨɳɟ ɬɟɫɬɢɪɨɜɚɬɶ, ɨɬɥɚɠɢɜɚɬɶ ɢ ɢɫɩɪɚɜɥɹɬɶ ɨɲɢɛɤɢ. ɗɬɨ ɩɪɢɡɧɚɤ ɯɨɪɨɲɟɝɨ ɩɪɨɝɪɚɦɦɢɫɬɚ, ɩɥɨɯɢɟ ɩɪɨɝɪɚɦɦɢɫɬɵ ɨɛ ɷɬɨɦ ɢ ɧɟ ɞɭɦɚɸɬ. ɂ ɟɳɺ – ɩɪɨɜɟɪɤɭ ɫɢɝɧɚɬɭɪɵ ɨɮɨɪɦɢɦ ɤɚɤ ɮɭɧɤɰɢɸ, ɜɨɡɜɪɚɳɚɸɳɭɸ ɛɭɥɟɜɫɤɨɟ ɡɧɚɱɟɧɢɟ. ɉɪɨɫɬɨ ɱɬɨɛɵ ɧɚɩɨɦɧɢɬɶ, ɤɚɤ ɷɬɨ ɞɟɥɚɟɬɫɹ.
Ⱥ ɬɟɩɟɪɶ ɹ ɨɬɤɪɨɸ ɜɚɦ ɬɚɣɧɭ. ɇɭ ɢɥɢ ɫɚɤɪɚɥɶɧɨɟ ɡɧɚɧɢɟ, ɤɚɤ ɜɚɦ ɛɨɥɶɲɟ ɧɪɚɜɢɬɫɹ. ə ɧɟ ɲɭɱɭ, ɦɧɨɝɢɟ ɩɪɨɝɪɚɦɦɢɫɬɵ ɞɨɯɨɞɹɬ ɞɨ ɷɬɨɝɨ ɝɨɞɚɦɢ, ɜɨ ɜɫɟɯ ɫɦɵɫɥɚɯ
ɞɨɯɨɞɹɬ. ɉɪɨɝɪɚɦɦɚ ɞɨɥɠɧɚ ɛɵɬɶ ɦɚɤɫɢɦɚɥɶɧɨ
ɫɢɦɦɟɬɪɢɱɧɨɣ. ȿɫɥɢ ɦɵ ɡɚɞɭɦɚɥɢ ɧɚɩɢɫɚɬɶ ɮɭɧɤɰɢɸ, ɤɨɬɨɪɚɹ ɱɢɬɚɟɬ ɢ ɩɪɨɜɟɪɹɟɬ ɫɢɝɧɚɬɭɪɭ, ɦɵ ɞɨɥɠɧɵ ɧɟɦɟɞɥɟɧɧɨ ɩɨɞɭɦɚɬɶ ɢ ɨ ɮɭɧɤɰɢɢ, ɤɨɬɨɪɚɹ ɩɢɲɟɬ ɫɢɝɧɚɬɭɪɭ. ɂ ɦɵ ɟɺ ɧɚɩɢɲɟɦ ɬɨɠɟ. Ⱥ ɩɨɱɟɦɭ ɬɨɥɶɤɨ ɩɢɲɟɬ, ɧɨ ɧɟ ɩɪɨɜɟɪɹɟɬ? Ⱥ ɩɨɬɨɦɭ, ɱɬɨ ɦɵ ɚɛɫɨɥɸɬɧɨ ɭɜɟɪɟɧɵ, ɱɬɨ ɧɚ ɷɬɚɩɟ ɡɚɩɢɫɢ ɫɢɝɧɚɬɭɪɚ ɜ ɩɨɥɧɨɦ ɩɨɪɹɞɤɟ. ȼɨɬ ɷɬɢ ɞɜɟ ɮɭɧɤɰɢɢ:
goodSign = 'Random '
def writeSign(f): data = struct.pack('<8s', goodSign) f.write(data)
def checkSign(f): data = f.read(8) sign = struct.unpack( '<8s',data) if sign[0] == goodSign: return True else: return False
Ɍɟɩɟɪɶ ɟɳɺ ɨɞɧɨ ɜɚɠɧɨɟ ɡɧɚɧɢɟ. ȿɫɥɢ ɤɚɤɨɟ-ɬɨ ɡɧɚɱɟɧɢɟ, ɧɟ ɫɨɜɫɟɦ ɬɪɢɜɢɚɥɶɧɨɟ, ɜɪɨɞɟ ɧɭɥɹ ɢɥɢ ɟɞɢɧɢɰɵ, ɢɫɩɨɥɶɡɭɟɬɫɹ ɜ ɩɪɨɝɪɚɦɦɟ ɞɜɚ ɪɚɡɚ
199
ɢɥɢ ɛɨɥɶɲɟ, ɟɝɨ ɧɟ ɪɟɤɨɦɟɧɞɭɟɬɫɹ ɩɢɫɚɬɶ ɜ ɩɪɨɝɪɚɦɦɟ ɤɚɤ ɨɧɨ ɟɫɬɶ. ȼ ɧɚɲɟɦ ɫɥɭɱɚɟ ɷɬɢɦ ɡɧɚɱɟɧɢɟɦ ɹɜɥɹɟɬɫɹ ɫɢɝɧɚɬɭɪɚ
‘Random ’. Ɇɵ ɞɨɥɠɧɵ
ɡɚɜɟɫɬɢ ɫɩɟɰɢɚɥɶɧɭɸ ɩɟɪɟɦɟɧɧɭɸ, ɜ ɤɨɬɨɪɨɦ ɷɬɨ ɡɧɚɱɟɧɢɟ ɯɪɚɧɢɬɫɹ.
# ɪɚɫɲɢɪɟɧɢɟ ɤɪɭɝɨɡɨɪɚ ȼ ɞɪɭɝɢɯ ɹɡɵɤɚɯ ɟɫɬɶ ɬɚɤɨɟ ɩɨɧɹɬɢɟ, ɤɚɤ
ɤɨɧɫɬɚɧɬɚ. ɗɬɨ ɜɵɝɥɹɞɢɬ ɩɨɱɬɢ
ɤɚɤ ɩɟɪɟɦɟɧɧɚɹ, ɫ ɨɞɧɢɦ ɬɨɥɶɤɨ ɨɬɥɢɱɢɟɦ. Ʉɨɧɫɬɚɧɬɭ ɧɟɥɶɡɹ ɢɡɦɟɧɢɬɶ. ȼ ɉɢɬɨɧɟ ɤɨɧɫɬɚɧɬ, ɜ ɬɨɱɧɨɦ ɫɦɵɫɥɟ ɷɬɨɝɨ ɫɥɨɜɚ, ɧɟɬ. ȿɫɥɢ ɜɚɦ ɧɟɩɨɧɹɬɧɨ, ɡɚɱɟɦ ɧɭɠɧɚ ɩɟɪɟɦɟɧɧɚɹ, ɤɨɬɨɪɭɸ ɢɡɦɟɧɢɬɶ ɧɟɥɶɡɹ, ɡɧɚɱɢɬ ɜɵ ɩɨɥɧɨɫɬɶɸ ɩɪɨɧɢɤɥɢɫɶ ɞɭɯɨɦ ɉɢɬɨɧɚ. Ʉɫɬɚɬɢ, ɜ ɧɟɤɨɬɨɪɵɯ ɨɱɟɧɶ ɬɪɚɞɢɰɢɨɧɧɵɯ ɹɡɵɤɚɯ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ ɟɫɬɶ ɟɳɺ ɢ ɤɨɧɫɬɚɧɬɵ, ɡɧɚɱɟɧɢɹ ɤɨɬɨɪɵɯ ɦɨɠɧɨ ɢɡɦɟɧɹɬɶ. # ɤɨɧɟɰ Ɋɚɫɲɢɪɟɧɢɹ
ɉɪɨɝɪɚɦɦɚ ɞɥɹ ɡɚɩɢɫɢ ɢ ɧɚ ɱɬɨ ɜ ɧɟɣ ɨɛɪɚɬɢɬɶ ɜɧɢɦɚɧɢɟ.
f = open( 'd:/rand.bin', 'wb') writeSign(f) howMany = random.randint(1,20) print howMany
L = [] for i in xrange(0,howMany): r = random.randint(1,100) L.append(r) print L
data = struct.pack( '<i4', howMany) f.write(data)
for i in xrange(0,howMany): data = struct.pack( '<i4', L[i]) f.write(data)
f.close()
ȼɨɡɦɨɠɧɨ, ɭ ɜɚɫ ɜɨɡɧɢɤ ɜɨɩɪɨɫ, ɩɨɱɟɦɭ ɜ ɩɪɨɝɪɚɦɦɟ ɞɜɚ ɰɢɤɥɚ – ɨɞɢɧ ɞɥɹ ɝɟɧɟɪɚɰɢɢ ɫɥɭɱɚɣɧɵɯ ɱɢɫɟɥ, ɞɪɭɝɨɣ ɞɥɹ ɢɯ ɡɚɩɢɫɢ. ɉɨɱɟɦɭ ɧɟɥɶɡɹ ɛɵɥɨ ɨɛɴɟɞɢɧɢɬɶ ɜɫɺ ɜ ɨɞɢɧ ɰɢɤɥ? ȼɟɞɶ ɩɪɨɝɪɚɦɦɚ ɫɬɚɥɚ ɛɵ ɤɨɪɨɱɟ? ɗɬɨ ɯɨɪɨɲɢɣ, ɩɪɚɜɢɥɶɧɵɣ ɜɨɩɪɨɫ. ɗɬɨɝɨ ɞɟɥɚɬɶ ɧɟ ɧɚɞɨ ɩɨ ɨɱɟɧɶ ɩɪɨɫɬɨɣ ɩɪɢɱɢɧɟ – ɩɨɬɨɦɭ ɱɬɨ ɷɬɨ ɪɚɡɧɵɟ ɡɚɞɚɱɢ ɢ ɪɚɡɧɵɟ ɩɪɨɰɟɫɫɵ. Ɇɨɠɧɨ ɞɚɠɟ ɜɵɪɚɡɢɬɶɫɹ ɫɢɥɶɧɟɟ – ɟɫɥɢ ɱɬɨ-ɬɨ ɜ ɩɪɨɝɪɚɦɦɟ ɦɨɠɧɨ ɩɨɞɟɥɢɬɶ ɧɚ ɱɚɫɬɢ, ɨɛɹɡɚɬɟɥɶɧɨ ɞɟɥɢɬɟ.
200
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]