python中的键盘输入数据类型

python中的键盘输入数据类型,python,Python,我目前在一个嵌入式项目中工作。在我的项目中,我想比较两个值 第一个值是整数(0),第二个值是键盘输入(也应该是整数) 每当我尝试运行代码时,它都会显示: {TypeError: unorderable types: int() < str()} {TypeError:无序类型:int()所需位置: 产生的脉冲=所需位置-当前位置 当前位置 要输入整数值,请执行以下操作: enter the value 0 Traceback (most recent call last): Fil

我目前在一个嵌入式项目中工作。在我的项目中,我想比较两个值

第一个值是整数(0),第二个值是键盘输入(也应该是整数)

每当我尝试运行代码时,它都会显示:

{TypeError: unorderable types: int() < str()}
{TypeError:无序类型:int()
如何克服这种类型错误

代码是:

import sys
import time
import RPi.GPIO as gpio
import collections

c = collections.Counter()
c=0


required_position=0
current_position=0
pulse_generated=0
req=0

gpio.setwarnings(False)
gpio.setmode(gpio.BCM)
gpio.setup(23,gpio.OUT)           
gpio.setup(24,gpio.OUT)
gpio.setup(9,gpio.OUT)
gpio.setup(10,gpio.OUT)
gpio.setup(13,gpio.OUT)
gpio.setup(19,gpio.OUT)

mode_1=(8,10,15)
gpio.setup(mode_1,gpio.OUT)
mode_1=(17,27,22)
gpio.setup(mode_1,gpio.OUT)
resolution={
    '1':(0,0,0),
    '1/2':(1,0,0),
    '1/4':(0,1,0),
    '1/8':(1,1,0),
    '1/16':(0,0,1),
    '1/32':(1,0,1),
    }


def current_position_calculation():
    global required_position
    global current_position
    global pulse_generated
    current_position=pulse_generated*6

def required_distance():
    global required_position
    global current_position
    global pulse_generated
    print('position of stepper motor are'
            'z for homeposition(0 deg)',
            'a for 10 degree',
            'b for 20 degree',
            'd for 30 degree',
            'e for 40 degree',
            'f for 50 degree',
            'g for 60 degree',)

    req=input("choose your required position")
    required_position=req
    if required_position==current_position:
        gpio.output(23,True)
        while current_position!=required_position:
            gpio.output(24,True)
            time.sleep(t)
            gpio.output(24,False)
            time.sleep(t)
            current_position+=1
            c+=1
    elif current_position<required_position:
        gpio.output(23,False)
        while current_position>required_position:
            gpio.output(24,True)
            time.sleep(t)
            gpio.output(24,False)
            time.sleep(t)
            current_position-=1
            c-=1
def previous_position():
    global required_position
    global current_position
    global pulse_generated
    if current_position>required_position:
        pulse_generated=required_position-currentposition
    elif current_position<required_position:
        pulse_generated=currentposition-required_position

while True:
    current_position_calculation()
    required_distance()
    previous_position()
导入系统 导入时间 将RPi.GPIO导入为GPIO 导入集合 c=集合。计数器() c=0 所需位置=0 当前位置=0 产生的脉冲=0 请求=0 gpio.setwarnings(False) gpio.setmode(gpio.BCM) gpio.setup(23,gpio.OUT) gpio.setup(24,gpio.OUT) gpio.setup(9,gpio.OUT) gpio.setup(10,gpio.OUT) gpio.setup(13,gpio.OUT) gpio.setup(19,gpio.OUT) 模式_1=(8,10,15) gpio.setup(模式1,gpio.OUT) 模式_1=(17,27,22) gpio.setup(模式1,gpio.OUT) 决议={ '1':(0,0,0), '1/2':(1,0,0), '1/4':(0,1,0), '1/8':(1,1,0), '1/16':(0,0,1), '1/32':(1,0,1), } 定义当前位置计算() 全球所需职位 全球当前位置 产生的全局脉冲 当前位置=产生的脉冲*6 def所需的_距离(): 全球所需职位 全球当前位置 产生的全局脉冲 打印('步进电机的位置为' ‘z代表原点(0度)’, “10度a”, “20度b”, “30度d”, ‘e代表40度’, ‘f代表50度’, ‘g代表60度’,) req=输入(“选择所需位置”) 所需位置=req 如果需要,位置==当前位置: gpio.output(23,真) 在当前位置时=所需职位: gpio.输出(24,真) 时间。睡眠(t) gpio.output(24,False) 时间。睡眠(t) 当前位置+=1 c+=1 elif当前位置所需位置: gpio.输出(24,真) 时间。睡眠(t) gpio.output(24,False) 时间。睡眠(t) 当前位置-=1 c-=1 定义上一个位置() 全球所需职位 全球当前位置 产生的全局脉冲 如果当前位置>所需位置: 产生的脉冲=所需位置-当前位置 当前位置
要输入整数值,请执行以下操作:

enter the value 0
Traceback (most recent call last):
  File "/home/pi/mcve.py", line 7, in <module>
    if a<b:
TypeError: unorderable types: int() < str()
>>> 
输入值0
回溯(最近一次呼叫最后一次):
文件“/home/pi/mcve.py”,第7行,在
如果是>>

我得到
TypeError:“您应该搜索python中的强制转换


任何类型的数据类型转换都将在“转换”标题下,您可以很容易地找到示例。

请扩展您的范围,以实际演示该问题。提供所用变量的初始化,并删除任何不相关的代码,例如
gpio()
。小心缩进,例如在
elif
周围缩进。注意非代码,例如“谢谢你们!!”。MCVE很重要,因为当我试图用给定的信息重新创建您的问题时,我会得到一个不同的错误
TypeError:“有没有办法将键盘输入作为整数?”是的,有。请做一个最小的MCVE,为一个有效的答案提供基础。如果这有助于你,请考虑这里所描述的:你不需要做任何事情,但是如果你不想接受,你可能想解释为什么不。这将允许改进现有答案,以满足您的需求。
enter the value a
Traceback (most recent call last):
  File "/home/pi/mcve.py", line 7, in <module>
    if a<b:
TypeError: unorderable types: int() < str()
>>> 
enter the value 0
Traceback (most recent call last):
  File "/home/pi/mcve.py", line 7, in <module>
    if a<b:
TypeError: unorderable types: int() < str()
>>> 
if a<int(b):
if a<b: