Я пытаюсь проверить, имеют ли короткие int цифры, которые содержатся в long int. Вместо этого вышло:Python check matching digit
long int: 198381998
short int: 19
Found a match at 0
Found a match at 1
Found a match at 2
Found a match at 3
Found a match at 4
Found a match at 5
Found a match at 6
Found a match at 7
Это, предполагают, чтобы выглядеть следующим образом: (Correct один)
long int: 198381998
short int: 19
Found a match at 0
Found a match at 5
Код:
longInt = (input ("long int: "))
floatLong = float (longInt)
shortInt = (input ("short int: "))
floatShort = float (shortInt)
max_digit = int (math.log10(floatLong)) #Count the no. of long int
i = int(math.log10(floatShort)) # Count the no. shortInt that is being input
for string in range (max_digit):
if (shortInt in longInt): # Check whether there is any digit in shortInt
# that contains anything inside longInt
print ("Found a match at ", string)
без использования каких-либо встроенных функций из питона, нет list или string.etc.
Кстати, почему вы вручную конвертируете свои ints в поплавки? 'math.log10' сделает это за вас. Кроме того, ваш 'max_digit' отключен на единицу: число базовых цифр' '' '' '' '' 1 + int (math.log (x, r)) '. – kojiro
Если я не вручную преобразовать плавать, это даст эту ошибку: Traceback (самый последний вызов последнего): Файл "", строка 1, в max_digit = INT (math.log10 (LONGINT)) TypeError : требуется float ------ , потому что ввод является строковым типом –
Chloe
Ах, это потому, что вход представляет собой строку. Вы должны преобразовать его, но разве это не будет int? – kojiro