КулЛиб - Классная библиотека! Скачать книги бесплатно 

Занимательный Питон [nikf] (fb2) читать онлайн


 [Настройки текста]  [Cбросить фильтры]
  [Оглавление]

nikf Занимательный Питон


Краткая история Информатики и языков Программирования


Дорогие читатели!

Одним из основных предметов в СШ является Информатика. Что это за наука и что она изучает? Так вот, Информатика – это наука об Информации, о способах информационной деятельности, её обработке и передаче посредством ИКТ (информационно-коммуникативной техники).

Возникает вопрос – а что же такое Информация? Так вот единица информации 1 бит – это количество минимальной информации 0 или 1 в двоичной системе счисления, которая уменьшает неопределенность какой-либо ситуации ровно в 2 раза.

Одним из основных способов информационной деятельности человека является чтение. Успешное освоение большими количествами учебных материалов как по информатике , так и по другим школьным наукам во многом зависит от того – как Вы читаете. Надеюсь , что Вам будет интересно читать Мою Книгу.

Николай Филиппов nikf


Предисловие

Нужно ли учить школьника программированию, или создание программ – это удел профессионалов?

На наш взгляд, этот вопрос не более актуален, чем вопрос, нужно ли играть в шахматы, а подумать следует в первую очередь о том, захотят ли школьники изучать программирование? Нельзя ли представить программирование как увлекательную, логически развивающую игру?

Программирование открывается сейчас как уникальный методический инструмент в изучении математики. Но для того, чтобы пользоваться этим инструментом, необходимо развивать культуру программного мышления.

Математик скажет: «Пусть Х будет равен тому-то, тогда Х+5 будет равен тому-то, и …»

Эта фраза хорошо знакома нам всем со школьной скамьи. И не случайно: обязательным элементом математической культуры школьника является умение оперировать с неизвестными и решать задачи путём составления уравнений, и строится это искусство на шаблоне «Пусть Х…».

В программировании центральную роль при решении задач играет не понятие неизвестного, а понятие переменной. Программист мыслит так: «Если переменная Х будет принимать, такие-то значения, тогда …». Приёмам и методам Программирования, формированию особого «программистского» мышления и посвящается эта книга.

Математическая культура оттачивалась веками. Методика преподавания программирования только начинает формироваться.

В качестве платформы для обучения мы выбрали наиболее доступный язык программирования: Питон. За свою долгую историю Питон, как и любой другой язык, постоянно развивался и совершенствовался; было создано много разновидностей, или, как говорят, диалектов языка, несколько различающихся набором слов и правилам их применения. Учесть все возможные особенности диалектов и их реализаций Питона в одной книге невозможно, да и не нужно, ведь каждого отдельно взятого читателя интересует только тот Питон, который имеется на его компьютере (например, Питон2 или Питон 3). Однако некоторые программы, возможно, вам придётся несколько изменить в соответствии с особенностями вашего Питона.

Корректировка, да и вообще правильное изменение текста программы требует ясного понимания смысла как отдельных конструкций, так и всей программы в целом. Научившись читать программу как осмысленный текст, вы сделаете большой шаг на пути к серьёзному программированию.

Приведённые в книге программы рассчитаны на компьютеры с минимальными возможностями и не содержат ничего лишнего. Если вы работаете на современном ПК, ничто не мешает вам, изменив несколько чисел или букв в тексте программы, получить, например, многоцветное изображение вместо черно-белого. Но даже на примитивном компьютере всегда можно сделать что-то новое и найти неожиданное решение.

Я искренне надеюсь, что занимательная форма изложения поможет читателю включиться в интереснейшую игру под названием «программирование».

Программа. Язык Программирования


Программу можно представить в виде набора каких-либо команд для исполнителя (например человека или вычислительной машины), которая выполняется исполнителем и автоматизирует процесс, который будет выполнен точно по инструкции в программе.

Мы с Вами ребята начинаем изучать язык программирования Питон. Что это за язык? – это Интерпретатор, наподобие интерпретатора языка Basic с которым были в школе знакомы Ваши родители.

Что же такое Интерпретатор и чем он отличается от Компилятора – например C++ или TurboPascal 7 ? Интерпретатор на каждом шаге – строке программы, обращается к программе Питон и транслирует код на английском языке высокого уровня (понятного вам ученики) в машинный код (понятный процессору любого компьютера), затем код исполняется также пошагово. Код можно вводить строка за строкой, нажимая Enter или написать в виде скрипта в текстовом редакторе кода (например Блокнот) Idle. Компилятор же должен создать бинарный файл на машинном коде процессора из всех строк кода на языке C++ или Turbo Pascal , и только затем выполнить. То есть невозможно построчное, отдельное выполнение, программа должна сначала скомпилироваться – создать исполняемый файл для ОС (операционной системы компьютера).


Языки программирования высокого уровня и среды разработки IDE были следующим этапом развития ПО. Они представляли собой интерпретатор или компилятор с языка более близкого человеку. В идеале человек и ВМ должны понимать друг – друга на естественном языке человека. Но так как, это – сложно реализовать, то первыми появились языки похожие на Basic English. И, уже затем языки Питон и Кумир (который кстати изучается в СШ). Язык Кумир – был похож на естественный Русский язык и поддерживает структурное программирование.


Дзен Питона

Если интерпретатору Питона дать команду

import this

То выводится так называемый “Дзен Питона” – иллюстрирующий идеологию и особенности данного языка. Понимание смысла этих постулатов в приложении к программированию придёт тогда, когда Вы в полной мере освоите язык программирования и придёте к приобретенному опыту практического программирования.

1 Красивое лучше уродливого.

2 Явное лучше неявного.

3 Простое лучше сложного.

4 Сложное лучше усложненного.

5 Плоское лучше вложенного.

6 Разреженное лучше плотного.

7 Удобочитаемость важна.

8 Частные случаи не настолько важны, чтобы нарушать правила.

9 Однако практичность важнее чистоты.

10 Ошибки никогда не должны замалчиваться.

11 За исключением замалчивания, которое задано явно.

12 Перед лицом неоднозначности сопротивляйтесь желанию угадать.

13 Должен существовать только один и желательно один способ сделать это.

14 Хотя он может с первого взгляда не очевиден, если ты не голландец.

15 Сейчас лучше чем никогда.

16 Однако никогда – чаще лучше, чем прямо сейчас.

17 Если реализацию сложно объяснить то это – плохая идея.

18 Если реализацию легко объяснить , то это может быть очень хорошая идея.

19 Пространства Имён – прекрасная идея, давайте делать их больше…


Числовые переменные

Самым простым и важным видом переменных являются числовые переменные. Они допускают хорошее наглядное представление, которым пользуются все профессиональные программисты: числовая переменная – это “коробочка” , в которую можно положить на хранение какое-либо число.

Чтобы различать переменные, им дают имена. У каждой переменной есть имя и текущее значение. В дальнейшем будем предполагать, что компьютер уже обучен нижеследующим действиям со значениями переменных:


на русском языке

на английском языке


запросить значение переменной Х с клавиатуры

x = input(“x=”)


вычислить значение Х

x=function()


напечатать значение Х

print(x)


если значение переменной Х удовлетворяет условию, то…

if (x<=0):

print(x)


При вычислении значений переменных будем использовать следующие обозначения: сложение =, вычитание -, умножение *, деление /, целочисленное деление //, возведение в степень **, извлечение квадратного корня х**(0.5), синус sin(x), косинус cos(x), целая часть числа int(x), абсолютная часть числа abs(x), случайные числа – библиотека import random.

Эти действия в Питоне называются операторами и функциями. В Питоне их много, с некоторыми остальными мы познакомимся позднее. Также будем полагать , что перед началом вычислений при выполнении программы всем значениям переменных присваивается нулевая величина (если конечно в условии задачи конкретно не указано, какое значение нужно ввести).


Каждый программист

Работа программы во многом определяется ходом изменения значений её переменных.

Поэтому каждый программист стремится как можно более точно предвидеть характер этого изменения: на умении делать трассировку (пошаговое выполнение), и точно прослеживать порядок значений переменных базируется мастерство составления программ.

В качестве тренировки разберем следующую задачу:

Какое значение будет иметь переменная х после 5го цикла выполнения программы?

#программа

x=0

y=0

z=0

i=0

while (i<5):

x=x+y+z+1

y=x+y+z+1

z=x+y+z+1

i=i+1

print(x,y,z)

Проверьте правильность своих рассуждений, запустив программу на выполнение…


Доктор Шибкин

Доктор Шибкин был человеком чрезвычайно рассеянным и частенько допускал оплошности. Но как ни странно , именно это приводило его порой к самым разным маленьким открытиям.

Так , читая предыдущий пункт книги , он проскочил глазами само задание и подумал, что нужно найти решение системы уравнений:

X=Х+Y+Z+1,

Y=X+Y+Z+1,

Z=X+Y+Z+1

что он и сделал мгновенно в уме: из одинаковости правых частей очевидно, что X=Y=Z, откуда: X=Y=Z=-½.

Когда же он собрался сверить ответ, то понял, что в задании речь идёт не о системе уравнений, а о программе для компьютера. Выполнив задание правильно, профессор с изумлением заметил: “Между двумя решениями нет ничего общего!”. С тех пор доктор Шибкин проникся идеей, что смысл математических и программных обозначений, при всей их схожести , – совершенно различный.


Таблица квадратов

Задача:

Составить программу , – печатающую таблицу квадратов целых чисел.

Решение:

Если значение переменной N будет пробегать натуральный ряд 0, 1, 2, 3, …, N то переменная X=N*N даст квадрат N. Печатая значение N и X и зациклив программу , имеем:

#программа 2

N=0

while (N<21):

X=N*N

print(N, X)

N=N+1

print(“End”)


Степени числа 2

Задача:

Аналогично таблице квадратов можно составить программу, печатающую числа 2**n: N=N+1; X=2**N. Однако это можно сделать проще, если заметить что степень числа 2 – представляет собой произведение двоек столько раз, каков показатель степени.

Решение:

Если значение переменной N будет пробегать ряд чисел от 1 до 21, то переменная X=1 в первом шаге, и затем X=X*2 в последующих шагах программы даст нам значение степени числа 2. Печатая значение N и X имеем:


#программа 3

N=1

X=1

while (N<21):

X=X*2

print(N, X)

N=N+1

print(“End”)

Такой способ вычислений очень рационален. Чтобы лучше это понять, вычислим первые шесть значений 2^n вручную:

2*1=2

2*2=4

4*2=8

8*2=16

16*2=32

32*2=64

Т.е. вместо того, чтобы каждый раз перемножать n двоек, лучше один раз умножить на 2 предыдущее значение: 2^n=2*2^(n-1).

Такой способ задания числовых последовательностей, когда следующие элементы определяются через значения предыдущих, называется возвратным или рекуррентным.

Для себя его можно переформулировать в виде правила рекурсии: чтобы двигаться вперёд – смотри назад!


Список использованной Литературы:


● 

Филичев “Занимательный Бейсик”

● 

Л.Л.Босова А.Ю.Босова “Информатика”

● 

Брайсон Пейн “Питон для детей и их родителей”

● 

Википедия “Онлайн Энциклопедия”

● 

https://younglinux.info/python/variable


Оглавление

  • Программа. Язык Программирования