So gibt es viele Algorithmen zu bewerten, ob ein int ein Palindrom, dhFunktion Gültigkeit der numerischen Palindrom zu bewerten für Gleitkommazahlen mit Python
def ReverseNumber(n, partial=0):
if n == 0:
return partial
return ReverseNumber(n // 10, partial * 10 + n % 10)
oder diese:
def isPalindrome(x):
if (x < 0):
return False
div = 1
while (x/div >= 10):
div *= 10
while (x != 0):
l = x/div
r = x % 10
if (l != r):
return False
x = (x % div)/10
div /= 100
return True
Was ich aber gerne machen würde ist zu beurteilen, ob eine Nummer wie 1.01
oder 22.22
usw., ob solche Zahlen selbst Palindrome sind.
Wie könnte einer dieser obigen Algorithmen so angepasst werden, dass er für floats
zusätzlich zu ints
funktioniert?
Dies ist der Code verwende ich es zu nennen:
import sys
# This method determines whether or not the number is a Palindrome
def isPalindrome(x):
x = str(x).replace('.','')
a, z = 0, len(x) - 1
while a < z:
if x[a] != x[z]:
return False
a += 1
z -= 1
return True
if '__main__' == __name__:
trial = int(sys.argv[1])
# check whether we have a Palindrome
if isPalindrome(trial):
print("It's a Palindrome!")
Sie könnten auch einfach 'return x == x [:: - 1]'. – Blender
Ich bekomme diesen Fehler 'ValueError: ungültiges Literal für int() mit Basis 10: '1.01'' –
Wo verwenden Sie' int() '? – chepner