В Python, как я могу проанализировать числовую строку, такую как «545.2222», с ее соответствующим значением float, 542.2222? Или проанализировать строку «31» на целое число, 31? Я просто хочу знать, как разбирать строку с плавающей точкой для float и (отдельно) int string для int.
Хорошо, что вы просите сделать это отдельно. Если вы смешиваете их, вы можете настроить себя на проблемы позже. Простой ответ:
"545.2222"
для float:>>> float("545.2222") 545.2222
"31"
для целого числа:>>> int("31") 31
Другие преобразования, ints для и из строк и литералов:
Конверсии из разных баз, и вы должны заранее знать базу (10 по умолчанию). Обратите внимание, что вы можете прикрепить их к тому, что Python ожидает для своих литералов (см. Ниже) или удалить префикс:
>>> int("0b11111", 2) 31 >>> int("11111", 2) 31 >>> int('0o37', 8) 31 >>> int('37', 8) 31 >>> int('0x1f', 16) 31 >>> int('1f', 16) 31
Если вы не знаете базу заранее, но знаете, что они будут иметь Правильный префикс, Python может сделать это для вас, если вы передадите
0
в качестве базы:>>> int("0b11111", 0) 31 >>> int('0o37', 0) 31 >>> int('0x1f', 0) 31
Литералы без десятичного (то есть целого) из других баз
Если ваша мотивация заключается в том, чтобы ваш собственный код четко представлял жестко заданные конкретные значения, однако вам, возможно, не нужно конвертировать из баз - вы можете позволить Python сделать это для вас автоматически с правильным синтаксисом.
Вы можете использовать префиксы apropos для автоматического преобразования в целые числа с следующими литералами . Они действительны для Python 2 и 3:
Binary, prefix
0b
>>> 0b11111 31
Octal, prefix
0o
>>> 0o37 31
Шестнадцатеричный, prefix
0x
>>> 0x1f 31
Это может быть полезно при описании двоичных флагов, разрешений файлов в коде или шестнадцатеричных значений для цветов - например, не отметить кавычки:
>>> 0b10101 # binary flags 21 >>> 0o755 # read, write, execute perms for owner, read & ex for group & others 493 >>> 0xffffff # the color, white, max values for red, green, and blue 16777215
Создание двусмысленных Python 2, совместимых с Python 3
Если вы видите целое число, которое начинается с 0, в Python 2, это (устаревший) восьмеричный синтаксис.
>>> 037 31
Это плохо, потому что похоже, что значение должно быть
37
. Таким образом, в Python 3 теперь появляетсяSyntaxError
:>>> 037 File "
", line 1 037 ^ SyntaxError: invalid token Преобразуйте восьмеричные элементы Python 2 в восьмеричные, которые работают как с 2, так и с префиксом
0o
:>>> 0o37 31
Да, это абсолютно выполнимо - для этого есть плагин:
Build With Parameters Plugin .
Просто установите его и измените URL-адрес, чтобы на самом деле использовать плагин:
https://jenkins/job/Sandbox/parambuild?Test=foo
И это должно сделать это ...
Для этого вам не нужны дополнительные плагины. Это происходит изначально с помощью Jenkins
https://jenkins/job/Sandbox/buildWithParameters?delay=0sec&Test=foo
Вышеуказанное будет немедленно запускать задание сборки (или независимо от задержки). Это подходит для автоматизации.
Плагин Build With Parameters аналогичен, но он откроет страницу подтверждения Jenkins с предварительно заполненными параметрами (из URL-адреса) и предложит чтобы щелкнуть кнопку «Создать». Это не подходит для автоматизации.