类型错误:“str”和“int”的实例之间不支持“>”

2024-04-28 20:52:24 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的代码中,这个错误一直在左、右和中间出现。真烦人。到现在为止,我已经把它们都修好了,但我似乎修不好这个。

Traceback (most recent call last):
File "C:\Users\Home\Desktop\da.py", line 31, in <module>
if (number > 1):
TypeError: '>' not supported between instances of 'str' and 'int'

代码本身:

    from tkinter import *
from tkinter import ttk
import tkinter as tk
def add_text():
    global number
    number = num_textbox.get()
    print(number)
root = Tk()
root.title("Number Cent Divider")
root.geometry("330x85")
num_col_mat = Label(root, text="Your number:")
num_col_mat.pack()
num_textbox = Entry(root, bd=1)
num_textbox.pack()
enter_button = Button(root, text="Enter", command=add_text)
enter_button.pack()
root.mainloop()
if (number[-1] == 5 or number[-1] == 0):
    number / 5
    int(number)
    if (number > 1):
        answer = "\number 5 cent coins"
        str(number)
        popup()
    else:
        answer = "\number 5 cent coin"
        str(number)
        popup()
else:
    int(number)
    if (number > 1):
        answer = "\number 1 cent coins"
        str(number)
        popup()
    else:
        answer = "\number 1 cent coin"
        str(number)
        popup()
def popup():
    popup = tk.Tk()
    popup.wm_title("answer")
    answer = Label(popup, text=answer)
    answer.pack
    B1 = ttk.Button(popup, text="Ok", command=popup.destroy)
    B1.pack()

任何帮助将不胜感激,因为这个错误不想得到修复。


Tags: textanswerimportnumberiftkinterrootelse
1条回答
网友
1楼 · 发布于 2024-04-28 20:52:24

number是一个str,因此首先需要将其转换为数字。E、 g.:

if int(number) > 1

在一行上单独写int(number)不会有任何作用。。。它只返回一个数字,然后忽略它。如果要将结果存储在number变量中,可以使用number = int(number)

考虑使用number = int(num_textbox.get())来获得前面的转换。(但请注意,如果该文本框的内容不是有效数字,则会出现异常。)

相关问题 更多 >