我正在尝试在Python中作为一个整数输入入口

2024-09-30 04:36:46 发布

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

这是我的密码:

from Tkinter import *
import tkMessageBox
import tkSimpleDialog

def blank(row, column):
    blank = Label(text=" ")
    blank.grid(row=row, column=column)

def prtent():
    distEnt.getint()
    print distEnt

root = Tk()

#title

root.title("Trip Time Calculator")

label = Label(text="Trip Time Calculator", font=50)
label.grid(columnspan=50)

blank(2, 0)
blank(3, 0)

#distance

distLabel = Label(text="What is your distance?")
distLabel.grid(row=4, column=0)

distEnt = Entry()
distEnt.grid(row=4, column=1)

blank(5, 0)

#speed

speedLabel = Label(text="What is your speed?")
speedLabel.grid(row=6, column=0)

distEnt = Entry()
distEnt.grid(row=6, column=1)

blank(7, 0)

#test button

button = Button(text="Done", command=prtent)
button.grid(row=8, column=0)

root.mainloop()

我的问题是,当我在GUI的一个字段中输入一个数字时,控制台中返回的所有数字都是“.42880656”。我要做的应用程序是,您可以输入距离和速度,并在Python2.7中获得大致的ETA。你知道吗


Tags: textimporttimetitledefcolumnbuttonroot
1条回答
网友
1楼 · 发布于 2024-09-30 04:36:46
print distEnt

这是你的问题。。。distEnt是Entry(),不是数字。我想应该是。。。你知道吗

dist = distEnt.getint()
print dist

再解释一下。。。你知道吗

Entry()distEnt是屏幕上显示的实际组件。把它取为整数没有任何意义——它是一个文本框。它有一个有用的函数.getint(),返回格式化为整数的文本框的内容。如果您想对这些内容做些什么,可以获取该数字并将其放入变量中,然后使用该变量来执行业务逻辑。如果将该变量设置为其他值,则会丢失对GUI中文本框的引用。你知道吗

你实际上看到的错误是Python的东西。您可以从下一个作用域继承变量,而无需执行任何操作。。。你知道吗

a_number = 7
def a_func():
    print a_number # 7

会有用的。但是,如果您尝试赋值给该变量,它将假定您一定犯了错误(为什么您尝试在函数中改变全局状态?!?)并抛出一个错误。在这种情况下,您必须用global关键字继承全局变量才能告诉解释器是的,您的意思是这样的。你知道吗

a_number = 7
def a_func():
    print a_number
    a_number = 42 # exception


a_number = 7
def a_func():
    global a_number
    print a_number # 7
    a_number = 42 
f()
print a_number # 42

还有一点-如果你在变异之前给它赋值,你不会得到异常。。。因为函数范围中的变量名是一个全新的局部变量,与全局变量没有关系。只有在变异前尝试使用全局变量时,才会出现异常。你知道吗

a_number = 7
def a_func():
    a_number = 42
    print a_number # 42
f()
print a_number # 7

相关问题 更多 >

    热门问题