Python

Строки

split i join

txt = "welcome to the jungle"
x = txt.split()
print(x)          # ['welcome', 'to', 'the', 'jungle']
y = txt.split('o')
print(y)          # ['welc', 'me t', 'the jungle']

див.також .rsplit(), .partition(), .splitlines(),

my_tuple = ("John", "Peter", "Vicky")
x = "-".join(my_tuple)
print(x)          # 'John-Peter-Vicky'

Списки

Бібліотеки

Словари

Как объединить два словаря в Python :link:

Синтаксис

Арифметика

Три простых способа поменять знак числа на противоположный

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 - нормальное завершение; другие значения, если возникли проблемы

подробнее

Ошибки

  1. malformed header from script 'script.py': Bad header: NameError, referer: http://...

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

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

Також, треба звернути увагу на дозволи log-каталогу. cgi-скрипт, який пише лог-файл в каталог (що не належить сайту?) може не працювати з-за проблем permissions… Спочатку треба надати каталогу права 777, після того, як лог-файл буде створено дозволи можна понизити до 755.

  1. 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.