Jenkins: задайте строковый параметр со значением по умолчанию (например, & ldquo; 000 & rdquo;), когда пользователь не предоставил никакого ввода [дубликат]

В 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
16
задан wxactly 3 June 2014 в 22:07
поделиться

2 ответа

Да, это абсолютно выполнимо - для этого есть плагин:

Build With Parameters Plugin .

Просто установите его и измените URL-адрес, чтобы на самом деле использовать плагин:

https://jenkins/job/Sandbox/parambuild?Test=foo

И это должно сделать это ...

10
ответ дан wxactly 26 August 2018 в 03:50
поделиться

Для этого вам не нужны дополнительные плагины. Это происходит изначально с помощью Jenkins

https://jenkins/job/Sandbox/buildWithParameters?delay=0sec&Test=foo Вышеуказанное будет немедленно запускать задание сборки (или независимо от задержки). Это подходит для автоматизации.

Плагин Build With Parameters аналогичен, но он откроет страницу подтверждения Jenkins с предварительно заполненными параметрами (из URL-адреса) и предложит чтобы щелкнуть кнопку «Создать». Это не подходит для автоматизации.

12
ответ дан Slav 26 August 2018 в 03:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: