Перевод: "Практическое программирование на Python" 01_02_Hello_world

Python
Перевод: "Практическое программирование на Python" 01_02_Hello_world

содержание | Предыдущий раздел (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…