Python


edit idx_content.md top

 

Строки

Списки

Словари

Как объединить два словаря в 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 и др.



Завершение программ

sys.exit(code)  # code - не обязателен
os._exit(code)  # code - необходим!

'’code’’ = 0 - нормальное завершение; другие значения, если возникли проблемы

подробнее

Ошибки

Скрипт в терминале отрабатывает без ошибок, а в браузере получаем Error 500.

Одна из причин: вероятно, что скрипт пишет в лог. И когда запуск производился через терминал, то файл лога создался владельцем текущей учетной записи. При запуске через http, владелец уже www-data который не имеет прав записи в этот файл. Нужно просто удалить файл лога и запустить скрипт через http еще раз.

Скрипт в терминале показывает это сообщение, а в браузере получаем Error 500.

Аналогичная предыдущей проблема, возникающая при подключении модуля логирования logging, при настройке записи в файл, который уже создан от другого пользователя. Удалить файл лога или назначить ему разрешение 777.