Измените программу print_unicode.py
так, чтобы пользователь мог
вводить в командной строке несколько разных слов и получать
только те строки из таблицы символов Юникода, в которых содержатся все
слова, указанные пользователем. Это означает, что мы сможем вводить
такие команды:
print_unicode_ans.py greek symbol
Один из способов достижения поставленной цели состоит в том,
чтобы заменить переменную word
(которая может хранить 0
, None
или строку) списком words
. Не забудьте изменить информацию о порядке
использования. В результате изменений не более десяти строк
программного кода добавится и не более десяти строк изменится.
Имя файла: print_unicode_ans.py
.
quadratic.py
Измените программу quadratic.py
так, чтобы она не выводила
коэффициенты со значением 0.0
, а отрицательные коэффициенты
выводились бы как -n
, а не + - n
.
Имя файла: quadratic_ans.py
.
escape()
Удалите функцию escape_html()
из программы cvs2html.py
и
используйте вместо нее функцию xml.sax.saxutils.escape()
из модуля
xml.sax.saxutils
.
Для этого потребуется добавить одну новую строку
(с инструкцией import
), удалить пять строк (с ненужной функцией)
и изменить одну строку (задействовать функцию
xml.sax.saxutils.escape()
вместо escape_html()
).
Имя файла: cvs2html_ans1.py
.
csv2html.py
Измените программу cvs2html.py
еще раз и добавьте в нее новую
функцию с именем process_options()
. Эта функция должна вызываться из
функции main() и возвращать кортеж с двумя значениями:
maxwidth
(типа int
) и format
(типа str
). При вызове функция
process_options()
должна устанавливать maxwidth
в значение по
умолчанию 100
, а строку format
– в значение по умолчанию ".0f"
,
которое будет использоваться как спецификатор формата при выводе чисел.
Если пользователь вводит в командной строке -h
или --help
,
должно выводиться сообщение о порядке использования и возвращаться
кортеж (None, None)
. (В этом случае функция main()
ничего
делать не должна.) В противном случае функция должна прочитать
аргументы командной строки и выполнить соответствующие
присваивания. Например, устанавливать значение переменной maxwidth
,
если задан аргумент maxwidth=n
, и точно так же устанавливать
значение переменной format
, если задан аргумент format=s
. Ниже
приводится сеанс работы с программой, когда пользователь затребовал
инструкцию о порядке работы:
Terminal> csv2html2_ans.py -h
usage:
csv2html.py [maxwidth=int] [format=str] < infile.csv > outfile.html
maxwidth - необязательное целое число. Если задано, определяет
максимальное число символов для строковых полей. В противном случае
используется значение по умолчанию 100.
format - формат вывода чисел. Если не задан, по умолчанию используется
формат ".0f".
А ниже приводится пример командной строки, в которой установ- лены оба аргумента:
Terminal> csv2html2_ans.py maxwidth=20 format=0.2f < mydata.csv > mydata.html
Не забудьте изменить функцию print_line()
так, чтобы она
использовала переменную format
при выводе чисел – для этого вам
придется передавать функции дополнительный аргумент, добавить одну
строку и изменить еще одну строку. И это немного затронет функцию
main()
. Функция process_options()
должна содержать порядка
двадцати пяти строк (включая девять строк с текстом сообщения о
порядке использования).
Имя файла: cvs2html_ans2.py
.