тип ввода данных с клавиатуры в Python

1

В настоящее время я работаю над встроенным проектом. В моем проекте я хочу сравнить два значения.

Первое значение представляет собой целое число (0), а второе - ввод на клавиатуре (и оно также должно быть целым числом).

Всякий раз, когда я пытаюсь запустить код, он показывает:

{TypeError: unorderable types: int() < str()}

Как преодолеть этот TypeError?

Код:

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()

вот мой полный код с инициализацией.

Mcve моего кода

import sys
import time

a=0
b=input("enter the value ")

if a<b:
    a+=1
    print(a)
else:
    a-=1
    print(a)

ошибка:

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()
>>> 
  • 1
    Пожалуйста, расширьте ваш минимальный воспроизводимый пример, чтобы фактически продемонстрировать проблему. Обеспечьте инициализацию используемых переменных и gpio() любой не связанный код, например, gpio() .
  • 0
    Будьте осторожны с отступами, например, вокруг elif . Будьте осторожны с не-кодом, например, «спасибо, ребята!».
Показать ещё 8 комментариев
Теги:

2 ответа

1
Лучший ответ

Я получаю TypeError: '<' not supported between instances of 'int' and 'str' и только с Python 3.7.0, а не с Python 2.7.15.

Однако эту ошибку я могу исправить с помощью

if a<int(b):

вместо

if a<b:

Возможно, ваша ошибка (которую я не могу воспроизвести) также исправлена.

  • 0
    Если это поможет вам, подумайте о том, что описано здесь: stackoverflow.com/help/someone-answers От вас НЕ требуется ничего делать, но если вы не хотите принимать, вы можете объяснить, почему нет. Это позволит улучшить существующие ответы, чтобы удовлетворить вас.
0

Вы должны искать кастинг в python.

Любой тип преобразования типа данных будет находиться под заголовком "casting", и вы можете легко найти примеры.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню