С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/429: Рейтинг темы: голосов - 429, средняя оценка - 4.82
20 / 6 / 1
Регистрация: 29.08.2018
Сообщений: 107

Ошибка '<' not supported between instances of 'int' and 'str'

19.02.2019, 21:49. Показов 82495. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
сама программа из книги
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# игра по угадыванию числа
import random 
 
guessesTaken = 0
 
print('Привет! Как тебя зовут?')
 
myName = input()
 
number = random.randint(1, 20)
print('Что же, ' +myName+ ', я загадаю чило от 1 до 20.')
 
for guessesTaken in range(6):
    print('Попробуй угадать.')
    guess = input()
    guess = int (guess)
 
    if guess < number:
        print('Твое чило слишком маленькое.')
 
    if guess > number:
        print('Твое число слишком большое.')
 
    if guess == number:
        guessesTaken = str(guessesTaken + 1)
        print('Отлино, ' +mmyName+ 'Ты справился за ' +guessesTaken+ 'попытки!')
 
    if guess != number:
        number = '<' not supported between instances of 'int' and 'str'(number)
        print('Увы. Я загадал число ' +number+ '.')
выдает ошибку - '<' not supported between instances of 'int' and 'str'
Строка 18
Я понимаю что в конце кода прописано str(number). Как исправить не пойму. Как я понимаю у автора все работает.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.02.2019, 21:49
Ответы с готовыми решениями:

Ошибка TypeError: '>=' not supported between instances of 'str' and 'int'
vremya=input('Сколько сейчас время?') if vremya &gt;= 4-00 and vremya &lt;=9-59: print('Доброе утро!') elif vremya &gt;= 10-00 and...

TypeError: '<' not supported between instances of 'int' and 'str'
Всем привет такая проблема этот код для бинарного описка выдает ошибку в чем причина? def binary_search_iterative(array, element): ...

TypeError: '<' not supported between instances of 'str' and 'int'
Я писал код и столкнулса с проблемой. Версия питона 3.7.2 сам код x = input ('x=') if x&lt;-7: y=5*x-1 else: if x&gt;=-7...

16
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
19.02.2019, 23:46
Xrom123,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import random 
 
guessesTaken = 0
 
print('Привет! Как тебя зовут?')
 
myName = input()
 
number = random.randint(1, 20)
#print(number)
print('Что же, ' +myName+ ', я загадаю чило от 1 до 20.')
 
for guessesTaken in range(6):
    print('Попробуй угадать.')
    guess = input()
    guess = int (guess)
 
    if guess < number:
        print('Твое чило слишком маленькое.')
 
    if guess > number:
        print('Твое число слишком большое.')
 
    if guess == number:
        guessesTaken = str(guessesTaken + 1)
        print('Отлино, ' +myName+ 'Ты справился за ' +guessesTaken+ 'попытки!')
 
    if guess != number:
        # number = '<' not supported between instances of 'int' and 'str'(number)
        print('Увы. Я загадал число ' +str(number)+ '.')
1
20 / 6 / 1
Регистрация: 29.08.2018
Сообщений: 107
20.02.2019, 07:26  [ТС]
m0nte-cr1st0
теперь результат программы такой
Кликните здесь для просмотра всего текста

Привет! Как тебя зовут?
2
Что же, 2, я загадаю чило от 1 до 20.
Попробуй угадать.
2
Твое чило слишком маленькое.
Увы. Я загадал число 14.
Попробуй угадать.
2
Твое чило слишком маленькое.
Увы. Я загадал число 14.
Попробуй угадать.
2
Твое чило слишком маленькое.
Увы. Я загадал число 14.
Попробуй угадать.
3
Твое чило слишком маленькое.
Увы. Я загадал число 14.
Попробуй угадать.
4
Твое чило слишком маленькое.
Увы. Я загадал число 14.
Попробуй угадать.
5
Твое чило слишком маленькое.
Увы. Я загадал число 14.
>>>

Получается она не работает, а просто повторят 5 раз одно и тоже
Как это исправить.
0
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
20.02.2019, 08:04
Xrom123, почему она не работает? Работает. Просто код некорректный. Явно не хватает оператора break в одном месте. Полагаю, что вместо кучи if здесь нужно использовать elif.
1
 Аватар для Енотус
3 / 2 / 1
Регистрация: 23.11.2018
Сообщений: 5
20.02.2019, 14:37
ioprst , с 28 строки таб не нужен, т.е.
Python
1
2
3
if guess != number:
    # number = '<' not supported between instances of 'int' and 'str'(number)
    print('Увы. Я загадал число ' +str(number)+ '.')
Возможно нужно будет сделать guess глобальной

Добавлено через 1 минуту
И опечатка: не "чило", а "число"
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
20.02.2019, 14:44
Xrom123,
Цитата Сообщение от Xrom123 Посмотреть сообщение
Получается она не работает, а просто повторят 5 раз одно и тоже
Как это исправить.
а вы разве говорили, что она должна заканчиваться? Вы предложили код, я его подправил, чтобы он работал.
Вот, пробуйте.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import random 
 
guessesTaken = 0
 
print('Привет! Как тебя зовут?')
 
myName = input()
 
number = random.randint(1, 20)
# print(number)
print('Что же, ' +myName+ ', я загадаю чило от 1 до 20.')
 
for guessesTaken in range(6):
    print('Попробуй угадать.')
    guess = input()
    guess = int (guess)
 
    if guess < number:
        print('Твое чило слишком маленькое.')
 
    if guess > number:
        print('Твое число слишком большое.')
 
    if guess == number:
        guessesTaken = str(guessesTaken + 1)
        print('Отлино, ' +myName+ 'Ты справился за ' +guessesTaken+ 'попытки!')
        break
 
    if guess != number:
        # number = '<' not supported between instances of 'int' and 'str'(number)
        print('Увы. Я загадал число ' +str(number)+ '.')
        break
Кликните здесь для просмотра всего текста

Привет! Как тебя зовут?

4
Что же, , я загадаю чило от 1 до 20.
Попробуй угадать.
4
Отлино, Ты справился за 1попытки!
=======
Привет! Как тебя зовут?

7
Что же, , я загадаю чило от 1 до 20.
Попробуй угадать.
2
Твое чило слишком маленькое.
Увы. Я загадал число 7.
0
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
20.02.2019, 16:22
m0nte-cr1st0, непонятно зачем цикл в вашем алгоритме, ведь происходит выход из него, если не угадать с первой попытки.
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
20.02.2019, 16:28
ioprst, это не мой алгоритм.
0
0 / 0 / 0
Регистрация: 10.08.2019
Сообщений: 10
10.08.2019, 20:28
Просмотрите внимательно код в книге от 23 строки, у вас именно там начинается ошибка.

Там два условия сравнивания ==. Один идет в цикле for, а другой вне цикла.

Внимательно списывайте код с книги, особенно когда дойдете до игры виселица и далее. ;-)

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# Это игра "Угадай число"
 
import random
 
guessTaken = 0
 
print("Привет! Как тебя зовут?")
myName = input()
 
number = random.randint(1, 20)
print("Что ж, " + myName + ", я загадываю число от 1 до 20. \nПопробуй угадать.")
 
for guessesTaken in range(5):
    guess = input()
    guess = int(guess)
    
    if guess < number:
        print("Твое число слишком маленькое.")
    
    if guess > number:
        print("Твое число слишком большое.")
        
    if guess < 1:
        print("Оно меньше 1. У тебя есть выбор числа только от 1 до 20!")
    
    if guess > 20:
        print("Оно больше 20. У тебя есть выбор числа только от 1 до 20!")
        
    if guess == number:
        break
 
if guess == number:
    guessesTaken = str(guessesTaken + 1)
    print("Отлично," + myName + "! Ты справился(-ась) за " + guessesTaken + " попытки(-ок)!")
    
if guess != number:
    number = str(number)
    print("Увы! Я загадал число " + number + ".")
Добавлено через 14 минут
Код выше дополнен, поэтому в нем с 23 строки до 28 добавления, а вот с 29 строки идет ваша ошибка!
0
0 / 0 / 0
Регистрация: 26.10.2019
Сообщений: 8
26.10.2019, 02:20
Всем доброго времени суток.
Приобрёл недавно книгу Эла Свейгарта.
И в упор не могу разобраться в чем проблема, не работает код в python 3.8, хоть ты тресни. Написанные выше коды так же не работают.
Вот мой код. Если кому не жаль, подскажите, в чем проблема, чего не понимаю?
Потому что уже неоднократно перенабирал, сверял с оригиналом, с кодами с других форумов и вопросников. И ни один так и не заработал. Сейчас выдаёт такую ошибку:
guess == int(guess)
ValueError: invalid literal for int() with base 10: 'x'

Только,чую,не в ней одной проблема. Могу ошибаться конечно, но с оригиналом(в книге) перепроверил несколько раз, так что вроде все верно. Но в нынешних реалиях нихрена не работает Хочу разобраться и понять, в чем именно кроется подвох.

Сам код:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# Это игра по угадыванию чисел.
import random
 
guessesTaken = 0
 
print('Привет! Как тебя зовут?')
myName = input()
 
number = random.randint(1, 20)
print('Что ж,' + myName + ', я загадываю число от 1 до 20.')
 
for guessesTaken in range(6):
        print('Попробуй угадать.')
        guess = input()
        guess = int(guess)
 
        if guess < namber:
                    print('Твоё число слишком маленькое.')
 
        if guess > number:
                    print('Твоё число слишком большое.')
 
        if guess == number:
                    break
if guess == number:
        guessesTaken = str(guessesTaken + 1)
        print('Отлично, ' + myName + '! Ты справился за ' + guessesTaken + ' попытки!')
 
if guess != number:
        number = str(number)
        print('Увы. Я загадала число ' + number + '.')
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
26.10.2019, 08:13
Antumnos, ну создай ты отдельную тему, проблема то другая!!
Цитата Сообщение от Antumnos Посмотреть сообщение
ValueError: invalid literal for int() with base 10: 'x'
что тут не ясно? нельзя букву "х" в число превратить, не вводи х

если названия переменных не твои, то вкупе с неработающим кодом советую книгу выбросить, в джаве переменные называют именно так, но мы то в пайтон у нас вот так - my_name
Цитата Сообщение от Antumnos Посмотреть сообщение
guessesTaken = 0
зачем? если потом в цикле создадим ее?

в 17 строке nAmber а нужен number

покажи скрин этого кода из книги!
1
0 / 0 / 0
Регистрация: 26.10.2019
Сообщений: 8
26.10.2019, 11:02
Подправил с nAmber на nUmber и с myName на my_name. Все заработало. Конечный код и скрин из книги прилагаю:

Конечный код:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# Это игра по угадыванию чисел.
import random
 
guessesTaken = 0
 
print('Привет! Как тебя зовут?')
my_name = input()
 
number = random.randint(1, 20)
print('Что ж ,' + my_name + ', я загадываю число от 1 до 20.')
 
for guessesTaken in range(6):
        print('Попробуй угадать.')
        guess = input()
        guess = int(guess)
 
        if guess < number:
                    print('Твоё число слишком маленькое.')
 
        if guess > number:
                    print('Твоё число слишком большое.')
 
        if guess == number:
                    break
 
if guess == number:
        guessesTaken = str(guessesTaken + 1)
        print('Отлично, ' + my_name + '! Ты справился за ' + guessesTaken + ' попытки!')
 
if guess != number:
        number = str(number)
        print('Увы. Я загадала число ' + number + '.')
P.S. Если не лень, подскажите пожалуйста издания для совсем затупка в Python(как вообще в ЯП). Просто учиться начал сам, на курсы и прочее денег нет(нищеброд). Поэтому могу не понимать сразу многие очевидные вещи. Да и почему в книге указан неверный код немного не понятно.
Миниатюры
Ошибка '<' not supported between instances of 'int' and 'str'  
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
26.10.2019, 11:13
Цитата Сообщение от Antumnos Посмотреть сообщение
Просто учиться начал сам, на курсы и прочее денег нет(нищеброд).
курсы и не нужны, нужна голова. Книгу эту выброси.
Читай Марк Лутц "Изучая пайтон", вдумчиво, не спеша, прорешивая примеры
1
0 / 0 / 0
Регистрация: 26.10.2019
Сообщений: 8
26.10.2019, 11:22
Спасибо большое)
Попробую посоветованное вами издание пройти.
Но,чует мое братское сердце, это далеко не последнее обращение на форум
0
0 / 0 / 0
Регистрация: 26.10.2019
Сообщений: 8
26.10.2019, 21:03
И всё же решил подразобраться еще немного.
Вывод - я тупой олень (пока простительно, вроде) и код рабочий даже в первоначальном варианте. Переменная myName так же работает,как и my_name.
Итоговый код:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# Это игра по угадыванию чисел.
import random
 
guessesTaken = 0
 
print('Привет! Как тебя зовут?')
myName = input()
 
number = random.randint(1, 20)
print('Что ж, ' + myName + ', я загадываю число от 1 до 20.')
 
for guessesTaken in range(6):
        print('Попробуй угадать.')
        guess = input()
        guess = int(guess)
 
        if guess < number:
                    print('Твоё число слишком маленькое.')
 
        if guess > number:
                    print('Твоё число слишком большое.')
 
        if guess == number:
                    break
 
if guess == number:
        guessesTaken = str(guessesTaken + 1)
        print('Отлично, ' + myName + '! Ты справился за ' + guessesTaken + ' попытки!')
 
if guess != number:
        number = str(number)
        print('Увы. Я загадала число ' + number + '.')
0
 Аватар для Semen-Semenich
5220 / 3468 / 1172
Регистрация: 21.03.2016
Сообщений: 8,295
26.10.2019, 21:22
Antumnos, я так понимаю что дано всего 6 попыток
Python
1
for guessesTaken in range(6)
почему об этом не оповещает игрока?
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from random import randint
 
print('Привет! Как тебя зовут?')
my_name = input()
print(f'Что ж, {my_name}, я загадываю число от 1 до 20.')
number = randint(1, 20)
 
print('у тебя 5 попыток')
see_also = 1
 
while see_also != 6:
    guess = int(input('Попробуй угадать. >> '))
    if guess < number:
        print('Твоё число слишком маленькое.')
    elif guess > number:
        print('Твоё число слишком большое.')
    else:
        break
    see_also += 1
 
if see_also != 6:
    print(f'Отлично, {my_name}! Ты справился за {see_also} попытки!')
else:
    print(f'Увы. Я загадала число  {number}.')
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
26.10.2019, 21:39
Цитата Сообщение от Antumnos Посмотреть сообщение
Переменная myName так же работает,как и my_name.
конечно, просто назвать надо по второму варианту
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.10.2019, 21:39
Помогаю со студенческими работами здесь

TypeError: '<' not supported between instances of 'str' and 'int'
Добрый день, друзья! Подскажите, пожалуйста, что мне надо поменять в программе, чтобы список сортировался по возрастанию? a = a = a + ...

Builtins.TypeError: '>' not supported between instances of 'int' and 'str'
#Дано натуральное число. Определить его максимальную цифру. maxx = -1 number = input() for i in range(len(number)): if...

Ошибка "not supported between instances of 'str' and 'int'"
sns.boxplot( data=df &gt; 0], # не будем учитывать нулевые объемы x='Рамер', y='radionet', ) plt.xlim(0, 30) Вот...

line 4, in <module> while res < minutes: TypeError: '<' not supported between instances of 'int' and 'str'
Пётр Васильевич работает учителем информатики и каждый рабочий день ездит в школу. До школы он может добраться на трамвае, который...

TypeError: '>' not supported between instances of 'str' and 'int'
печатал код который отсеивает четные и нечетные числа больше нуля вылезла ошибка python gog.py Введите что-нибудь: 4 Traceback...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru