Python
- Синтаксис
- Типы данных
- Модули
- Библиотеки
- Работа с файлами
- Виртуальное окружение
- Шаблон .gitignore для Python
Строки
Списки
Словари
Как объединить два словаря в Python
Арифметика
Три простых способа поменять знак числа на противоположный
positive_digit = 30
b = positive_digit * -1
print(b) # -30
c = 0 - positive_digit
print(c) # -30
d = - positive_digit
print(d) # -30
Аргументы командной строки
import sys
if __name__ == '__main__':
if len(sys.argv)<=2:
print('usage:', sys.argv[0], '<integer1> <integer2>')
sys.exit(1)
val1 = round(float(sys.argv[1]))
val2 = round(float(sys.argv[2]))
print('Сумма целых чисел:', val1+val2)
$ python argv.py
usage: argv.py <integer1> <integer2>
$ python argv.py 3 5
Сумма целых чисел: 8
$ python argv.py 3.2 5.7
Сумма целых чисел: 9
$ python argv.py -3.2 5.3
Сумма целых чисел: 2
см. также argparse, click и др.
-
Работа с документацией в Python: поиск информации и соглашения
- Форма + AJAX
- Отправка e-mail
- Примеры CGI
- Удаление дубликатов из списка. Сохранить порядок элементов
Завершение программ
sys.exit(code) # code - не обязателен
os._exit(code) # code - необходим!
'’code’’ = 0 - нормальное завершение; другие значения, если возникли проблемы
Ошибки
malformed header from script 'script.py': Bad header: NameError, referer: http://...
Скрипт в терминале отрабатывает без ошибок, а в браузере получаем Error 500.
Одна из причин: вероятно, что скрипт пишет в лог. И когда запуск производился через терминал, то файл лога создался владельцем текущей учетной записи. При запуске через http, владелец уже www-data
который не имеет прав записи в этот файл. Нужно просто удалить файл лога и запустить скрипт через http еще раз.
python3: Relink '/lib/x86_64-linux-gnu/libsystemd.so.0' with '/lib/x86_64-linux-gnu/librt.so.1' for IFUNC symbol 'clock_gettime'
Скрипт в терминале показывает это сообщение, а в браузере получаем Error 500.
Аналогичная предыдущей проблема, возникающая при подключении модуля логирования logging, при настройке записи в файл, который уже создан от другого пользователя. Удалить файл лога или назначить ему разрешение 777.