Python. Помогите найти ошибку
print ("введите натуральное число")
n = input()
f=0
print("Введите цифру которую хотите убрать" )
m= input()
f=n.replace(m, '')
m=int
while(m>=0):
if (f!=n):
print(f)
else:
m=input()
Нужно чтобы при вводе цифры, которой нет в числе, ввод цифры повторялся.
Ответы (2 шт):
Как вам правильно заметили в комментарии, ошибка была в строке m=int. Функция int позволяет преобразовать число или строку с числом в тип int (т.е. целое число). Чтобы вызвать функцию, послее неё нужно написать скобки (), чего вы не сделали, поэтому и возникает ошибка при исполнении кода. Кроме того, в скобки нужно указать аргумент, т.е. значение, которое вы хотите привести к типу целого числа. Правильно было бы m = int(m). Но у вас также ошибка в логике построении кода.
Если я правильно понял вашу задачу, думаю, такой код вам подойдёт:
print("Введите натуральное число:")
n = input()
print("Введите цифру, которую хотите убрать:")
m = input()
while m not in n: # до тех пор пока m нет в n:
print("Введенная цифра отсутствует в числе, введите другую:")
m = input()
# как только условие m not in n перестает выполняться, цикл while
# прекращается и выполняется код ниже:
f = n.replace(m, '')
print(f)
У вас ошибка в строке 7:
print ("введите натуральное число")
n = input()
f=0
print("Введите цифру которую хотите убрать" )
m= input()
f=n.replace(m, '')
m=int
В строке выше вы присваиваете значение m = int
int - по умолчанию встроенный в Python тип.
После этого вы сравниваете его:
(m >= 0) - то есть, если m - это тип, а 0 -
это число, значит исходный код будет выглядеть так:
(тип >= число)
В этом и дело. Python не может обработать это
утверждение, поэтому и выдаёт ошибку.
Вот исправленный код:
print("Введите натуральное число")
n = int(input())
f = 0
print("Введите цифру, которую хотите убрать")
m = int(input())
f = str(n).replace(str(m), '')
while(m >= 0):
if (f != n):
print('Результат: ' + f)
break
else:
m = int(input())
Надеюсь, что он работает хорошо.