gpt4 book ai didi

Python - 如何让条目小部件添加而不是连接?

转载 作者:行者123 更新时间:2023-12-04 17:49:23 25 4
gpt4 key购买 nike

我想获得两个单独的条目小部件以添加其中的任何内容,但现在的问题是连接条目小部件中的数字。

from tkinter import *

master = Tk()

class MainWindow:
def __init__(self, master):
self.master = master
master.geometry("640x480")


def Calculate():
entry1 = firstEntry.get()
entry2 = secondEntry.get()
result = entry1 + entry2
print(result)


firstLabel = Label(text="First Value")
firstLabel.grid(row=1, column=1)

firstEntry = Entry(master)
firstEntry.grid(row=1, column=2)

addLabel = Label(text="+")
addLabel.grid(row=1, column=3)

secondEntry = Entry(master)
secondEntry.grid(row=1, column=4)

secondLabel = Label(text="Second Value")
secondLabel.grid(row=1, column=5)

equalsButton = Button(text="=", width=10, command=Calculate)
equalsButton.grid(row=2, column=3)

master.mainloop()

最佳答案

问题是 Python 中的 + 运算符对字符串和数字(​​以及其他)都有意义。对于数字,它代表自然(在“普通”意义上)加法:

>>> 1 + 1
2

另一方面,对于字符串,它代表连接:

>>> "Hello" + ", world!"
'Hello, world!"

tkinter.Entry实例的get方法返回一个字符串对象,即str的一个实例。因此,无论输入是否包含数字,entry1 = firstEntry.get()entry2 = secondEntry.get() 都会为您提供一个字符串。然后,entry1 + entry2 产生一个字符串,即 entry1entry2 的串联。

因此,您需要事先将条目的内容转换为整数或 float ,后者更为通用。您的 Calculate 函数可以变成:

def Calculate():
entry1 = float(firstEntry.get())
entry2 = float(secondEntry.get())
result = entry1 + entry2
print(result)

但是请注意,如果无法执行转换,float 函数将引发一个ValueError。以下内容会更谨慎:

def Calculate():
try:
entry1 = firstEntry.get()
entry2 = secondEntry.get()
result = entry1 + entry2
print(result)
except ValueError:
print("Please type in valid numbers")

关于Python - 如何让条目小部件添加而不是连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46259076/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com