Heim > Artikel > Backend-Entwicklung > So ermitteln Sie in Python, ob eine Zeichenfolge eine Ganzzahl ist
So bestimmt Python, ob eine Zeichenfolge eine Ganzzahl ist: Zuerst können Sie das Vorzeichen der Ganzzahl anhand des ersten Zeichens der Zeichenfolge bestimmen und dann die Zeichenfolge von rechts nach links durchlaufen, z. B. 111, was als angezeigt werden kann [11*10+1] und 11 kann als [1*10+1] angesehen werden.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, Python-Version 3.9, DELL G3-Computer.
Pythons Methode zum Bestimmen, ob eine Zeichenfolge eine Ganzzahl ist:
Methode 1: Rekursive Methode
Für Ganzzahlen wie 111 kann es als 11*10+1 und 11 als angesehen werden 1* 10+1. Und -111 kann als (-11)*10-1 betrachtet werden, und -11 kann als (-1)*10-1 betrachtet werden. Gemäß dieser Funktion kann eine rekursive Methode verwendet werden, um das Problem zu lösen Bestimmen Sie das Vorzeichen der Ganzzahl anhand des ersten Zeichens und durchlaufen Sie dann die Zeichenfolge von rechts nach links Wert eines Zeichens, entfernen Sie dann das Vorzeichenbit und ersetzen Sie die folgenden Zeichen. Die Zeichenfolge wird als positive Zahl behandelt und nach Abschluss der Verarbeitung wird basierend auf der Signifikanz das richtige Ergebnis zurückgegeben. Die Implementierungsmethode besteht darin, die Zeichenfolge von links nach rechts zu durchlaufen, um den Wert der Ganzzahl zu berechnen. Am Beispiel von „123“ ist das Ergebnis 1 * 10 + 2 = 12, wenn es nach „2“ durchläuft '3', das Ergebnis ist 12* 10+3=123.
class Test: def __init__(self): self.flag = None def getFlag(self): return self.flag # 判断c是否是数字,如果是返回数字,且设置flag=True,否则返回False def isNumber(self, c): return c >= '0' and c <= '9' # 判断str是否是数字 def strtoint(self, strs, length): if length > 1: if not self.isNumber(list(strs)[length - 1]): # 不是数字 print("不是数字") self.flag = False return -1 if list(strs)[0] == '-': return self.strtoint(strs, length - 1) * 10 - (ord(list[length - 1]) - ord('0')) else: return self.strtoint(strs, length - 1) * 10 + ord(list(strs)[length - 1]) - ord('0') else: if list(strs)[0] == '-': return 0 else: if not self.isNumber(list(strs)[0]): print("不是数字") self.flag = False return -1 return ord(list(strs)[0]) - ord('0') def strToint(self, s): self.flag = True if s == None or len(s) <= 0 or (list(s)[0] == '-' and len(s) == 1): print("不是数字") self.flag = False return -1 if list(s)[0] == '+': return self.strToint(s[1:len(s)], len(s) - 1) else: return self.strToint(s, len(s))
Verwandte kostenlose Lernempfehlungen: Python-Video-Tutorial
Das obige ist der detaillierte Inhalt vonSo ermitteln Sie in Python, ob eine Zeichenfolge eine Ganzzahl ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!