Einzug Fehler mit python 3.3 bei python2.7 gut funktioniert
Schrieb ich dieses Skript wandelt die Zahl, es ist die Rechtschreibung.
no = raw_input("Enter a number: ")
strcheck = str(no)
try:
val = int(no)
except ValueError:
print("sayi degil")
raise SystemExit
lencheck = str(no)
if len(lencheck) > 6:
print("Bu sayi cok buyuk !")
raise SystemExit
n = int(no)
print(n)
def int2word(n):
n3 = []
r1 = ""
ns = str(n)
for k in range(3, 33, 3):
r = ns[-k:]
q = len(ns) - k
if q < -2:
break
else:
if q >= 0:
n3.append(int(r[:3]))
elif q >= -1:
n3.append(int(r[:2]))
elif q >= -2:
n3.append(int(r[:1]))
r1 = r
#print(n3)
nw = ""
for i, x in enumerate(n3):
b1 = x % 10
b2 = (x % 100)//10
b3 = (x % 1000)//100
if x == 0:
continue
else:
t = binler[i]
if b2 == 0:
nw = birler[b1] + t + nw
elif b2 == 1:
nw = onlar[1] + birler[b1] + t + nw
elif b2 > 1:
nw = onlar[b2] + birler[b1] + t + nw
if b3 > 0:
nw = birler[b3] + "yuz " + nw
return nw
birler = ["", " ","iki ","uc ","dort ", "bes ", "alti ","yedi ","sekiz ","dokuz "]
onlar = ["", "on ", "yirmi ", "otuz ", "kirk ", "elli ", "altmis ", "yetmis ", "seksen ", "doksan "]
binler = ["", "bin"]
print int2word(n)
Dieses Skript funktioniert ziemlich gut auf Python2.7.
Aber wenn ich versuche es mit Python ist3.3
Gibt es mir folgenden Fehler:
File "numtospell.py", line 58
if x == 0:
^
TabError: inconsistent use of tabs and spaces in indentation
Habe ich googeln für Stunden, aber finde keine passende Lösung. Was muss ich tun um dies zu beheben?
Vielen Dank für jede Hilfe.
InformationsquelleAutor cankemik | 2013-10-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie sind Vermischung von Tabulatoren und Leerzeichen.
Python 3 ausdrücklich verbietet. Verwenden Sie Leerzeichen nur für die Einrückung.
Zitat aus dem Python Style Guide (PEP 8):
Hervorhebung von mir.
Fast alle Editoren können so konfiguriert werden, tabs durch Leerzeichen ersetzen bei der Eingabe, als auch als eine Suche und ersetzen-operation, ersetzt vorhandene tabs mit Leerzeichen.
InformationsquelleAutor Martijn Pieters