Python整数问题

2024-05-20 16:45:27 发布

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

编辑:已解决——源代码在此处:http://matthewdowney20.blogspot.com/2011/09/source-code-for-roku-remote-hack.html

提前感谢您的阅读和回答。所以我有一段代码如下(Down()Select()和Up()命令都是预定义的):

def c1(row):
   row_down = row
   row_up = row
   while row_down > '1':
       Down()
       row_down = row_down - 1
       time.sleep(250)
   Select()
   time.sleep(.250)
   while row_up > '1':
       Up()
       row_up = row_up - 1
       time.sleep(250)

所以当我用c1('3')或c1(3)(不是jut3,任何数字都会这样)运行这个函数时,它会停止响应,没有错误或任何问题,但是它执行了第一个Down()命令,它似乎没有超过row_Down=row_Down-1。所以我想可能是卡住了时间。睡觉(.250),因为它不执行Select(),所以如果我删除时间。睡觉(.250)这样的错误:

^{pr2}$

这个代码片段是一个更大的程序的一部分,该程序设计用于从计算机上控制roku播放器,到目前为止,除了这个之外,一切都正常工作,这就是在搜索字段中自动键入,这样你就不必一直滚动,直到你找到一个字母并选择。c1(row)将是第1列第x行,如果你们中的任何人想要程序的源代码,我很乐意将其发送出去。不管怎样谢谢你的倾听。在


Tags: 代码命令源代码time错误sleepselectrow
3条回答
>>> x = raw_input('enter a number: ')
enter a number: 5
>>> x
'5'
>>> type(x)
<type 'str'>
>>> x + 5
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'int' objects
>>> type(int(x))
<type 'int'>
>>> int(x) + 5
10
>>> 

(如果您使用的是python3,请使用input而不是raw_input

我怀疑循环运行时没有错误,因为您可以从一个字符中减去一个字符来更改它:“b-1=a”。(阅读编辑)这也没有错误,因为正如马塞洛·坎托斯在评论中所说,第一个时间。睡觉是250秒,不是250秒。当您删除时间。睡觉当您减去超过ASCII字符范围时可能会出现,因为在没有时间。睡觉. 在

我希望这有帮助!在

编辑:事实上,我觉得我说的在C语言或其他语言中是可行的。在python中,它不起作用。不过,我说的其他话可能会给你一些启示!在

也许你是说

while row_down > 1:

(注意1是没有引号的)。如果是这样,用c1(3)而不是c1('3')调用{}。在


此外,在CPython(版本2,但不是版本3)中,整数与字符串类似,但答案可能不是您所期望的:

^{pr2}$

当比较任何整数与任何字符串时,整数总是小于字符串,因为字母表中(believe it or not!i(如integer)在s(如字符串中)之前。在


正如TokenMacGuy已经指出的,将整数与字符串相加会引发一个TypeError:

'3' - 1
# TypeError: unsupported operand type(s) for +: 'int' and 'str'

这可以解释您在调用c1('3')时看到的错误。在

相关问题 更多 >