содержание | Предыдущий раздел (1.1 Python) | Следующий раздел (1,3 числа)
1.2 Первая программа
В этом разделе обсуждаются основы создания программы, запуска интерпретатора и отладки.
запустить Python
Программы Python всегда выполняются в интерпретаторе.
Интерпретатор — это «консольное» приложение, обычно запускаемое из оболочки командной строки.
python3
Python 3.6.1 (v3.6.1:69c0db5050, Mar 21 2017, 01:21:04)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
Опытные программисты обычно без проблем используют интерпретатор таким образом, но для новичков он не так удобен. Вы можете использовать среду, которая предоставляет интерфейс, отличный от интерфейса Python, но изучение того, как запускать терминал Python, по-прежнему требует знания.
интерактивный режим
Когда вы запускаете Python, вы можете войти в интерактивный режим, в котором можно проводить эксперименты по программированию.
Если код введен, код будет запущен немедленно. Нет процесса редактирования/компиляции/запуска/отладки и т. д.
>>> print('hello world')
hello world
>>> 37*42
1554
>>> for i in range(5):
... print(i)
...
0
1
2
3
4
>>>
Это так называемый перевод цикла "чтение-оценка-вывод-вывод".), полезный для отладки и исследования кода.
Пауза: Если вы не знаете, как взаимодействовать с Python, прекратите делать то, что вы делаете, и выясните, как взаимодействовать с Python. Если вы используете интегрированную среду разработки (IDE), она может быть скрыта за пунктом меню или другим окном. Многие части этого курса предполагают, что вы можете взаимодействовать с переводчиком.
Давайте подробнее рассмотрим элементы REPL:
-
>>>
Приглашение используется для запуска нового оператора. -
...
Подсказка используется для продолжения оператора, ввода пустой строки для обозначения окончания всего ввода и запуска введенного кода.
...
Подсказка может появиться или не появиться, в зависимости от используемой среды. Для этого курса...
Приглашение выглядит пустым, что облегчает вырезание и вставку образца кода.
подчеркивать_
Сохраните окончательный результат.
>>> 37 * 42
1554
>>> _ * 2
3108
>>> _ + 50
3158
>>>
Только в интерактивном режиме (см. подчеркивание_
сохранить окончательный результат), никогда не используйте этот метод в программе.
Создать программу
программа, написанная на.py
в файле.
# hello.py
print('hello world')
Вы можете использовать свой любимый текстовый редактор для создания этих.py
документ.
запустить программу
Чтобы выполнить программу, в терминале используйтеpython
команду для его выполнения. Например, программа Python выполняется в командной строке системы Unix следующим образом:
Пример выполнения программы в командной строке системы Unix:
bash % python hello.py
hello world
bash %
В качестве альтернативы запустите программу Python из оболочки Windows:
C:\SomeFolder>hello.py
hello world
C:\SomeFolder>c:\python36\python hello.py
hello world
Примечание. В системах Windows может потребоваться указать полный путь к интерпретатору Python, напримерc:\python36\python
. Однако, если Python был установлен обычным способом, может потребоваться просто ввести имя файла программы, например.hello.py
.
пример программы
Решим следующие задачи:
Однажды утром вы выходите и кладете купюру в 1 доллар на тротуар рядом с Sears Tower в Чикаго. С тех пор каждый день вы тратите в два раза больше денег, чем накануне. За какое время эта стопка банкнот превысит высоту башни?
Вот ответ:
# sears.py
bill_thickness = 0.11 * 0.001 # Meters (0.11 mm)
sears_height = 442 # Height (meters)
num_bills = 1
day = 1
while num_bills * bill_thickness < sears_height:
print(day, num_bills, num_bills * bill_thickness)
day = day + 1
num_bills = num_bills * 2
print('Number of days', day)
print('Number of bills', num_bills)
print('Final height', num_bills * bill_thickness)
при исполненииsears.py
Запустив программу, вы получите следующий вывод:
bash % python3 sears.py
1 1 0.00011
2 2 0.00022
3 4 0.00044
4 8 0.00088
5 16 0.00176
6 32 0.00352
...
21 1048576 115.34336
22 2097152 230.68672
Number of days 23
Number of bills 4194304
Final height 461.37344
Используя эту программу в качестве руководства, вы можете изучить многие важные основные концепции Python.
утверждение
Программа Python состоит из серии операторов.
a = 3 + 4
b = a * 2
print(b)
Каждый оператор заканчивается новой строкой. Операторы выполняются один за другим, пока поток управления не достигнет конца файла.
Примечания
Комментарии — это текст, который не будет выполняться интерпретатором.
a = 3 + 4
# This is a comment
b = a * 2
print(b)
Аннотировано#
знак и продолжается до конца строки.
Переменная
Переменная — это имя значения. Можно использовать буквы от a до z (как строчные, так и прописные) или использовать символы подчеркивания._
Символьное представление. Числа также могут быть частью имен переменных, за исключением первого символа.
height = 442 # valid
_height = 442 # valid
height2 = 442 # valid
2height = 442 # invalid
тип
Переменные не нужно объявлять с типом значения. Тип связан со значением справа, а не с именем переменной.
height = 442 # An integer
height = 442.0 # Floating point
height = 'Really tall' # A string
Python — динамический язык. По мере выполнения программы воспринимаемый «тип» переменной может меняться в зависимости от текущего значения, присвоенного переменной.
Деликатный случай
Язык Python чувствителен к регистру (то есть чувствителен к регистру), а прописные и строчные буквы считаются разными буквами. Это разные переменные:
name = 'Jake'
Name = 'Elwood'
NAME = 'Guido'
Операторы, поставляемые с языком Python, всегда пишутся строчными буквами:
while x < 0: # OK
WHILE x < 0: # ERROR
цикл
while
Оператор выполняет цикл:
while num_bills * bill_thickness < sears_height:
print(day, num_bills, num_bills * bill_thickness)
day = day + 1
num_bills = num_bills * 2
print('Number of days', day)
если толькоwhile
Значение выражения послеtrue
,while
Выполняются следующие операторы с отступом.
отступ
Отступ используется для обозначения групп утверждений, которые составляются вместе. Рассмотрим предыдущий пример:
while num_bills * bill_thickness < sears_height:
print(day, num_bills, num_bills * bill_thickness)
day = day + 1
num_bills = num_bills * 2
print('Number of days', day)
Отступ группирует следующие операторы в одну повторяющуюся операцию:
print(day, num_bills, num_bills * bill_thickness)
day = day + 1
num_bills = num_bills * 2
потому что в концеprint()
заявление (т.print('Number of days', day)
) не имеет отступа, поэтому он не является частью цикла. Пустые строки предназначены только для удобства чтения и не влияют на выполнение программы.
Лучшие практики для отступов
- Используйте пробелы вместо табуляции.
- Используйте четыре пробела на уровень.
- Используйте редактор, поддерживающий Python.
Единственное требование Python состоит в том, что отступы в одном и том же блоке кода должны быть согласованными. Например, следующий отступ неверен:
while num_bills * bill_thickness < sears_height:
print(day, num_bills, num_bills * bill_thickness)
day = day + 1 # ERROR
num_bills = num_bills * 2
Условные операторы
if
Операторы используются для выполнения условия:
if a > b:
print('Computer says no')
else:
print('Computer says yes')
Чтобы проверить несколько условий, вы можете использоватьelif
добавить дополнительные проверки.
if a > b:
print('Computer says no')
elif a == b:
print('Computer says yes')
else:
print('Computer says maybe')
вывод
print
Функция выводит переданное значение параметра в виде строки текста.
print('Hello world!') # Prints the text 'Hello world!'
Переменные также могут быть выведены. Выходной текст будет значением переменной, а не именем переменной.
x = 100
print(x) # Prints the text '100'
Если вprint
функции, которые разделяются пробелами на выходе.
name = 'Jake'
print('My name is', name) # Print the text 'My name is Jake'
print()
Функция всегда помещает новую строку в конец.
print('Hello')
print('My name is', 'Jake')
Приведенный выше код выведет следующее:
Hello
My name is Jake
Дополнительные новые строки могут быть подавлены:
print('Hello', end=' ')
print('My name is', 'Jake')
Приведенный выше код выведет следующее:
Hello My name is Jake
пользовательский ввод
Чтобы прочитать строку введенного пользователем ввода, вы можете использоватьinput()
функция:
name = input('Enter your name:')
print('Your name is', name)
input()
Функция выводит приглашение пользователю и возвращает его ответ.
Это полезно для короткой программы, обучающего упражнения или простой отладки.
Но это не так широко используется в практических программах.
заявление о пропуске
Иногда вам нужно указать пустой блок кода, тогда вы можете использоватьpass
ключевые слова.
if a > b:
pass
else:
print('Computer says false')
pass
Оператор, также известный как оператор «без операций», ничего не делает. Он используется в качестве заполнителя для операторов, которые могут быть добавлены позже.
упражнение
Это первый набор упражнений, требующих создания файла Python и его запуска. С этого момента предполагается, что файл, который вы редактируете, находится вpractical-python/Work/
содержание. Чтобы помочь вам найти подходящее место, было создано несколько пустых файлов запуска с подходящими именами. Пожалуйста, найдите тот, который использовался в первом упражненииWork/bounce.py
документ.
Задача 1.5: Прыгающие мячи
Резиновый мяч падает с высоты 100 м и при каждом ударе о землю отскакивает на 3/5 своей первоначальной высоты. написать программуbounce.py
, которая выводит таблицу, показывающую высоту первых 10 отскоков.
Сгенерированная программой таблица выглядит так:
1 60.0
2 36.0
3 21.599999999999998
4 12.959999999999999
5 7.775999999999999
6 4.6655999999999995
7 2.7993599999999996
8 1.6796159999999998
9 1.0077695999999998
10 0.6046617599999998
Примечание. Вы можете сделать вывод более кратким, если воспользуетесь функцией round(). Попробуйте округлить вывод до 4 знаков после запятой, используя функцию round().
1 60.0
2 36.0
3 21.6
4 12.96
5 7.776
6 4.6656
7 2.7994
8 1.6796
9 1.0078
10 0.6047
Упражнение 1.6: Отладка
Следующий фрагмент кода содержит код изПроблема Сирс Тауэр, он также имеет ошибку:
# sears.py
bill_thickness = 0.11 * 0.001 # Meters (0.11 mm)
sears_height = 442 # Height (meters)
num_bills = 1
day = 1
while num_bills * bill_thickness < sears_height:
print(day, num_bills, num_bills * bill_thickness)
day = days + 1
num_bills = num_bills * 2
print('Number of days', day)
print('Number of bills', num_bills)
print('Final height', num_bills * bill_thickness)
Скопируйте и вставьте приведенный выше код в файл с именемsears.py
в новой программе. при исполненииsears.py
Вы получите сообщение об ошибке, которое приведет к сбою программы. Сообщение об ошибке выглядит следующим образом:
Traceback (most recent call last):
File "sears.py", line 10, in <module>
day = days + 1
NameError: name 'days' is not defined
Чтение сообщений об ошибках — важная часть кода Python. В случае сбоя программы последняя строка сообщения трассировки является фактической причиной сбоя программы. здесь(NameError: name 'days' is not defined
), вы должны увидеть фрагмент исходного кода (day = days + 1
), распознанное имя файла (sears.py
) и номер строки кода ошибки (line 10
).
- Какая строка неверна?
- В чем ошибка?
- Исправлять ошибки.
- Успешно запустите программу. Запустите программу успешно
содержание | Предыдущий раздел (1.1 Python) | Следующий раздел (1,3 номера)
Примечание. Полный перевод см.GitHub.com/co Статья 3 — /PRA…