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

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

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
ȼɵɱɢɫɥɢɦ ɫɢɧɭɫ. ȼɵɱɢɫɥɢɦ ɧɟ ɩɭɬɺɦ ɜɵɡɨɜɚ ɨɞɧɨɢɦɺɧɧɨɣ ɮɭɧɤɰɢɢ, ɚ ɩɨ-ɧɚɫɬɨɹɳɟɦɭ, ɫɭɦɦɢɪɭɹ ɪɹɞ. ɑɬɨ ɷɬɨ ɡɧɚɱɢɬ. ȿɫɬɶ ɜɨɬ ɬɚɤɚɹ ɮɨɪɦɭɥɚ:
753
xxx
sin
xx
...
!7!5!3
Ɏɨɪɦɭɥɚ ɞɥɹ ɜɵɱɢɫɥɟɧɢɹ ɫɢɧɭɫɚ ɩɨɞɨɡɪɢɬɟɥɶɧɨ ɩɨɯɨɠɚ ɧɚ ɮɨɪɦɭɥɭ ɞɥɹ ɜɵɱɢɫɥɟɧɢɹ ɱɢɫɥɚ ʌ, ɢ ɜ ɷɬɨɦ ɟɫɬɶ ɝɥɭɛɨɤɢɣ ɦɚɬɟɦɚɬɢɱɟɫɤɢɣ ɫɦɵɫɥ, ɨɛ ɷɬɨɦ ɜ ɞɪɭɝɨɣ ɪɚɡ. ɉɪɟɞɟɥ ɫɭɦɦɵ ɷɬɨɝɨ ɪɹɞɚ ɜ ɬɨɱɧɨɫɬɢ ɪɚɜɟɧ ɫɢɧɭɫɭ. ɑɬɨ ɬɚɤɨɟ ɫɭɦɦɚ ɪɹɞɚ? Ʉɨɝɞɚ ɫɤɥɚɞɵɜɚɸɬ ɧɟɫɤɨɥɶɤɨ ɟɝɨ ɱɥɟɧɨɜ – ɞɜɚ, ɞɜɟɫɬɢ ɢɥɢ ɞɜɟɫɬɢ ɬɵɫɹɱ. Ⱥ ɩɪɟɞɟɥ – ɷɬɨ ɤɨɝɞɚ ɫɤɥɚɞɵɜɚɸɬ ɛɟɫɤɨɧɟɱɧɨ ɦɧɨɝɨ ɱɥɟɧɨɜ. Ⱦɥɹ ɧɚɫ ɷɬɢ ɦɚɬɟɦɚɬɢɱɟɫɤɢɟ ɬɨɧɤɨɫɬɢ ɧɟɩɪɢɧɰɢɩɢɚɥɶɧɵ. ɉɪɢɤɢɧɶɬɟ – ɜ ɭɦɟ, ɪɚɡɭɦɟɟɬɫɹ – ɱɟɦɭ ɩɪɢɦɟɪɧɨ ɪɚɜɟɧ ɯɨɬɹ ɛɵ ɞɟɫɹɬɵɣ ɱɥɟɧ ɷɬɨɝɨ ɪɹɞɚ. Ɍɚɤ ɱɬɨ ɩɪɨɫɭɦɦɢɪɭɟɦ ɩɟɪɜɵɟ ɞɜɚɞɰɚɬɶ ɱɥɟɧɨɜ ɢ ɛɭɞɟɦ ɫɱɢɬɚɬɶ ɷɬɨ ɫɢɧɭɫɨɦ. ɑɟɦ ɟɳɺ ɢɧɬɟɪɟɫɟɧ ɷɬɨɬ ɩɪɢɦɟɪ, ɬɚɤ ɷɬɨ ɬɟɦ, ɱɬɨ ɜ ɮɨɪɦɭɥɟ ɩɪɢɫɭɬɫɬɜɭɟɬ ɮɚɤɬɨɪɢɚɥ. Ⱦɥɹ ɧɟɝɨ ɦɵ ɬɨɥɶɤɨ ɱɬɨ ɡɚɩɪɨɝɪɚɦɦɢɪɨɜɚɥɢ ɮɭɧɤɰɢɸ, ɬɚɤ ɱɬɨ ɬɟɩɟɪɶ ɧɚɲɚ ɧɨɜɚɹ ɮɭɧɤɰɢɹ ɛɭɞɟɬ ɨɛɪɚɳɚɬɶɫɹ ɤ ɧɚɲɟɣ ɫɬɚɪɨɣ.
Ʉɚɤ ɜɨɨɛɳɟ ɩɪɨɝɪɚɦɦɢɪɭɸɬ ɬɚɤɨɝɨ ɪɨɞɚ ɜɟɳɢ, ɬɨ ɟɫɬɶ ɫɜɹɡɚɧɧɵɟ ɫ ɪɹɞɚɦɢ? Ɉɱɟɧɶ ɠɟɥɚɬɟɥɶɧɨ ɡɚɩɢɫɚɬɶ ɜɵɪɚɠɟɧɢɟ ɞɥɹ ɨɛɳɟɝɨ ɱɥɟɧɚ ɪɹɞɚ, ɬɨ ɟɫɬɶ ɮɨɪɦɭɥɭ, ɩɨ ɤɨɬɨɪɨɣ, ɡɧɚɹ ɧɨɦɟɪ ɪɹɞɚ N, ɦɨɠɧɨ ɫɪɚɡɭ ɨɩɪɟɞɟɥɢɬɶ ɱɥɟɧ ɪɹɞɚ ɫ ɧɨɦɟɪɨɦ N. ɉɨɫɥɟ ɷɬɨɝɨ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɟ ɫɬɚɧɨɜɢɬɫɹ ɷɥɟɦɟɧɬɚɪɧɨɣ ɡɚɞɚɱɟɣ. Ⱦɥɹ ɧɚɱɚɥɚ, ɩɨɫɤɨɥɶɤɭ ɩɟɪɜɵɣ ɱɥɟɧ ɪɹɞɚ ɜɵɝɥɹɞɢɬ ɤɚɤ-ɬɨ ɧɟ ɤɚɤ ɜɫɟ, ɩɟɪɟɩɢɲɟɦ ɟɝɨ ɩɨ ɨɛɳɟɦɭ ɨɛɪɚɡɰɭ.
7531
xxxx
sin
x
...
Ɍɚɤ ɩɨɧɹɬɧɟɟ ɢ ɥɟɝɱɟ ɞɨɝɚɞɚɬɶɫɹ ɨɛ ɨɛɳɟɣ
!7!5!3!1
12
N
ɮɨɪɦɭɥɟ:
x
a
N
. Ɍɟɩɟɪɶ ɦɨɠɧɨ ɢ ɩɪɨɝɪɚɦɦɢɪɨɜɚɬɶ.
)!12(
N
def ourSin( x ): result = 0 for N in xrange(1,20): result = result + (x**(2*N-1))/Fuct(2*N-1) return result
x = 0.5 f = ourSin(x) print 'sin(', x, ') = ', f
141
Ɋɟɡɭɥɶɬɚɬ ɜɚɦ ɩɨɧɪɚɜɢɥɫɹ? Ⱦɚ ɢɥɢ ɧɟɬ? Ⱥ ɜɵ ɡɚɩɭɫɤɚɥɢ ɩɪɨɝɪɚɦɦɭ, ɜɨɬ ɱɟɫɬɧɨ, ɜɟɞɶ ɧɟɬ? ə ɨɱɟɧɶ ɱɟɫɬɧɵɣ, ɢ ɟɫɥɢ, ɧɟ ɩɪɨɜɟɪɹɹ, ɩɨɦɟɫɬɢɥ ɜ ɤɧɢɝɭ ɩɪɨɝɪɚɦɦɭ, ɚ ɜ ɧɟɣ ɨɲɢɛɤɚ, ɬɨ ɹ ɜ ɷɬɨɦ ɩɪɢɡɧɚɸɫɶ ɢ ɞɚɠɟ ɪɚɫɫɤɚɡɵɜɚɸ, ɤɚɤ ɹ ɷɬɭ ɨɲɢɛɤɭ ɢɫɤɚɥ. ȼɫɟɝɞɚ ɩɨɥɟɡɧɟɟ ɭɱɢɬɶɫɹ ɧɚ ɱɭɠɢɯ ɨɲɢɛɤɚɯ. Ⱥ ɱɬɨ ɨɲɢɛɤɚ ɡɞɟɫɶ ɟɫɬɶ, ɹ ɞɨɝɚɞɚɥɫɹ, ɭɜɢɞɟɜ ɨɬɜɟɬ. Ɉɬɜɟɬ ɩɨɥɭɱɢɥɫɹ ɬɚɤɢɦ, ɫɪɚɜɧɢɬɟ ɟɝɨ ɫ ɩɨɥɭɱɟɧɧɵɦ ɨɬ ɭɠɟ ɝɨɬɨɜɨɝɨ, ɩɢɬɨɧɫɤɨɝɨ ɫɢɧɭɫɚ:
sin( 0.5 ) = 0.521095305494
ȼɵ, ɤɨɧɟɱɧɨ, ɭɠɟ ɧɚɲɥɢ ɨɲɢɛɤɭ, ɩɪɢɱɺɦ ɫɪɚɡɭ. Ⱥ ɹ ɧɟɬ. ɋɧɚɱɚɥɚ ɹ ɩɨɞɭɦɚɥ, ɱɬɨ ɪɹɞ ɨɱɟɧɶ ɦɟɞɥɟɧɧɨ ɫɯɨɞɢɬɫɹ ɢ ɧɚɞɨ ɩɨɞɛɚɜɢɬɶ ɜ ɫɭɦɦɭ ɱɥɟɧɨɜ, ɤ ɩɪɢɦɟɪɭ ɞɨ ɫɬɚ. ɉɪɢ ɩɨɩɵɬɤɟ ɩɨɞɛɚɜɢɬɶ ɉɢɬɨɧ ɪɚɡɭɦɧɨ ɨɬɜɟɬɢɥ, ɱɬɨ 100! – ɷɬɨ ɫɥɢɲɤɨɦ ɢ ɜɵɱɢɫɥɟɧɢɸ ɧɟ ɩɨɞɥɟɠɢɬ. ɉɨɫɥɟ ɱɟɝɨ ɹ ɧɟɦɟɞɥɟɧɧɨ ɡɚɦɟɬɢɥ, ɱɬɨ ɪɹɞ ɞɥɹ ɫɢɧɭɫɚ ɡɧɚɤɨɩɟɪɟɦɟɧɧɵɣ, ɬɨ ɟɫɬɶ ɟɝɨ ɱɥɟɧɵ ɦɟɧɹɸɬ ɡɧɚɤ ɫ ɩɥɸɫɚ ɧɚ ɦɢɧɭɫ ɢ ɨɛɪɚɬɧɨ. ɂɫɩɪɚɜɢɥ ɨɞɧɭ ɫɬɪɨɤɭ ɢ ɩɨɥɭɱɢɥ ɧɨɜɵɣ ɪɟɡɭɥɶɬɚɬ.
result = result + (-1)**(N+1)*(x**(2*N-1))/Fuct(2*N-1)
sin( 0.5 ) = 0.479425538604
Ƚɨɪɚɡɞɨ ɥɭɱɲɟ. Ɂɚɞɭɦɚɣɬɟɫɶ – ɚ ɧɭɠɧɨ ɥɢ ɜɵɱɢɫɥɹɬɶ ɞɜɚɞɰɚɬɶ ɱɥɟɧɨɜ ɪɹɞɚ? Ɋɚɡɭɦɟɟɬɫɹ, ɞɥɹ ɭɱɟɛɧɨɣ ɩɪɨɝɪɚɦɦɵ ɷɬɨ ɧɟɜɚɠɧɨ, ɧɨ ɜɧɭɬɪɢ ɬɨɝɨ ɫɢɧɭɫɚ, ɤɨɬɨɪɵɣ ɜ ɉɢɬɨɧɟ, ɜɟɞɶ ɬɨɠɟ ɧɚɯɨɞɢɬɫɹ ɱɬɨ-ɬɨ ɩɨɞɨɛɧɨɟ. ȼɨɩɪɨɫ ɨ ɬɨɦ, ɫɤɨɥɶɤɨ ɠɟ ɱɥɟɧɨɜ ɫɭɦɦɢɪɨɜɚɬɶ, ɧɚ ɫɚɦɨɦ ɞɟɥɟ ɱɪɟɡɜɵɱɚɣɧɨ ɫɥɨɠɟɧ. Ɉɧ ɪɚɫɫɦɚɬɪɢɜɚɟɬɫɹ ɜ ɨɞɧɨɦ ɢɡ ɪɚɡɞɟɥɨɜ ɜɵɫɲɟɣ ɦɚɬɟɦɚɬɢɤɢ, ɜɵɱɢɫɥɢɬɟɥɶɧɨɣ ɦɚɬɟɦɚɬɢɤɟ. ȼɵ ɭɠɟ ɡɚɦɟɬɢɥɢ, ɱɬɨ ɰɢɤɥ ɛɭɞɟɬ ɜɵɩɨɥɧɹɬɶɫɹ ɧɟ ɞɜɚɞɰɚɬɶ, ɚ ɬɨɥɶɤɨ ɞɟɜɹɬɧɚɞɰɚɬɶ ɪɚɡ. ȼ ɫɜɟɬɟ ɜɫɟɝɨ ɫɤɚɡɚɧɧɨɝɨ ɜɵɲɟ – ɞɚ ɤɚɤɚɹ ɪɚɡɧɢɰɚ? Ɍɟɩɟɪɶ ɨ ɜɚɠɧɨɦ. ɂɫɯɨɞɧɵɣ ɤɨɞ ɨɛɟɢɯ ɮɭɧɤɰɢɣ, ɢ ɮɚɤɬɨɪɢɚɥɚ, ɢ ɫɢɧɭɫɚ, ɞɨɥɠɟɧ ɧɚɯɨɞɢɬɶɫɹ ɜ ɨɞɧɨɦ ɮɚɣɥɟ, ɱɬɨ-ɬɨ ɜɪɨɞɟ theBestSinus.py. ɇɨ ɷɬɨ ɬɨɥɶɤɨ ɩɨɤɚ. ȼ ɪɟɚɥɶɧɵɯ ɩɪɨɝɪɚɦɦɚɯ ɤɨɞɵ ɱɚɫɬɨ ɩɪɢɦɟɧɹɟɦɵɯ ɮɭɧɤɰɢɣ ɨɛɵɱɧɨ ɜɵɧɨɫɹɬɫɹ ɜ ɨɬɞɟɥɶɧɵɣ ɮɚɣɥ. ȼ ɉɢɬɨɧɟ – ɢ ɜ ɞɪɭɝɢɯ ɹɡɵɤɚɯ – ɷɬɨ ɧɚɡɵɜɚɟɬɫɹ ɦɨɞɭɥɶ. Ɇɵ ɷɬɢɦ ɫɤɨɪɨ ɡɚɣɦɺɦɫɹ.
ɂ ɟɳɺ ɨɞɢɧ, ɧɟ ɩɨɛɨɸɫɶ ɷɬɨɝɨ ɫɥɨɜɚ, ɞɭɪɚɰɤɢɣ ɜɨɩɪɨɫ. ȿɫɥɢ ɦɵ ɢɫɩɨɥɶɡɭɟɦ ɮɭɧɤɰɢɸ ɜ ɤɚɱɟɫɬɜɟ ɩɟɪɟɦɟɧɧɨɣ, ɬɨ ɟɫɬɶ ɫɩɪɚɜɚ ɨɬ ɨɩɟɪɚɬɨɪɚ ɩɪɢɫɜɚɢɜɚɧɢɹ ɢɥɢ ɜ ɨɩɟɪɚɬɨɪɟ ɩɟɱɚɬɢ, ɬɨ ɱɬɨ ɦɵ ɩɨɥɭɱɢɦ? ɉɪɚɜɢɥɶɧɨ, ɬɨ ɱɬɨ ɨɧɚ ɜɨɡɜɪɚɳɚɟɬ ɜ ɨɩɟɪɚɬɨɪɟ
return. Ⱥ ɱɬɨ, ɟɫɥɢ ɟɝɨ ɧɟɬ ɜɨɨɛɳɟ?
Ɍɜɨɪɰɵ ɉɢɬɨɧɚ ɨɛ ɷɬɨɦ ɭɠɟ ɩɨɞɭɦɚɥɢ, ɜɨɬ ɨɬɜɟɬ:
142
def nothing(): print 'do nothing'
xxx = nothing() print 'xxx = ', xxx
do nothing xxx = None
ɗɬɨ ɫɚɦɨɟ
None ɜɨɜɫɟ ɧɟ ɨɡɧɚɱɚɟɬ, ɱɬɨ ɫɥɭɱɢɥɚɫɶ ɤɚɤɚɹ-ɬɨ ɨɲɢɛɤɚ. ɗɬɨ
ɫɩɟɰɢɚɥɶɧɨɟ ɡɧɚɱɟɧɢɟ, ɤɨɬɨɪɨɟ ɮɭɧɤɰɢɹ ɜɨɡɜɪɚɳɚɟɬ, ɤɨɝɞɚ ɨɧɚ ɧɢɱɟɝɨ ɧɟ ɜɨɡɜɪɚɳɚɟɬ. Ʉɚɤɨɣ ɜ ɧɟɣ ɫɦɵɫɥ ɢ ɤɚɤ ɷɬɭ ɩɟɪɟɦɟɧɧɭɸ ɦɨɠɧɨ ɢɫɩɨɥɶɡɨɜɚɬɶ, ɨɛɞɭɦɚɣɬɟ ɫɚɦɢ.
ȿɳɺ ɨ ɮɭɧɤɰɢɹɯ
Ɏɭɧɤɰɢɢ ɦɨɝɭɬ ɜɨɡɜɪɚɳɚɬɶ ɧɟ ɬɨɥɶɤɨ ɱɢɫɥɨɜɵɟ ɡɧɚɱɟɧɢɹ. ɉɨɦɧɢɬɟ ɜɨɬ ɷɬɭ, ɨɱɟɧɶ ɝɥɭɛɨɤɨɦɵɫɥɟɧɧɭɸ?
def odin(): print 'Ɉɞɢɧ ɹ ɭɦɧɵɣ ɜ ɛɟɥɨɦ ɩɚɥɶɬɨ ɫɬɨɸ ɤɪɚɫɢɜɵɣ'
print 'Ɉɬɝɨɜɨɪɢɥɚ ɪɨɳɚ ɡɨɥɨɬɚɹ' odin()
ɇɟɬ, ɤ ɫɨɞɟɪɠɚɧɢɸ ɜɨɩɪɨɫɨɜ ɧɟɬ, ɜɨɩɪɨɫɵ ɤ ɮɨɪɦɟ. Ɍɚɤɨɟ ɟɺ ɩɪɢɦɟɧɟɧɢɟ ɜɵɝɥɹɞɢɬ ɧɟɫɤɨɥɶɤɨ ɧɟɭɤɥɸɠɟ. Ɂɚɦɟɧɢɦ ɫɬɚɪɭɸ ɮɭɧɤɰɢɸ ɧɚ ɧɨɜɭɸ, ɜɨɡɜɪɚɳɚɸɳɭɸ ɡɧɚɱɟɧɢɟ.
def odin( s ): result = s + '\nɈɞɢɧ ɹ ɭɦɧɵɣ ɜ ɛɟɥɨɦ ɩɚɥɶɬɨ ɫɬɨɸ ɤɪɚɫɢɜɵɣ' return result
print odin( 'ɑɟɬɜɺɪɬɵɟ ɫɭɬɤɢ ɩɵɥɚɸɬ ɫɬɚɧɢɰɵ')
ɑɟɬɜɺɪɬɵɟ ɫɭɬɤɢ ɩɵɥɚɸɬ ɫɬɚɧɢɰɵ Ɉɞɢɧ ɹ ɭɦɧɵɣ ɜ ɛɟɥɨɦ ɩɚɥɶɬɨ ɫɬɨɸ ɤɪɚɫɢɜɵɣ
Ɉɰɟɧɢɬɟ ɷɤɪɚɧɢɪɨɜɚɧɧɭɸ ɩɨɫɥɟɞɨɜɚɬɟɥɶɧɨɫɬɶ ɜ ɧɚɱɚɥɟ ɞɨɛɚɜɥɹɟɦɨɣ ɫɬɪɨɤɢ. ȼɵ ɜɟɞɶ ɩɨɦɧɢɬɟ, ɱɬɨ ɬɚɤɨɟ ɷɤɪɚɧɢɪɨɜɚɧɧɚɹ ɩɨɫɥɟɞɨɜɚɬɟɥɶɧɨɫɬɶ? Ɍɟɩɟɪɶ ɩɪɢɦɟɪ ɱɭɬɶ ɩɪɨɳɟ, ɢɥɢ ɱɭɬɶ ɫɥɨɠɧɟɟ. Ɏɭɧɤɰɢɹ ɜɨɡɜɪɚɳɚɟɬ ɥɨɝɢɱɟɫɤɨɟ ɡɧɚɱɟɧɢɟ, ɬɨ ɟɫɬɶ ɞɚ ɢɥɢ ɧɟɬ. Ɉɬɜɟɱɚɬɶ ɬɚɤɢɦ ɨɛɪɚɡɨɦ ɮɭɧɤɰɢɹ ɛɭɞɟɬ ɧɚ ɜɨɩɪɨɫ əɜɥɹɟɬɫɹ ɥɢ ɱɢɫɥɨ ɩɪɨɫɬɵɦ?
143
def prime( n ) : result = True for i in xrange( 2, int(n**0.5)+1): if n % i == 0: result = False break return result
print prime(18) print prime(19)
False True
Ⱦɥɹ ɱɟɝɨ ɩɥɸɫ ɨɞɢɧ? Ⱥ ɞɥɹ ɧɚɞɺɠɧɨɫɬɢ. Ɉɛɞɭɦɚɣɬɟ. Ɉɞɧɚɤɨ ɮɭɧɤɰɢɢ ɦɨɝɭɬ ɜɨɡɜɪɚɳɚɬɶ ɢ ɛɨɥɟɟ ɫɥɨɠɧɵɟ ɬɢɩɵ ɞɚɧɧɵɯ, ɧɚɩɪɢɦɟɪ ɫɩɢɫɤɢ. Ɋɟɲɢɦ ɩɪɨɫɬɭɸ, ɛɟɡɨ ɜɫɹɤɨɣ ɦɚɬɟɦɚɬɢɤɢ, ɡɚɞɚɱɭ. ȿɫɬɶ ɫɩɢɫɨɤ, ɜ ɧɺɦ ɜɫɹɤɨɟ ɪɚɡɧɨɟ. ɉɭɫɬɶ ɜ ɧɺɦ ɨɫɬɚɧɭɬɫɹ ɬɨɥɶɤɨ ɰɟɥɵɟ ɱɢɫɥɚ. Ɍɨ ɟɫɬɶ ɡɚɝɨɬɨɜɤɚ ɮɭɧɤɰɢɢ, ɟɺ ɜɵɡɨɜ ɢ ɟɺ ɪɟɡɭɥɶɬɚɬ ɞɨɥɠɧɵ ɜɵɝɥɹɞɟɬɶ ɬɚɤ:
def onlyNums( L ): # ɱɬɨ-ɬɨ ɬɚɦ
a = [1,2,3, 'ɫɨɛɚɱɤɚ Ɇɭɦɭ', True, 3.1415, 7] a = onlyNums(a) print a
[1, 2, 3, 7]
Ɍɚɤ ɜɨɬ, ɷɬɭ ɩɪɨɫɬɟɣɲɭɸ ɡɚɞɚɱɭ ɦɵ ɡɚɩɪɨɝɪɚɦɦɢɪɭɟɦ ɬɪɟɦɹ ɫɩɨɫɨɛɚɦɢ – ɨɞɧɢɦ ɧɟɩɪɚɜɢɥɶɧɵɦ ɢ ɞɜɭɦɹ ɩɪɚɜɢɥɶɧɵɦɢ. ɗɬɨ ɧɟ ɩɨɬɨɦɭ, ɱɬɨ ɹ ɧɟ ɡɧɚɸ, ɱɟɝɨ ɛɵ ɦɧɟ ɟɳɺ ɧɚɩɢɫɚɬɶ. ɗɬɨ ɩɨɬɨɦɭ, ɱɬɨ ɜ ɷɬɭ ɡɚɩɚɞɧɸ ɪɚɧɨ ɢɥɢ ɩɨɡɞɧɨ ɜɥɟɬɚɟɬ ɤɚɠɞɵɣ ɩɪɨɝɪɚɦɦɢɫɬ. Ɍɨɥɶɤɨ ɨɞɧɢ ɨɱɟɧɶ ɛɵɫɬɪɨ ɭɱɚɬɫɹ, ɚ ɞɪɭɝɢɟ ɧɟ ɭɱɚɬɫɹ ɧɢɤɨɝɞɚ. ə ɛɵ ɩɪɟɞɩɨɱɺɥ, ɱɬɨɛɵ ɜɵ ɧɚɭɱɢɥɢɫɶ ɩɪɹɦɨ ɫɟɣɱɚɫ ɢ ɧɟɦɟɞɥɟɧɧɨ.
ɉɟɪɜɵɣ ɫɩɨɫɨɛ ɛɵɫɬɪɵɣ ɢ ɢɡɹɳɧɵɣ:
def onlyNums( L ): for x in L: if type(x) <> int: L.remove(x) result = L; return result
144
Ⱦɥɹ ɱɟɝɨ ɜɪɨɞɟ ɛɵ ɧɟɧɭɠɧɚɹ ɩɟɪɟɦɟɧɧɚɹ ɦɧɟɧɢɟ – ɜ ɤɨɧɰɟ ɮɭɧɤɰɢɢ ɦɵ ɞɨɥɠɧɵ ɢɦɟɬɶ
result? Ⱥ ɞɥɹ ɬɨɝɨ, ɱɬɨ ɹ ɢɦɟɸ
return result ɢ ɷɬɨ
ɨɛɹɡɚɬɟɥɶɧɨ. Ɋɟɡɭɥɶɬɚɬ, ɨɞɧɚɤɨ, ɨɝɨɪɱɚɟɬ:
[1, 2, 3, True, 7]
ɋɧɚɱɚɥɚ ɜɨɡɧɢɤɚɸɬ ɜɫɹɤɢɟ ɯɢɬɪɵɟ ɝɢɩɨɬɟɡɵ – ɚ ɜɞɪɭɝ ɥɨɝɢɱɟɫɤɢɣ ɬɢɩ ɜɧɭɬɪɢ ɫɟɛɹ ɫɚɦɵɣ ɨɛɵɱɧɵɣ ɰɟɥɵɣ? ȼ ɧɟɤɨɬɨɪɵɯ ɞɪɭɝɢɯ ɹɡɵɤɚɯ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ ɷɬɨ ɨɛɵɱɧɨɟ ɞɟɥɨ. ɍɜɵ, ɧɟɬ. ɉɨɩɪɨɛɭɣɬɟ. ɍɞɚɥɢɬɟ ɢɡ ɫɩɢɫɤɚ ɥɨɝɢɱɟɫɤɭɸ ɩɟɪɟɦɟɧɧɭɸ, ɡɚɦɟɧɢɬɟ ɱɟɦ-ɬɨ ɞɪɭɝɢɦ – ɢɥɢ ɧɟ ɡɚɦɟɧɹɣɬɟ, ɨɬɜɟɬ ɜɫɺ ɪɚɜɧɨ ɛɭɞɟɬ ɧɟɜɟɪɧɵɦ. Ɂɞɟɫɶ ɦɵ ɢɦɟɟɦ ɜɟɱɧɭɸ ɩɪɨɛɥɟɦɭ ɭɞɚɥɟɧɢɹ ɢɡ ɫɩɢɫɤɚ, ɢ ɉɢɬɨɧ ɜ ɷɬɨɦ ɨɬɧɨɲɟɧɢɢ ɧɢɱɭɬɶ ɧɟ ɥɭɱɲɟ ɞɪɭɝɢɯ ɹɡɵɤɨɜ. ɗɬɨ ɧɚɞɨ ɩɨɧɹɬɶ, ɪɚɡ ɢ ɧɚɜɫɟɝɞɚ. ȿɫɬɶ ɫɩɢɫɨɤ: [1,2,3]. Ɇɵ ɯɨɬɢɦ ɭɞɚɥɢɬɶ ɢɡ ɫɩɢɫɤɚ ɜɫɟ ɱɺɬɧɵɟ ɷɥɟɦɟɧɬɵ – ɬɨ ɟɫɬɶ ɜɫɟ ɰɟɥɵɟ ɷɥɟɦɟɧɬɵ, ɹɜɥɹɸɳɢɟɫɹ ɱɺɬɧɵɦɢ. Ɇɵ ɩɢɲɟɦ ɰɢɤɥ, ɨɬ ɟɞɢɧɢɰɵ ɞɨ ɬɪɺɯ. ɗɬɨ ɟɫɥɢ ɭ ɧɚɫ ɩɪɨɫɬɨɣ, ɝɪɭɛɵɣ, ɩɪɢɦɢɬɢɜɧɵɣ ɢ ɬɪɚɞɢɰɢɨɧɧɵɣ ɹɡɵɤ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ. ȼ ɉɢɬɨɧɟ ɦɵ ɩɢɲɟɦ ɤɪɚɫɢɜɨ ɢ ɢɡɹɳɧɨ, ɧɨ ɜ ɪɟɡɭɥɶɬɚɬɟ ɬɚ ɠɟ ɮɢɝɧɹ. Ɇɵ ɩɟɪɟɛɢɪɚɟɦ ɷɥɟɦɟɧɬɵ: ɩɟɪɜɵɣ, ɜɬɨɪɨɣ, ɬɪɟɬɢɣ. ȼɬɨɪɨɣ ɷɥɟɦɟɧɬ – ɱɺɬɧɵɣ. Ɇɵ ɟɝɨ ɭɞɚɥɹɟɦ. ɗɥɟɦɟɧɬɨɜ ɨɫɬɚɺɬɫɹ ɞɜɚ, ɩɨɬɨɦɭ ɱɬɨ ɧɵɧɟɲɧɢɣ ɬɪɟɬɢɣ ɫɬɚɥ ɜɬɨɪɵɦ. ɇɨ ɰɢɤɥ-ɬɨ ɧɚɲ ɭɠɟ ɜɵɩɨɥɧɟɧ ɞɨ ɞɜɭɯ ɢ ɫɟɣɱɚɫ ɛɭɞɟɬ ɜɵɩɨɥɧɹɬɶɫɹ ɞɥɹ ɬɪɺɯ. Ⱥ ɬɪɟɬɶɟɝɨ ɷɥɟɦɟɧɬɚ ɭɠɟ ɧɟɬ ɢ ɰɢɤɥ, ɜ ɥɭɱɲɟɦ ɫɥɭɱɚɟ, ɩɪɨɫɬɨ ɧɟ ɜɵɩɨɥɧɢɬɫɹ. ȼ ɯɭɞɲɟɦ ɫɥɭɱɚɟ, ɩɨɥɭɱɢɦ ɫɨɨɛɳɟɧɢɟ ɨɛ ɨɲɢɛɤɟ.
ɗɬɨ ɢɦɟɧɧɨ ɬɚ ɨɲɢɛɤɚ, ɤɨɬɨɪɭɸ ɜɫɟ ɫɨɜɟɪɲɚɸɬ, ɩɪɢɱɺɦ ɜɨ ɜɫɟɯ ɹɡɵɤɚɯ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ. ȿɫɥɢ ɭ ɜɚɫ ɟɫɬɶ ɫɩɢɫɨɤ, ɢɥɢ ɤɚɤ ɷɬɨ ɜ ɜɚɲɟɦ ɹɡɵɤɟ ɧɚɡɵɜɚɟɬɫɹ, ɬɨ ɭɞɚɥɟɧɢɟ ɷɥɟɦɟɧɬɨɜ ɩɪɨɢɡɜɨɞɢɬɫɹ ɩɪɢ ɩɪɨɯɨɠɞɟɧɢɢ ɫɩɢɫɤɚ ɨɬ ɤɨɧɰɚ ɤ ɧɚɱɚɥɭ! ȼ ɷɬɨɦ ɫɥɭɱɚɟ ɩɨɫɥɟ ɭɞɚɥɟɧɢɹ ɜɬɨɪɨɝɨ ɷɥɟɦɟɧɬɚ ɩɟɪɜɵɣ ɷɥɟɦɟɧɬ ɬɚɤ ɢ ɨɫɬɚɧɟɬɫɹ ɩɟɪɜɵɦ. Ɂɚɩɨɦɧɢɬɟ. Ɇɧɨɝɢɟ ɡɚɩɨɦɢɧɚɸɬ ɢ ɧɟɦɟɞɥɟɧɧɨ ɡɚɛɵɜɚɸɬ. ɑɬɨ ɷɬɨ ɨɡɧɚɱɚɟɬ ɞɥɹ ɧɚɲɟɝɨ ɫɥɭɱɚɹ:
def onlyNums( L ): for i in xrange( len(L)-1, -1, -1): if type(L[i]) <> int: del L[i] result = L; return result
a = [1,2,3, 'ɫɨɛɚɱɤɚ Ɇɭɦɭ', True, 3.1415, 7] a = onlyNums(a) print a
[1, 2, 3, 7]
145
R
V
S
ɇɟ ɛɨɸɫɶ ɩɨɤɚɡɚɬɶɫɹ ɧɚɡɨɣɥɢɜɵɦ – ɡɚɩɨɦɧɢɬɟ, ɩɨɠɚɥɭɣɫɬɚ. Ⱥ ɬɟɩɟɪɶ ɤɨɧɱɢɦ ɫɬɪɨɢɬɶ ɢɡ ɫɟɛɹ ɫɚɦɵɯ ɭɦɧɵɯ ɢ ɪɟɲɢɦ ɡɚɞɚɱɭ ɬɭɩɨ ɢ ɜ ɥɨɛ.
def onlyNums( L ): result = [] for x in L: if type(x) == int: result.append(x) return result
a = [1,2,3, 'ɫɨɛɚɱɤɚ Ɇɭɦɭ', True, 3.1415, 7, ['Why?', 'Where?', 'Why not?']] a = onlyNums(a) print a
[1, 2, 3, 7]
Ⱦɥɹ ɪɚɡɧɨɨɛɪɚɡɢɹ ɹ ɪɟɲɢɥ ɧɚɩɨɦɧɢɬɶ, ɱɬɨ ɷɥɟɦɟɧɬɨɦ ɫɩɢɫɤɚ ɦɨɠɟɬ ɛɵɬɶ ɢ ɫɩɢɫɨɤ. Ʉɪɨɦɟ ɬɨɝɨ, ɟɫɥɢ ɹ ɨɛ ɷɬɨɦ ɭɠɟ ɝɨɜɨɪɢɥ – ɬɨ ɩɨɜɬɨɪɸɫɶ. Ʉɚɠɞɵɣ ɨɩɟɪɚɬɨɪ ɉɢɬɨɧɚ ɞɨɥɠɟɧ ɛɵɬɶ ɡɚɩɢɫɚɧ ɧɚ ɨɞɧɨɣ ɫɬɪɨɤɟ. ɇɟɫɤɨɥɶɤɨ ɨɩɟɪɚɬɨɪɨɜ ɧɚ ɨɞɧɨɣ ɫɬɪɨɤɟ – ɦɨɠɧɨ. ɇɨ ɟɫɥɢ ɨɛɹɡɚɬɟɥɶɧɨ ɧɚɞɨ ɡɚɩɢɫɚɬɶ ɞɥɢɧɧɵɣ ɨɩɟɪɚɬɨɪ ɢ ɜ ɨɞɧɭ ɫɬɪɨɤɭ ɨɧ ɧɟ ɜɥɟɡɚɟɬ – ɟɝɨ ɦɨɠɧɨ ɢɫɤɭɫɫɬɜɟɧɧɨ ɫɤɥɟɢɬɶ ɫɢɦɜɨɥɨɦ ɨɛɪɚɬɧɵɣ ɫɥɟɲ – \. ɇɨ ɢɧɨɝɞɚ ɫɬɪɨɤɢ ɫɤɥɟɢɜɚɸɬɫɹ ɜ ɨɞɢɧ ɨɩɟɪɚɬɨɪ ɫɚɦɢ ɫɨɛɨɣ – ɚ ɢɦɟɧɧɨ ɬɨɝɞɚ, ɤɨɝɞɚ ɦɵ ɪɚɡɞɟɥɹɟɦ ɨɩɟɪɚɬɨɪ ɜɧɭɬɪɢ ɫɤɨɛɨɤ. ɋɟɣɱɚɫ ɭ ɧɚɫ ɥɟɜɚɹ ɤɜɚɞɪɚɬɧɚɹ ɫɤɨɛɤɚ ɜ ɜɟɪɯɧɟɣ ɫɬɪɨɤɟ, ɚ ɩɪɚɜɚɹ ɤɜɚɞɪɚɬɧɚɹ ɫɤɨɛɤɚ – ɜ ɧɢɠɧɟɣ. ȼɫɺ ɜɦɟɫɬɟ ɚɜɬɨɦɚɬɢɱɟɫɤɢ ɫɱɢɬɚɟɬɫɹ ɨɞɧɢɦ ɨɩɟɪɚɬɨɪɨɦ.
ɂ ɟɳɺ ɨ ɮɭɧɤɰɢɹɯ.
ȼɫɹɤɨɟ ɧɟ ɨɱɟɧɶ ɨɛɹɡɚɬɟɥɶɧɨɟ
ȼ ɷɬɨɦ ɪɚɡɞɟɥɟ ɛɭɞɟɬ ɜɫɹɤɨɟ ɪɚɡɧɨɟ, ɨɬɧɨɫɹɳɟɟɫɹ ɤ ɮɭɧɤɰɢɹɦ, ɱɬɨ ɡɧɚɬɶ ɧɟ ɨɛɹɡɚɬɟɥɶɧɨ. Ɍɨɱɧɟɟ, ɷɬɨ ɹ ɬɚɤ ɫɱɢɬɚɸ, ɱɬɨ ɡɧɚɬɶ ɷɬɨ ɜɫɺ ɧɟ ɨɛɹɡɚɬɟɥɶɧɨ, ɭ ɞɪɭɝɢɯ ɩɪɨɝɪɚɦɦɢɫɬɨɜ ɦɨɠɟɬ ɛɵɬɶ ɫɜɨɺ ɦɧɟɧɢɟ.
ɉɟɪɜɨɟ. ɇɚɱɧɭ ɫ ɬɨɝɨ, ɱɬɨ ɹ ɫɱɢɬɚɸ ɩɨɥɟɡɧɵɦ ɢ ɫɚɦ ɩɪɢɦɟɧɹɸ. ɗɬɨ ɩɚɪɚɦɟɬɪɵ ɩɨ ɭɦɨɥɱɚɧɢɸ. ɇɚɩɢɲɟɦ ɧɟɯɢɬɪɭɸ ɩɪɨɰɟɞɭɪɭ, ɤɨɬɨɪɚɹ ɜɵɱɢɫɥɹɟɬ ɜɟɫ ɰɢɥɢɧɞɪɚ. ɇɚɩɨɦɢɧɚɸ, ɜɟɫ ɱɟɝɨ-ɥɢɛɨ ɷɬɨ ɩɪɨɢɡɜɟɞɟɧɢɟ ɟɝɨ
ɨɛɴɺɦɚ ɧɚ ɭɞɟɥɶɧɵɣ ɜɟɫ. Ɉɛɴɺɦ ɰɢɥɢɧɞɪɚ
2
h
, ɝɞɟ R ɪɚɞɢɭɫ
ɨɫɧɨɜɚɧɢɹ, h – ɜɵɫɨɬɚ ɰɢɥɢɧɞɪɚ.
def weightCyl ( R, h, gamma): result = 3.14158 * R**2 * h * gamma
146
result = result / 1000 return result
print 'aluminum', weightCyl( 5, 100, 2.70) print 'iron', weightCyl( 5, 100, 7.85) print 'gold', weightCyl( 5, 100, 13.22)
aluminum 21.205665 iron 61.6535075 gold 103.829219
ɑɬɨ ɦɵ ɬɭɬ ɢɦɟɟɦ? Ɋɚɡɦɟɪɵ ɰɢɥɢɧɞɪɚ ɡɚɞɚɸɬɫɹ ɜ ɫɚɧɬɢɦɟɬɪɚɯ, ɚ ɭɞɟɥɶɧɵɣ ɜɟɫ – ɜ ɝɪɚɦɦɚɯ ɧɚ ɤɭɛɢɱɟɫɤɢɣ ɫɚɧɬɢɦɟɬɪ. ɉɨɥɭɱɢɜɲɢɣɫɹ ɜɟɫ ɩɟɪɟɫɱɢɬɵɜɚɟɬɫɹ ɜ ɤɢɥɨɝɪɚɦɦɵ. ɇɚɲ ɰɢɥɢɧɞɪ ɜɨ ɜɫɟɯ ɬɪɺɯ ɫɥɭɱɚɹɯ ɢɦɟɟɬ ɞɢɚɦɟɬɪ ɞɟɫɹɬɶ ɫɚɧɬɢɦɟɬɪɨɜ ɢ ɜɵɫɨɬɭ ɨɞɢɧ ɦɟɬɪ. Ⱥ ɜɨɬ ɦɚɬɟɪɢɚɥ ɪɚɡɧɵɣ – ɚɥɸɦɢɧɢɣ, ɠɟɥɟɡɨ, ɡɨɥɨɬɨ. ȿɫɥɢ ɷɬɭ ɮɭɧɤɰɢɸ ɛɭɞɭɬ ɜɵɡɵɜɚɬɶ ɱɚɫɬɨ, ɜɩɨɥɧɟ ɦɨɠɟɬ ɨɤɚɡɚɬɶɫɹ, ɱɬɨ ɚɥɸɦɢɧɢɣ ɢ ɬɟɦ ɛɨɥɟɟ ɡɨɥɨɬɨ ɪɟɞɤɨ ɢɧɬɟɪɟɫɭɸɬ ɬɨɝɨ, ɤɬɨ ɜɵɡɵɜɚɟɬ. ȿɦɭ ɨɛɵɱɧɨ ɧɭɠɧɨ ɬɨɥɶɤɨ ɠɟɥɟɡɨ, ɢ ɟɝɨ ɭɬɨɦɥɹɟɬ ɧɟɨɛɯɨɞɢɦɨɫɬɶ ɪɚɡ ɡɚ ɪɚɡɨɦ ɭɤɚɡɵɜɚɬɶ ɟɝɨ, ɠɟɥɟɡɚ, ɩɥɨɬɧɨɫɬɶ. ɍ ɉɢɬɨɧɚ ɟɫɬɶ ɪɟɲɟɧɢɟ ɩɪɨɛɥɟɦɵ.
def weightCyl ( R, h, gamma = 7.85): result = 3.14158 * R**2 * h * gamma result = result / 1000 return result
print 'iron', weightCyl( 5, 100, 7.85) print weightCyl( 5, 100)
iron 61.6535075
61.6535075
ȼ ɡɚɝɨɥɨɜɤɟ ɮɭɧɤɰɢɢ ɦɵ ɞɨɛɚɜɢɥɢ ɡɧɚɤ ɪɚɜɟɧɫɬɜɚ ɢ ɡɧɚɱɟɧɢɟ ɞɥɹ ɩɨɫɥɟɞɧɟɝɨ ɩɚɪɚɦɟɬɪɚ. ɗɬɨ ɨɡɧɚɱɚɟɬ, ɱɬɨ ɟɫɥɢ ɦɵ ɟɝɨ ɧɟ ɧɚɩɢɲɟɦ, ɬɨ ɨɧ ɩɨ ɭɦɨɥɱɚɧɢɸ ɛɭɞɟɬ ɫɱɢɬɚɬɶɫɹ ɪɚɜɧɵɦ 7.85, ɬɨ ɟɫɬɶ ɭɞɟɥɶɧɨɦɭ ɜɟɫɭ ɠɟɥɟɡɚ. ɉɪɢ ɷɬɨɦ ɜɵ ɢɦɟɟɬɟ ɩɨɥɧɨɟ ɩɪɚɜɨ ɭɤɚɡɚɬɶ ɟɝɨ ɹɜɧɨ, ɢ ɬɨɝɞɚ ɨɧ ɛɭɞɟɬ ɩɪɢɧɹɬ ɢ ɭɱɬɺɧ ɞɥɹ ɪɚɫɱɟɬɚ. ȼɞɪɭɝ ɜɚɲ ɰɢɥɢɧɞɪ ɜɵɬɨɱɟɧ ɢɡ ɨɪɟɯɚ ɝɪɟɰɤɨɝɨ? Ʉɫɬɚɬɢ, ɩɨɧɹɬɢɹ ɧɟ ɢɦɟɸ, ɤɚɤ ɨɧ ɜɵɝɥɹɞɢɬ, ɧɨ ɫɨɫɱɢɬɚɬɶ ɦɨɠɧɨ:
print 'walnut', weightCyl( 5, 100, 0.64)
walnut 5.026528
Ɉɞɧɚɤɨ ɷɬɨ ɧɟ ɜɫɺ ɨ ɩɚɪɚɦɟɬɪɚɯ ɩɨ ɭɦɨɥɱɚɧɢɸ. ɇɚɫɤɨɥɶɤɨ ɹ ɪɚɡɛɢɪɚɸɫɶ ɜ ɥɚɛɨɪɚɬɨɪɧɵɯ ɢɫɩɵɬɚɧɢɹɯ, ɬɚɦ ɫɤɨɪɟɟ ɜɫɟɝɨ ɜɡɜɟɲɢɜɚɸɬ ɫɬɚɧɞɚɪɬɧɵɟ
147
ɰɢɥɢɧɞɪɵ ɫɬɚɧɞɚɪɬɧɨɝɨ ɞɢɚɦɟɬɪɚ ɢ ɫɬɚɧɞɚɪɬɧɨɣ ɜɵɫɨɬɵ. Ⱦɪɭɝɢɦɢ ɫɥɨɜɚɦɢ, ɪɚɞɢɭɫ ɢ ɜɵɫɨɬɭ ɡɚɞɚɜɚɬɶ ɧɟ ɨɛɹɡɚɬɟɥɶɧɨ, ɚ ɜɨɬ ɭɞɟɥɶɧɵɣ ɜɟɫ – ɬɚɤɢ ɞɚ. ȼɨɡɧɢɤɚɟɬ ɜɩɨɥɧɟ ɟɫɬɟɫɬɜɟɧɧɨɟ ɠɟɥɚɧɢɟ ɧɚɩɢɫɚɬɶ ɝɞɟ-ɬɨ ɬɚɤ:
def weightCyl ( R = 5, h = 100, gamma): result = 3.14158 * R**2 * h * gamma result = result / 1000 return result
Ɂɚ ɷɬɨ ɦɵ ɧɟɦɟɞɥɟɧɧɨ ɩɨɥɭɱɢɦ ɩɨ ɪɭɤɚɦ. Ɍɚɤ ɧɟɥɶɡɹ! ɂ ɟɫɥɢ ɦɵ ɫɨɜɫɟɦ ɧɟɦɧɨɝɨ ɡɚɞɭɦɚɟɦɫɹ, ɬɨ ɧɟɦɟɞɥɟɧɧɨ ɩɨɣɦɺɦ – ɩɨɱɟɦɭ. Ʉɚɤɢɦ, ɫɨɛɫɬɜɟɧɧɨ, ɨɛɪɚɡɨɦ ɦɨɠɧɨ ɞɨɝɚɞɚɬɶɫɹ, ɤɚɤɨɣ ɢɦɟɧɧɨ ɩɚɪɚɦɟɬɪ ɩɪɨɩɭɳɟɧ? Ⱦɚ, ɜ ɧɚɲɟɦ ɤɨɧɤɪɟɬɧɨɦ ɫɥɭɱɚɟ ɧɟɞɨɫɬɚɺɬ ɜ ɫɩɢɫɤɟ ɞɜɭɯ ɩɚɪɚɦɟɬɪɨɜ ɢ ɷɬɨ ɧɚɜɨɞɢɬ ɧɚ ɨɩɪɟɞɟɥɺɧɧɵɟ ɪɚɡɦɵɲɥɟɧɢɹ. ɇɨ ɟɫɥɢ ɧɟ ɯɜɚɬɚɟɬ ɬɨɥɶɤɨ ɨɞɧɨɝɨ, ɬɨ ɷɬɨ ɦɨɠɟɬ ɛɵɬɶ ɢ ɩɟɪɜɵɣ, ɢ ɜɬɨɪɨɣ, ɢ ɩɨɫɥɟɞɧɢɣ. ɉɨɷɬɨɦɭ, ɞɥɹ ɭɫɬɪɚɧɟɧɢɹ ɧɟɨɞɧɨɡɧɚɱɧɨɫɬɟɣ, ɪɚɡɪɟɲɚɟɬɫɹ ɩɪɨɩɭɫɤɚɬɶ ɫɤɨɥɶɤɨ ɭɝɨɞɧɨ ɩɚɪɚɦɟɬɪɨɜ, ɧɨ ɩɪɢ ɭɫɥɨɜɢɢ, ɱɬɨ ɜɫɟ ɨɧɢ ɛɭɞɭɬ ɩɨɫɥɟɞɧɢɦɢ. Ɍɳɚɬɟɥɶɧɨ ɨɛɞɭɦɚɣɬɟ.
Ɇɟɧɹɟɦ ɩɚɪɚɦɟɬɪɵ ɦɟɫɬɚɦɢ – ɜɵɧɨɫɢɦ ɭɞɟɥɶɧɵɣ ɜɟɫ ɧɚ ɩɟɪɜɨɟ ɦɟɫɬɨ:
def weightCyl ( gamma, R = 5, h = 100): result = 3.14158 * R**2 * h * gamma result = result / 1000 return result
print 'tungsten', weightCyl(19.25) print 'oak', weightCyl(0.7)
tungsten 151.1885375 oak 5.497765
ȼ ɉɢɬɨɧɟ ɟɫɬɶ ɟɳɺ ɜɨɡɦɨɠɧɨɫɬɶ ɡɚɞɚɜɚɬɶ ɩɚɪɚɦɟɬɪɵ ɩɨ ɢɦɟɧɚɦ, ɧɨ ɩɨɫɤɨɥɶɤɭ ɦɧɟ ɷɬɨ ɤɚɠɟɬɫɹ ɫɨɜɟɪɲɟɧɧɨ ɛɟɫɩɨɥɟɡɧɵɦ, ɬɨ ɢ ɝɨɜɨɪɢɬɶ ɨɛ ɷɬɨɦ ɹ ɧɢɱɟɝɨ ɧɟ ɛɭɞɭ.
ȼɬɨɪɨɟ. Ȼɟɡ ɷɬɨɝɨ ɧɟɥɶɡɹ. ɗɬɨ ɧɚɡɵɜɚɟɬɫɹ ɪɟɤɭɪɫɢɹ. ɗɬɨ ɧɭɠɧɨ ɨɱɟɧɶ ɢ ɨɱɟɧɶ ɪɟɞɤɨ, ɧɨ ɜ ɬɚɤɢɯ ɫɥɭɱɚɹɯ ɛɟɡ ɪɟɤɭɪɫɢɢ ɭɠɟ ɧɢɤɚɤ ɧɟ ɨɛɨɣɬɢɫɶ. ɇɨ ɯɨɬɹ ɜ ɪɚɛɨɬɟ ɷɬɨ ɦɚɥɨ ɤɨɦɭ ɩɨɧɚɞɨɛɢɬɫɹ, ɧɢ ɨɞɢɧ ɭɱɟɛɧɢɤ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ ɨɛɨɣɬɢɫɶ ɛɟɡ ɪɟɤɭɪɫɢɢ ɧɟ ɦɨɠɟɬ, ɢ ɨɬ ɤɚɠɞɨɝɨ ɩɪɨɝɪɚɦɦɢɫɬɚ ɠɞɭɬ ɯɨɬɹ ɛɵ ɬɟɨɪɟɬɢɱɟɫɤɨɝɨ ɡɧɚɧɢɹ, ɱɬɨ ɷɬɨ ɬɚɤɨɟ.
148
Ɋɟɤɭɪɫɢɹɷɬɨ ɤɨɝɞɚ ɮɭɧɤɰɢɹ ɜɵɡɵɜɚɟɬ ɫɚɦɚ ɫɟɛɹ. ɗɬɨ ɧɚɡɵɜɚɟɬɫɹ ɩɪɹɦɚɹ
NNN
ɪɟɤɭɪɫɢɹ. ȿɫɬɶ ɟɳɺ ɢ ɤɨɫɜɟɧɧɚɹ ɪɟɤɭɪɫɢɹ. ɗɬɨ ɤɨɝɞɚ ɮɭɧɤɰɢɹ ɮɭɧɤɰɢɸ
B, ɚ ɭɠɟ ɬɚ ɜɵɡɵɜɚɟɬ ɮɭɧɤɰɢɸ A. ɋɪɚɡɭ ɜɨɡɧɢɤɚɟɬ ɞɟɣɫɬɜɢɬɟɥɶɧɨ,
A ɜɵɡɵɜɚɟɬ
ɤɪɨɦɟ ɲɭɬɨɤ, ɜɚɠɧɵɣ ɜɨɩɪɨɫ – ɚ ɤɚɤ ɠɟ ɬɚɤɚɹ ɮɭɧɤɰɢɹ ɡɚɜɟɪɲɢɬɫɹ? Ʉɨɧɟɱɧɨ, ɟɫɥɢ ɮɭɧɤɰɢɹ ɛɭɞɟɬ ɜɵɡɵɜɚɬɶ ɫɟɛɹ ɫ ɬɟɦɢ ɠɟ ɩɚɪɚɦɟɬɪɚɦɢ, ɫ ɤɨɬɨɪɵɦɢ ɟɺ ɜɵɡɜɚɥɢ ɫɧɚɪɭɠɢ, ɬɨ ɰɟɩɨɱɤɚ ɜɵɡɨɜɨɜ ɨɤɚɠɟɬɫɹ ɛɟɫɤɨɧɟɱɧɨɣ. Ɉɬɫɸɞɚ ɩɪɨɫɬɨɣ ɜɵɜɨɞ – ɩɪɢ ɤɚɠɞɨɦ ɜɵɡɨɜɟ ɯɨɬɹ ɛɵ ɨɞɢɧ ɢɡ ɩɚɪɚɦɟɬɪɨɜ ɞɨɥɠɟɧ ɦɟɧɹɬɶɫɹ. Ȼɨɥɟɟ ɬɨɝɨ, ɨɛɹɡɚɬɟɥɶɧɨ ɞɨɥɠɧɨ ɛɵɬɶ ɬɚɤɨɟ ɡɧɚɱɟɧɢɟ ɩɚɪɚɦɟɬɪɚ, ɩɪɢ ɤɨɬɨɪɨɦ ɰɟɩɨɱɤɚ ɜɵɡɨɜɨɜ ɩɪɟɪɵɜɚɟɬɫɹ ɢ ɜɨɡɜɪɚɳɚɟɬɫɹ ɤɨɧɤɪɟɬɧɨɟ ɡɧɚɱɟɧɢɟ.
ȿɫɬɶ ɜ ɨɛɭɱɟɧɢɢ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɸ ɫɬɚɪɚɹ ɬɪɚɞɢɰɢɹ – ɨɛɭɱɚɬɶ ɪɟɤɭɪɫɢɢ ɧɚ ɩɪɢɦɟɪɟ ɮɚɤɬɨɪɢɚɥɚ – ɨɩɹɬɶ, ɞɚ. Ɍɚɤ ɢ ɩɨɫɬɭɩɢɦ. ɇɚɩɨɦɢɧɚɸ – ɨɩɹɬɶ, ɞɚ, ɮɚɤɬɨɪɢɚɥ ɨɛɨɡɧɚɱɚɟɬɫɹ ɜɨɫɤɥɢɰɚɬɟɥɶɧɵɦ ɡɧɚɤɨɦ ɢ ɨɩɪɟɞɟɥɹɟɬɫɹ ɬɚɤ;
uuuuu )1(...321!
, ɬɨ ɟɫɬɶ 12054321!5 uuuu . ȿɫɥɢ
ɩɪɢɝɥɹɞɟɬɶɫɹ, ɬɨ ɩɪɹɦɨ-ɬɚɤɢ ɛɪɨɫɚɟɬɫɹ ɜ ɝɥɚɡɚ, ɱɬɨ 5!4!5 u . ɉɨɫɤɨɥɶɤɭ
, ɬɨ ɧɚɩɪɚɲɢɜɚɟɬɫɹ ɬɚɤɚɹ ɨɪɝɚɧɢɡɚɰɢɹ ɮɭɧɤɰɢɢ:
1!1
def Fuct( N ): if N > 1: result = N * Fuct(N-1) else: result = 1 return result
ȼɵɡɨɜ ɪɟɤɭɪɫɢɜɧɨɣ ɮɭɧɤɰɢɢ ɧɢɱɟɦ ɧɟ ɨɬɥɢɱɚɟɬɫɹ ɨɬ ɜɵɡɨɜɚ ɨɛɵɱɧɨɣ – ɫɧɚɪɭɠɢ ɜɫɟ ɮɭɧɤɰɢɢ ɨɞɢɧɚɤɨɜɵ. ɉɪɨɜɟɪɶɬɟ. Ʉɨɦɟ ɬɨɝɨ, ɧɚɩɨɦɢɧɚɸ, ɱɬɨ ɱɢɫɬɨ ɩɨ ɨɩɪɟɞɟɥɟɧɢɸ
1!0 . ɉɪɨɜɟɪɶɬɟ ɢ ɷɬɨ.
ɉɨɧɹɬɧɨ, ɱɬɨ ɷɬɚ ɡɚɞɚɱɚ ɥɟɝɤɨ ɪɟɲɚɟɬɫɹ ɢ ɛɟɡ ɩɪɢɜɥɟɱɟɧɢɹ ɪɟɤɭɪɫɢɢ. ɋɥɭɱɚɟɜ, ɤɨɝɞɚ ɪɟɤɭɪɫɢɹ ɞɟɣɫɬɜɢɬɟɥɶɧɨ ɧɟɨɛɯɨɞɢɦɚ, ɦɚɥɨ, ɚ ɛɨɥɶɲɢɧɫɬɜɨ ɭɱɟɛɧɵɯ ɡɚɞɚɱ ɧɨɫɹɬ ɢɫɤɭɫɫɬɜɟɧɧɵɣ ɯɚɪɚɤɬɟɪ. ɇɚ ɬɨ ɨɧɢ ɢ ɭɱɟɛɧɵɟ.
Ⱦɜɟ ɡɚɞɚɱɢ ɧɚ ɪɟɤɭɪɫɢɸ ɞɥɹ ɫɚɦɨɫɬɨɹɬɟɥɶɧɨɝɨ ɪɟɲɟɧɢɹ. ɉɟɪɜɚɹ – ɱɚɫɬɚɹ ɢ ɩɪɚɤɬɢɱɟɫɤɢ ɜɫɬɪɟɱɚɸɳɚɹɫɹ. ȼɬɨɪɚɹ – ɪɟɞɤɚɹ, ɧɨ ɢɧɨɝɞɚ ɨɱɟɧɶ ɩɪɚɤɬɢɱɟɫɤɚɹ, ɜ ɦɟɬɨɞɚɯ ɨɩɬɢɦɢɡɚɰɢɢ.
ɉɟɪɜɚɹ. ȿɫɬɶ ɞɟɪɟɜɨ ɤɚɬɚɥɨɝɨɜ, ɢɥɢ ɞɢɪɟɤɬɨɪɢɣ, ɢɥɢ ɩɚɩɨɤ – ɤɚɤ ɷɬɨ ɧɚɡɵɜɚɟɬɫɹ ɜ ɜɚɲɟɣ ɨɩɟɪɚɰɢɨɧɧɨɣ ɫɢɫɬɟɦɟ? Ɉɛɨɣɞɢɬɟ ɜɫɺ ɞɟɪɟɜɨ ɢ ɜɵɜɟɞɢɬɟ ɢɦɟɧɚ ɜɫɟɯ ɮɚɣɥɨɜ ɜɨ ɜɫɟɯ ɤɚɬɚɥɨɝɚɯ. Ȼɨɥɟɟ ɩɪɚɤɬɢɱɧɨ, ɨɞɧɚɤɨ, ɩɨɞɫɱɢɬɚɬɶ ɨɛɳɢɣ ɪɚɡɦɟɪ ɜɫɟɯ ɮɚɣɥɨɜ. ɇɚ ɫɚɦɨɦ ɞɟɥɟ, ɬɭɬ ɟɫɬɶ ɧɸɚɧɫ –
149
ɞɚɠɟ ɩɭɫɬɨɣ ɤɚɬɚɥɨɝ ɡɚɧɢɦɚɟɬ ɫɤɨɥɶɤɨ-ɬɨ ɛɚɣɬ – ɧɨ ɷɬɢɦ ɦɨɠɧɨ ɩɪɟɧɟɛɪɟɱɶ.
ȼɬɨɪɚɹ, ɧɟɬɪɚɞɢɰɢɨɧɧɚɹ, ɡɚɞɚɱɚ. ȿɫɬɶ ɰɟɥɨɟ ɱɢɫɥɨ, ɧɟ ɨɱɟɧɶ ɛɨɥɶɲɨɟ, ɢɧɚɱɟ ɡɚɞɚɱɚ ɫɬɚɧɨɜɢɬɫɹ ɜɵɱɢɫɥɢɬɟɥɶɧɨ ɫɥɨɠɧɨɣ. ȼɵɞɚɣɬɟ ɜɫɟ ɜɚɪɢɚɧɬɵ ɪɚɡɛɢɟɧɢɹ ɷɬɨɝɨ ɱɢɫɥɚ ɧɚ ɫɥɚɝɚɟɦɵɟ. Ɍɨ ɟɫɬɶ ɞɥɹ ɱɢɫɥɚ 3 ɧɚɞɨ ɜɵɞɚɬɶ:
3,0,0 0,3,0 0,0,3 2,1,0 2,0,1
ɢ ɬɚɤ ɞɚɥɟɟ.
ɋɤɭɱɧɨɟ – ɝɥɨɛɚɥɶɧɵɟ ɢ ɥɨɤɚɥɶɧɵɟ ɩɟɪɟɦɟɧɧɵɟ
ɉɪɨɞɨɥɠɚɟɦ ɪɚɡɝɨɜɨɪ. ɗɬɨ ɧɟ ɹɜɥɹɟɬɫɹ ɧɟɨɛɯɨɞɢɦɵɦ, ɧɨ ɡɧɚɬɶ ɷɬɨ ɢ ɯɨɪɨɲɨ ɩɨɧɢɦɚɬɶ ɷɬɨ ɫɨɜɟɪɲɟɧɧɨ ɨɛɹɡɚɬɟɥɶɧɨ. ȼɨɬ ɬɚɤɨɣ ɩɚɪɚɞɨɤɫ. Ɉɱɟɧɶ ɩɪɨɫɬɚɹ ɮɭɧɤɰɢɹ, ɬɨ ɱɬɨ ɧɚɡɵɜɚɟɬɫɹ ɤɜɚɞɪɚɬɧɵɣ ɬɪɺɯɱɥɟɧ.
ɇɚ ɜɫɬɭɩɢɬɟɥɶɧɨɦ ɷɤɡɚɦɟɧɟ ɜ ɚɤɚɞɟɦɢɸ ȼɚɫɢɥɢɣ ɂɜɚɧɵɱ ɩɨɥɭɱɢɥ ɡɚɞɚɧɢɟ: ɢɡ ɤɜɚɞɪɚɬɧɨɝɨ ɬɪɟɯɱɥɟɧɚ ɜɵɞɟɥɢɬɶ ɩɨɥɧɵɣ ɤɜɚɞɪɚɬ. ɂ ɜɨɬ ɨɧ ɩɥɚɱɟɬ, ɚ ɫɚɛɥɸ ɬɨɱɢɬ!
© ɚɧɟɤɞɨɬ, ɦɚɬɟɦɚɬɢɱɟɫɤɢ ɜɟɪɧɵɣ
ȼɵɞɟɥɢɬɶ ɬɪɺɯɱɥɟɧ ɦɨɠɧɨ, ɷɬɨ ɜɩɨɥɧɟ ɪɚɡɭɦɧɚɹ ɩɨɫɬɚɧɨɜɤɚ ɡɚɞɚɱɢ. ɇɨ ɭ ɧɚɫ ɜɫɺ ɩɪɨɳɟ, ɦɵ ɬɨɥɶɤɨ ɯɨɬɢɦ ɩɨɫɱɢɬɚɬɶ ɡɧɚɱɟɧɢɟ ɫɨɨɬɜɟɬɫɬɜɭɸɳɟɣ
ɮɭɧɤɰɢɢ:
cbxaxxf 2)(
. Ɍɨ ɟɫɬɶ ɧɚ ɜɯɨɞ ɱɟɬɵɪɟ ɩɚɪɚɦɟɬɪɚ, ɧɚ ɜɵɯɨɞɟ
ɡɧɚɱɟɧɢɟ ɬɪɺɯɱɥɟɧɚ. Ɉɱɟɧɶ ɩɪɨɫɬɨ.
def Trinomial( a, b, c, x): result = a*x**2 + b*x + c return result
f = Trinomial( 1,2,3, 1.0) print 'f = ', f
6.0
Ʉɫɬɚɬɢ, ɹ ɬɨɥɶɤɨ ɱɬɨ ɭɡɧɚɥ, ɱɬɨ trinomial ɷɬɨ ɬɪɺɯɱɥɟɧ ɧɚ ɚɧɝɥɢɣɫɤɨɦ. ɑɬɨ ɞɨ ɪɚɛɨɬɵ ɮɭɧɤɰɢɢ, ɬɨ ɜɫɺ ɩɪɨɫɬɨ ɢ ɨɠɢɞɚɟɦɨ. ɉɨɦɟɧɹɟɦ ɤɨɞ:
150
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]