2017-02-10 1 views
-2

Python 3.6Я хочу напечатать точно десятичные разряды

Мне нужно написать программу, в которую я ввожу целое число n. Затем я должен ввести n число учеников вместе с их оценками по математике, физике и химии. Затем я ввожу имя, которое я уже ввел. Я должен напечатать среднее количество баллов, полученных этим человеком. Ответ, который я печатаю, должен печатать до двух знаков после запятой. Я написал код, но я не могу печатать ровно 2 десятичных знака каждый раз. для например:

37.00 

или

26.50 

или

32.87 

вот мой код:

n = int(input("Number of persons: ")) 

scoresheet = [] 

for i in range(n): 
name, math, phy, chem = input("Enter name, math score, phy score, chem score : ").split() 
scoresheet.append({'name' : name, 'math' : math, 'phy' : phy, 'chem' : chem}) 

who = input() 

for i in scoresheet: 
    if (i['name'] == who): 
     m = float(i['math']) 
     p = float(i['phy']) 
     c = float(i['chem']) 
     sum = m + p + c 
     avg = sum/3 
     break 

avg = round(avg,2) 

print(avg) 

Я должен использовать словарь. Мои результаты верны. Единственная проблема - мне приходится печатать ровно 2 десятичных знака каждый раз. Пожалуйста помоги.

+2

'print ('{0: .2f}'. Format (avg))' (предпочтительный стиль Python 3) или 'print ('%. 2f'% avg)' («старый» стиль). Этот сайт очень полезен: https://pyformat.info/ – Bart

+2

Возможный дубликат [Как я могу отформатировать десятичную строку, чтобы всегда показывать 2 десятичных знака?] (Http://stackoverflow.com/questions/1995615/how-can- я-формат-а-десятичного к всегда-шоу-2-десятичные-мест) – Bart

ответ

-1

Вам просто нужно изменить свою последнюю строку:

print("{0:.2f}".format(avg)) 

Here еще некоторая информация о количестве форматирования в питона.

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

  • Нет связанных вопросов^_^