2015-01-09 4 views
1

Я пытаюсь напечатать целые числа (число слева от десятичной точки) со следующим кодом:Форматирование чисел в Python (Печать Номер слева от десятичной дроби)

print "Completed in %g".format(str(time_difference/60), 1.0) + " minutes, %g".format(time_difference % 60, 1.0) + " seconds." 

Вместо этого я получаю:

Completed in %g minutes, %g seconds. 

ответ

1

Попробуйте это:

print "Completed in {} minutes, {} seconds.".format(int(time_difference/60), int(time_difference % 60)) 

Подробнее о "format" statement in the Python documentation.

Кроме того, избегайте конкатенации строк с помощью «+». Обычно он более эффективен до join list of strings.

2

Вы смешиваете способы печати строк. Чтобы использовать format, обратитесь к документу here. Вы должны использовать {}. Например:

>>> print "Completed in {0:g} minutes, {1} seconds".format(time_difference % 60, 1.0) 
Completed in 40 minutes, 1.0 seconds 

Чтобы использовать старые обозначения, вы должны использовать % для форматирования. См string formatting:

>>> print "Completed in %g minutes, %g seconds" % (time_difference % 60, 1.0) 
Completed in 40 minutes, 1 seconds