Wie du ein int in python?
Ich bin erstellen Sie ein python Skript, welches druckt den ganzen song von "99 Flaschen Bier", sondern Umgekehrt. Das einzige, was ich nicht reverse ist die zahlen als ganze zahlen, nicht mit strings.
Dies ist mein voller Skript,
def reverse(str):
return str[::-1]
def plural(word, b):
if b != 1:
return word + 's'
else:
return word
def line(b, ending):
print b or reverse('No more'), plural(reverse('bottle'), b), reverse(ending)
for i in range(99, 0, -1):
line(i, "of beer on the wall")
line(i, "of beer"
print reverse("Take one down, pass it around")
line(i-1, "of beer on the wall \n")
Verstehe ich meine reverse-Funktion nimmt einen string als argument, allerdings weiß ich nicht wie man in eine ganze Zahl, oder , wie du den integer-später im Skript.
- Welche Ausgabe erwarten Sie für 10 oder 20 oder 30 ...?
- 10 01, 56 wäre 65 etc
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nähern wir uns dieser in ganz sonderbare Weise. Sie haben bereits eine Umkehrung der Funktion, also warum nicht
line
bauen Sie gerade die Linie der normale Weg, um?Läuft wie:
Dann übergeben Sie das Ergebnis an
reverse
:Dies macht es viel einfacher zu testen, jeder Teil des Codes getrennt und sehen, was passiert, wenn Sie es alle zusammen.
Ohne Konvertierung der Zahl in einen string:
reverse_number(10) == 1
das ist eine richtige Zahl, ohne führende Nullen.n //= 10
stattn /= 10
. Dadurch werden kleine Nummer und wird nicht wieder ein ideal in umgekehrter Reihe, eine unendliche Zahl inf.Sowas?
beste Weg ist
bzw.
eine Zeile code ist
Können Sie werfen eine ganze Zahl in Zeichenkette mit str(i) und dann mit der reverse-Funktion.
Die folgende Zeile sollte das tun, was Sie suchen:
'74 elttobs llaw eht no reeb fo'
eher als'llaw eht no reeb fo elttobs 74'
str(i)
instantiieren eines neuenstr
Objekt mit dem string-Darstellungi
als Wert.Ursprüngliche Zahl ist in einem
Konvertierung von int zu string ,dann umkehren und wieder umwandeln in int und speichern reversed Nummer in b
b = int("".join(reversed(str(a))))
Drucken Sie die Werte von a und b
print(a,b)
print(reverse_number(123))
Dieser code wird nicht funktionieren, wenn die Zahl endet mit Nullen, Beispiel, 100 und 1000 return 1