С. С. Иванов - Начинаем Python
Просто о сложномНазвание: | Начинаем Python | |
Автор: | С. С. Иванов | |
Жанр: | Учебники и самоучители по компьютеру | |
Изадано в серии: | неизвестно | |
Издательство: | неизвестно | |
Год издания: | - | |
ISBN: | неизвестно | |
Отзывы: | Комментировать | |
Рейтинг: | ||
Поделись книгой с друзьями! Помощь сайту: донат на оплату сервера |
Краткое содержание книги "Начинаем Python"
Читаем онлайн "Начинаем Python". [Страница - 4]
третьи - выводят данные на принтер и
музыкальные колонки. А вам в это время надо срочно решить квадратное
(а то и совсем не квадратное) уравнение. Или сосчитать количество букв в
поэме «Полтава». Или сосчитать, сколько дней вы уже прожили на свете и
когда отмечать свой МИЛЛИОННЫЙ день рождения. Все эти задачи мы с
вами скоро решим с помощью Питона.
Компьютер, как вы, надеюсь, знаете, понимает только свой внутренний язык,
состоящий из последовательностей нулей и единиц. Поэтому первоначально
программы выглядели примерно так: а
11101000100011101000110111000010001110101111010100110111011000
0100011110111010111100
(и на самом деле в процессоре компьютера они и сейчас так выглядят).
Однако очень быстро первые программисты, измученные головной болью,
придумали, как избавиться от этого кошмара. Дело в том, что этот поток
нулей и единиц на самом деле компьютер воспринимает кусками опреде
лённого размера, а каждый кусок означает для компьютера определённую
команду, например: возьми данные из ячейки 1010100010101101 внешней
(довольно медлительной) памяти и загрузи их во второй регистр оператив
ной (то есть очень быстро исполняемой) памяти, а теперь к первому реги
стру добавь содержимое второго регистра, а результат помести назад, в пер
вый регистр.
Такого рода команды уже можно записать более-менее понятным хорошо
подготовленному человеку языком, именуемым Ассемблер (от английского
Assemble - собирать).
ф
13
Получается примерно вот так:
LDA, R2
RST 16
LDA, R1
SUMR1, R2
Дальше компьютер сам, с помощью несложной программы, переводил эти
символы в свой язык единиц и нолей. Писать такие программы уже немного
легче, хотя тоже пока очень тяжело: не очень понятно, надо следить за каж
дым регистром памяти, помнить в какой ячейке что лежит... Кроме того, у
каждого процессора свой набор команд, а значит, и свой Ассемблер. Ассем
блер считается языком низкого уровня, но, тем не менее, его изобретение
сильно облегчило жизнь программистов. Теперь вместо ужасающих и длин
нющих последовательностей нулей и единичек они могли писать просто ко
манды из символов, отдалённо напоминающих обычный язык.
А вот языки высокого уровня уже созданы на, так сказать, сильно упрощён
ном человеческом языке (как правило, английском). Теперь компьютер сам
решает, в какой регистр памяти загружать ваши данные, и как их обраба
тывать, оставляя человеку более интересное занятие - быстро объяснить
компьютеру, что он (человек, конечно) хочет от него (от компьютера, есте
ственно), получить. И изучить эти языки значительно проще, чем, напри
мер, английский. Благо в любом языке программирования слов не очень-то
и много - максимум пара сотен. И работают эти языки на большинстве
современных компьютеров. Языков высокого уровня создано несколько со
тен, и вот в конце XX века, появился, наконец, Питон.
Программы, созданные на Питоне, просты и даже, не побоюсь этого слова элегантны, и, на удивление, кратки - то есть не надо набивать слишком мно
го «букав» (как сегодня модно писать); а так как исследования показали, что
программисты пишут примерно одинаковое количество строк кода каждый
день независимо от языка, то программы на Питоне создаются несколько
быстрее, чем на других языках программирования.
И вот вам пример: А
>С>ОООХ>^^
Дан текстовый файл «24.txt» из 10е символов X, Y и Z. Надо
определить длину самой длинной последовательности, состо
ящей из символов X.
14
ф
Решение на Паскале (это тоже язык высокого уровня):
var maxLen, curLen, i: integer;
s: string;
f: text;
begin
assign(f, 24.txt');
reset (f);
readln(f, s);
maxLen := 1;
curLen := 1;
for i:=2 to Length(s) do
if (s[i] = s[i-1 ]) and (s[i] = X’) then
begin
curLen := curLen + 1;
if curLen > maxLen then
maxLen := curLen;
end
else
curLen := 1;
writeln(maxLen);
end.
Решение на Питоне: л
print(max(map(len, open('24.txt').readline().replace('Z', ' ').replace('Y', '
split())))
Ну как? Довольно лаконично, не так ли?
А поскольку Питон поддерживает функциональный, императивный,
объектно-ориентированный и процедурный стили программирования...
Как, вы не понимаете, о чём я? Да я и сам не понял, что написал... Вот после
прочтения моего опуса залезете в Интернет и изучите все эти заумные сти
ли, а пока - давайте научимся писать несложные (шутка! и довольно слож
ные тоже) программы на Питоне.
Язык программирования Питон существует примерно с 1991 года и с тех
пор он вошёл в тройку самых популярных языков --">
музыкальные колонки. А вам в это время надо срочно решить квадратное
(а то и совсем не квадратное) уравнение. Или сосчитать количество букв в
поэме «Полтава». Или сосчитать, сколько дней вы уже прожили на свете и
когда отмечать свой МИЛЛИОННЫЙ день рождения. Все эти задачи мы с
вами скоро решим с помощью Питона.
Компьютер, как вы, надеюсь, знаете, понимает только свой внутренний язык,
состоящий из последовательностей нулей и единиц. Поэтому первоначально
программы выглядели примерно так: а
11101000100011101000110111000010001110101111010100110111011000
0100011110111010111100
(и на самом деле в процессоре компьютера они и сейчас так выглядят).
Однако очень быстро первые программисты, измученные головной болью,
придумали, как избавиться от этого кошмара. Дело в том, что этот поток
нулей и единиц на самом деле компьютер воспринимает кусками опреде
лённого размера, а каждый кусок означает для компьютера определённую
команду, например: возьми данные из ячейки 1010100010101101 внешней
(довольно медлительной) памяти и загрузи их во второй регистр оператив
ной (то есть очень быстро исполняемой) памяти, а теперь к первому реги
стру добавь содержимое второго регистра, а результат помести назад, в пер
вый регистр.
Такого рода команды уже можно записать более-менее понятным хорошо
подготовленному человеку языком, именуемым Ассемблер (от английского
Assemble - собирать).
ф
13
Получается примерно вот так:
LDA, R2
RST 16
LDA, R1
SUMR1, R2
Дальше компьютер сам, с помощью несложной программы, переводил эти
символы в свой язык единиц и нолей. Писать такие программы уже немного
легче, хотя тоже пока очень тяжело: не очень понятно, надо следить за каж
дым регистром памяти, помнить в какой ячейке что лежит... Кроме того, у
каждого процессора свой набор команд, а значит, и свой Ассемблер. Ассем
блер считается языком низкого уровня, но, тем не менее, его изобретение
сильно облегчило жизнь программистов. Теперь вместо ужасающих и длин
нющих последовательностей нулей и единичек они могли писать просто ко
манды из символов, отдалённо напоминающих обычный язык.
А вот языки высокого уровня уже созданы на, так сказать, сильно упрощён
ном человеческом языке (как правило, английском). Теперь компьютер сам
решает, в какой регистр памяти загружать ваши данные, и как их обраба
тывать, оставляя человеку более интересное занятие - быстро объяснить
компьютеру, что он (человек, конечно) хочет от него (от компьютера, есте
ственно), получить. И изучить эти языки значительно проще, чем, напри
мер, английский. Благо в любом языке программирования слов не очень-то
и много - максимум пара сотен. И работают эти языки на большинстве
современных компьютеров. Языков высокого уровня создано несколько со
тен, и вот в конце XX века, появился, наконец, Питон.
Программы, созданные на Питоне, просты и даже, не побоюсь этого слова элегантны, и, на удивление, кратки - то есть не надо набивать слишком мно
го «букав» (как сегодня модно писать); а так как исследования показали, что
программисты пишут примерно одинаковое количество строк кода каждый
день независимо от языка, то программы на Питоне создаются несколько
быстрее, чем на других языках программирования.
И вот вам пример: А
>С>ОООХ>^^
Дан текстовый файл «24.txt» из 10е символов X, Y и Z. Надо
определить длину самой длинной последовательности, состо
ящей из символов X.
14
ф
Решение на Паскале (это тоже язык высокого уровня):
var maxLen, curLen, i: integer;
s: string;
f: text;
begin
assign(f, 24.txt');
reset (f);
readln(f, s);
maxLen := 1;
curLen := 1;
for i:=2 to Length(s) do
if (s[i] = s[i-1 ]) and (s[i] = X’) then
begin
curLen := curLen + 1;
if curLen > maxLen then
maxLen := curLen;
end
else
curLen := 1;
writeln(maxLen);
end.
Решение на Питоне: л
print(max(map(len, open('24.txt').readline().replace('Z', ' ').replace('Y', '
split())))
Ну как? Довольно лаконично, не так ли?
А поскольку Питон поддерживает функциональный, императивный,
объектно-ориентированный и процедурный стили программирования...
Как, вы не понимаете, о чём я? Да я и сам не понял, что написал... Вот после
прочтения моего опуса залезете в Интернет и изучите все эти заумные сти
ли, а пока - давайте научимся писать несложные (шутка! и довольно слож
ные тоже) программы на Питоне.
Язык программирования Питон существует примерно с 1991 года и с тех
пор он вошёл в тройку самых популярных языков --">