简体   繁体   English

Python - 将String转换为Integer以进行边界输入

[英]Python - Converting String to Integer for boundary inputs

I've been working on trying to get boundary inputs working in a small game of mine. 我一直在努力让边界输入在我的小游戏中运行。

At first I got this error: 起初我得到了这个错误:

Exception in Tkinter callback
Traceback (most recent call last):
  File "/usr/lib/python3.2/tkinter/__init__.py", line 1402, in __call__
    return self.func(*args)
  File "/home/ppppwn3d/workspace/Python/JailBreakBob/JailBreakBob.py", line 173, in     buttonclick_gamescreen
    if entryx > 10 or entryx < -10 or entryy > 10 or entryy < -10 :
TypeError: unorderable types: str() > int()

So I realised that I had to convert the string I got from the entry widget into an integer, I looked up the code for doing on both stackoverflow and elsewhere on the web but it doesn't seem to be working. 所以我意识到我必须将从条目小部件中获得的字符串转换为整数,我查找了在stackoverflow和web上的其他地方执行的代码,但它似乎不起作用。

I've tried both: 我试过了两个:

int (e1.get())
int (e2.get())

and

int (entryx)
int (entryy)

within

while pressed == 8 :
    int (e1.get())
    int (e2.get())
    entryx = e1.get()
    entryy = e2.get()
    answerx = answerlistx[randomimage]
    answery = answerlisty[randomimage]

    if entryx == answerx and entryy == answery:
        canvas.delete(images)
        randomimage = random.randrange(0,49+1)
        scorecounter = scorecounter + 1
        game = PhotoImage(file=imagelist[randomimage])
        images = canvas.create_image(30, 65, image = game, anchor = NW)
        e1.delete(0, END)   
        e2.delete(0, END)
        pressed = ''
    if entryx > 10 or entryx < -10 or entryy > 10 or entryy < -10 :
        wrong = canvas.create_image(30, 65, image = outside, anchor = NW)
        e1.delete(0, END)   
        e2.delete(0, END)
        pressed = ''
    else:
        wrong = canvas.create_image(30, 65, image = incorrect, anchor = NW)
        e1.delete(0, END)   
        e2.delete(0, END)
        pressed = ''

Without any luck. 没有运气。 This was from following what I've read so far but I'm still getting the same error from above. 这是从我到目前为止所阅读的内容开始的,但我仍然从上面得到同样的错误。 Could someone tell me what I'm doing wrong please? 有人能告诉我,我做错了吗?

Thanks in advance! 提前致谢!

This below statements: 以下陈述:

int (e1.get())   # This is actually doing nothing.
int (e2.get())
entryx = e1.get()
entryy = e2.get()

doesn't assign the integer value to entryx or entryy . 不会将整数值分配给entryxentryy Perhaps you wanted something like this: 也许你想要这样的东西:

entryx = int (e1.get())
entryy = int (e2.get())

Lines int (e1.get()) and int (e2.get()) do actually nothing. int (e1.get())int (e2.get())实际上什么也没做。 Instead you should convert e1.get() and e2.get() to int while assigning them to entryx and entryy : 相反,你应该将e1.get()e2.get()转换为int同时将它们分配给entryxentryy

entryx = int(e1.get())
entryy = int(e2.get())

int() doesn't convert items in place: int()不会转换项目:

>>> s = "100"
>>> int(s)
100
>>> s
'100'
>>> type(s)
<type 'str'>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM