2016-04-23 9 views
1

Ich schreibe in Python2.7 und muss herausfinden, wie man ">" eine Variable, die ich sende, wenn ich für die Richtungen aufrufen. Ich muss diese Funktion mehrmals aufrufen und manchmal muss es "<" sein.wie in Variablen in einer Funktion in python2.7 senden

sentiment_point = giving_points(index_focus_word, 1, sentence, -2) 

def giving_points(index_focus_word, index_sentiment_word, sentence, location): 
    if index_focus_word > index_sentiment_word: 
     sentiment_word = sentence[index_focus_word + location] 

Ich habe versucht, unten zu zeigen, was ich tun möchte, aber es funktioniert nicht.

sentiment_point = giving_points(index_focus_word, ">", 1, sentence, -2) 

def giving_points(index_focus_word, sign, index_sentiment_word, sentence, location): 
    if index_focus_word sign index_sentiment_word: 
     sentiment_word = sentence[index_focus_word + location] 
+0

Bitte formatieren Sie den Code es durch Markieren und Drücken der '{}' auf der Spitze der in Zeileneditor. – Oisin

Antwort

1
sentiment_point = giving_points(index_focus_word, ">", 1, sentence, -2) 
... if index_focus_word sign index_sentiment_word: 

Das wird nicht funktionieren, weil Sie vorbei „>“ als einfacher String und Python erkennt nicht Sie es sind die beabsichtigen, als Betreiber zu übergeben.

Wenn Ihr Problem ist binär (‚<‘ oder ‚>‘) eine sehr einfache Lösung wäre, passieren keinen String, sondern einen Bool-Wert zu bestimmen, welcher Operator zu verwenden:

sentiment_point = giving_points(index_focus_word, True, 1, sentence, -2) 

def giving_points(index_focus_word, greater, index_sentiment_word, sentence, location): 
    if greater: 
     if index_focus_word > index_sentiment_word: 
      sentiment_word = sentence[index_focus_word + location] 
     else: #.... 
    else: 
     if index_focus_word < index_sentiment_word: 
4

Die operator Modul bietet Funktionen, die Python-Operatoren implementieren. In diesem Fall möchten Sie operator.gt.

import operator 
sentiment_point = giving_points(index_focus_word, operator.gt, 1, sentence, -2) 

def giving_points(index_focus_word, cmp, index_sentiment_word, sentence, location): 
    if cmp(index_focus_word, index_sentiment_word): 
     sentiment_word = sentence[index_focus_word + location] 
+0

das ist perfekt, vielen Dank @chepner –

Verwandte Themen