2014-09-08 3 views
0

Я работаю над своим скриптом python, чтобы добавить числа в переменную program_top.Замените строку

У меня есть строки 315.0, которые я хочу заменить на 315.

Когда я использую это:

program_top = 315 + 37.5 * idx 

Вот результаты:

20:48:02 T:3876 NOTICE: 315.0 
20:48:02 T:3876 NOTICE: 315.0 
20:48:02 T:3876 NOTICE: 315.0 
20:48:02 T:3876 NOTICE: 315.0 
20:48:02 T:3876 NOTICE: 315.0 
20:48:02 T:3876 NOTICE: 315.0 
20:48:02 T:3876 NOTICE: 315.0 
20:48:02 T:3876 NOTICE: 315.0 
20:48:02 T:3876 NOTICE: 315.0 
20:48:02 T:3876 NOTICE: 315.0 
20:48:02 T:3876 NOTICE: 315.0 

Я хочу, чтобы результаты, как это:

20:48:02 T:3876 NOTICE: 315 
20:48:02 T:3876 NOTICE: 315 
20:48:02 T:3876 NOTICE: 315 
20:48:02 T:3876 NOTICE: 315 
20:48:02 T:3876 NOTICE: 315 
20:48:02 T:3876 NOTICE: 315 
20:48:02 T:3876 NOTICE: 315 
20:48:02 T:3876 NOTICE: 315 
20:48:02 T:3876 NOTICE: 315 
20:48:02 T:3876 NOTICE: 315 
20:48:02 T:3876 NOTICE: 315 

Можете ли вы сказать мне, как Я могу использовать program_top = 315 + 37.5 * idx, чтобы удалить .0, чтобы заменить его пустой строкой?

+0

'int (315 + 37.5 * idx)'? –

+0

@ g.d.d.c это звучит неплохо, но строка '352.5' будет заменена на' 352', поэтому я не хочу, чтобы строка '352.5' была заменена только для' .0'. как я могу использовать функцию string.replace для замены строки, которую я хочу? – 2014-09-08 20:10:52

ответ

3

program_top = int(315 + 37.5 * idx). Это преобразует float в целое число, поэтому не будет десятичных знаков. Если вы хотите, чтобы удалить знаков после запятой, если она заканчивается .0, попробуйте: метод

program_top = 315 + 37.5 * idx 
if not program_top % 1.0: 
    program_top = int(program_top) 

Строка:

program_top = str(315 + 37.5 * idx) 
program_top = program_top[:-2] if program_top.endswith(".0") else program_top 

Однако решение на основе числа (выше) лучше.

+0

Большое вам спасибо, но мне все еще нужен '.5', поскольку я не хочу заменять его на пустую строку, как только для' .0'. любая идея, как я могу использовать 'program_top = 315 + 37.5 * idx', чтобы заменить строки' .0' на пустую строку? – 2014-09-08 20:06:12

+0

он не имеет ничего общего с версией. У меня есть список строк '315.0',' 390.0', поэтому я хочу заменить '.0' на пустые строки. как я могу это сделать, используя функцию string.replace? – 2014-09-08 20:09:12

+0

спасибо, это ответ, который я ищу :) – 2014-09-08 20:17:39

Смежные вопросы