2016-10-13 2 views
-2

Dies könnte Python 101 sein, aber ich habe es schwer, Buchstaben in eine gültige Ganzzahl zu ändern.Ändern Sie Buchstaben in Zahlen (ints) in Python

Die Put, was ich versuche einfach

char zu tun >> [] >> int

ich eine Case-Anweisung erstellt mir in Abhängigkeit von bestimmten Zeichen Nummer zu geben, also was ich versucht war Tun

def char_to_int(sometext): 
    return { 
      'Z':1, 
      'Y':17, 
      'X':8, 
      'w':4, 
      }.get(sometext, '') 

die die Buchstaben in eine Zahl umwandelt, aber wenn ich versuche, diese Zahl in jedes Argument, das ints dauert es nicht funktioniert.

Ich habe versucht,

text_number = int(sometext) 

Aber ich erhalte die Meldung Typeerror: int() Argument ein String oder eine Zahl sein muss, nicht ‚Funktion‘

Also von dort kehrte ich die Art der sometext using

print(type(sometext)) 

Und der Rückgabetyp ist eine Funktion.

Also meine Frage ist, gibt es eine bessere Art und Weise Buchstaben in Zahlen zu konvertieren, oder einen besseren Weg, um mein Setup-Schalter/def-Anweisung

Heres der vollständige Code, wo seine Forderung

wenn sometext: für i im Bereich (0, len (sometext)): char_to_int (sometext [i])

Ich habe es geschafft zu arbeiten, letztlich, was ich änderte, war der Standard der Definition, ich setze jetzt die Definition zu einer Variablen vor, anstatt es in einer anderen Funktion aufzurufen, und ich habe den Abschnitt I wa recodiert s benutze es.

Ursprünglich sah meine Definition als Favorit markiert

def char_to_int(sometext): 
return { 
     ... 
     }.get(sometext, '') 

aber änderte ich den Standard auf 0, so jetzt sieht es aus wie

def char_to_int(sometext): 
return { 
     ... 
     }.get(sometext, 0) 

Der alte Code, der die Definition genannt

sah
if sometext: 
      for i in range (0, len(sometext)): 
        C_T_I = int(char_to_int(sometext[i])) 

Ich habe es geändert.

Hoffentlich klärt dies die Änderungen. Danke für die Hilfe von allen.

+2

Wie der Fehler andeutet, sollte 'sometext' eine Zeichenkette oder eine Zahl sein. Warum gibst du eine Funktion an das 'def'? – dunder

+0

Bitte zeigen Sie alle Ihren Code, nicht nur die Funktion.Sie sagen "Geben Sie mir eine Zahl, die von bestimmten Zahlen abhängt". Meinst du "abhängig von bestimmten Buchstaben?". – cdarke

+0

Der Code ist ungefähr 300 Zeilen lang. Ich habe gerade den Teil gepostet, mit dem ich Probleme habe. In Bezug auf "warum ich eine Funktion übergebe", lassen Sie mich einen kurzen Test ausführen, um zu sehen, ob es als Funktion geht – ProjectPokket

Antwort

0

in der Python-Konsole:

>>> type({ 'Z':1, 'Y':17, 'X':8, 'w':4, }.get('X', '')) <class 'int'>

um cdarke vorgeschlagen, sollten Sie prüfen, wie Sie die Funktion aufrufen.

+0

Um den Code zu ändern, schien die Art, wie er aufgerufen wurde, und der Standardwert 0 zu ändern, um das Problem zu beheben – ProjectPokket

Verwandte Themen