2.1 Project: Mortgage Calculator

1. # == // (comment)
2. Переменные заранее не объявляются (нет даже ключевого слова типа var, тип тоже не указывается).
3. Цикл while имеет вид:
while _condition_:
_statements_
4. Для обозначения вложения участка кода используются отступы (нет ключевых слов типа BEGIN/END или фигурных скобок).
Таким образом, пример цикла while с несколькими инструкциями выглядит следующим образом:
<pre><code>
number = 0
while number <= 10:
print(number)
number = number + 1
print(“Statement outside while loop”)</code></pre>
Вложенный блок завершается на первом выражении, которое имеет меньший отступ.
5. Количество пробелов в отступе неважно – важна последовательность в соблюдении этого количества пробелов для данного вложенного блока. Распространённая практика – 4 пробела.
6. Сказано, что использование табов приведёт к ошибке интерпретации. На маке с Python 2.7 всё интерпретируется нормально.
7. Разные блоки, имеющие одинаковый уровень вложенности, могут иметь разное количество пробелов в отступе (чисто как замечание для полноты картины):
<pre><code>
number = 0
while number <= 10:
print(number)
number = number + 1
print(“Statement outside while loop”)

number = 0
while number <= 5:
print(number)
number = number + 1</code></pre>
8. if-else аналогично while – скобок нет, ставится двоеточие, в том числе после else.
9. Переменная, впервые использованная внутри вложенного блока (по сути, объявленная во вложенном блоке), может использоваться вне его.
10. and == &&, or == ||.

 

2.2 Project: Formatted Output and File I/O

1. print() может принимать разное число аргументов, разделённых пробелами. В качестве разделителя при выводе по умолчанию используется пробел.
2. Литерал строки может заключаться в одинарные или двойные кавычки.
3. Способы форматирования строк:
а) (Более современный подход)В форматную строку включаются соответствующие символы; для получения форматированной строки у форматной строки вызывается метод format, который в качестве аргумента принимает выражения, результат каждого из которых подставляется в форматную строку:
<pre><code>
formatString = “placeholder 1: {}, placeholder 2: {}”
formattedString = fs.format(3, 5) # “placeholder 1: 3, placeholder 2: 5″</code></pre>
Можно модифицировать вывод за счёт включения в фигурные скобки дополнительных параметров. Например:
{:>10.2f}

“>” обозначает выравнивание по правому краю (“<” – для левого), 10 – минимальное число занимаемых полей. Не очень понятно использование двоеточия.

б) Другой пример форматирования (“percent operation with strings”):
<pre><code>
name = “IBM”
shares = 100
price = 32.3
print(“%10s %10d %10.2f” % (name, shares, price))</code></pre>
По сути, “%” выполняет роль вызова метода format:
<pre><code>
anotherFormat = “%10s %10d %10.2f”
anotherFormattedString = anotherFormat % (“eight”, 8, 888)</code></pre>
Использование пробелов для отделения “%” от форматной строки и аргументов не обязательно.

4. Вывод в файлы:
<pre><code>
out = open(filename, mode)
print(stringToPrint, file = out)
close(out)
</code></pre>
Где mode может быть “w” (для записи; другие опции, видимо, “r” – для чтения, а также что-то для добавления к уже существующему файлу и т.п.)

Конструкция “file = out” был названа “extension”.

Advertisements