Ошибка определения точности спецификатора формата при форматировании строки - PullRequest
0 голосов
/ 20 марта 2020

Это мой код:

    from tkinter import *

    def calculate():
        temp = int(entry.get())
        temp = 9/5*temp+32
        output_label.configure(text = 'Converted: {:.lf}'.format(temp))
        entry.delete(0,END)

    root = Tk()
    message_label = Label(text = 'Enter a temperature',
                         font=('Verdana', 16))
    output_label = Label(font = ('Verdana', 16))
    entry = Entry(font = ('Verdana', 16), width=4)
    calc_button = Button(text ='ok', font=('Verdana', 16),
                        command=calculate)
    message_label.grid(row=0, column=0)
    entry.grid(row=0, column=1)
    calc_button.grid(row=0, column=2)
    output_label.grid(row=1, column=0, columnspan=3)

    mainloop()

Это ошибка вывода:

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\USER\Anaconda3\envs\nlp_course\lib\tkinter\__init__.py", line 1705, in __call__
    return self.func(*args)
  File "<ipython-input-9-c6af4eb59ca6>", line 7, in calculate
    output_label.configure(text = 'Converted: {:.lf}'.format(temp))
ValueError: Format specifier missing precision

Может кто-нибудь помочь с этой проблемой?

1 Ответ

0 голосов
/ 20 марта 2020

В строке формата есть небольшая ошибка:

'Converted: {:.lf}'

должно быть

'Converted: {:.1f}'

Единственное отличие состоит в том, что вы использовали l вместо 1, когда указание точности с плавающей точкой. 1f означает, что ваш float должен выводиться с одним десятичным знаком.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...