Ошибка в программе Python
Нашёл программу, с условием " Ввести натуральное число и определить, верно ли, что в его записи есть
две одинаковые цифры (не обязательно стоящие рядом)".
Пример:
Введите натуральное число:
12342
Да.
Пример:
Введите натуральное число:
12345
Нет.
Но выдаётся ошибка, помогите исправить, пожалуйста!
from __future__ import print_function
A = int(input("a = "))
a1 = a % 10
a = a // 10
k = 0
while a>0:
a2 = a % 10
if a1==a2: k+=1;
a = a // 10
a1 = a2
if k>0: print("Да")
else: print("Нет")
Ошибка:
Traceback (mest recent call last):
File "C:/Users/Win10Pro/Desktop/ПР 45.py", line 3, in <module>
a1 = a % 10
NameError: name 'a' is not defined
Ответы (4 шт):
Автор решения: XijPRX
→ Ссылка
Для питона переменные A и a совсем разные, то есть питон чувствителен к регистру. Просто напишите вместо A = int(... - a = int(...
Автор решения: Евгений
→ Ссылка
Вашу задачу можно решить проще:
>>> def has_doubbles(n: int) -> bool:
... return len(set(str(n))) != len(str(n))
...
>>> has_doubbles(123456)
False
>>> has_doubbles(123454)
True
Если в числе есть повторения, то множество цифр этой строки будет иметь меньшую размерность, чем длина строкового представления этого числа