2017-10-18 4 views
0

auf Integer Ich brauche die Prozentzeichen nach der Berechnung haben, wie kann ich diesen Code ändern, so der Fehler:Hinzufügen String

TypeError: unsupported operand type(s) for +: 'int' and 'str' 

nicht angezeigt wird. Um den Dezimalpunkt zu entfernen, ist die Berechnung 'int'.

global score 
score = 2 

def test(score): 
    percentage = int(((score)/5)*100) + ("%") 
    print (percentage) 

test(score) 
+1

Werfen Sie Ihre Zahl in einen String. –

+0

Sie müssen * noch * die Zahl umwandeln * zurück * in str. – Mangohero1

Antwort

5

Verwenden String-Formatierung:

print('{:.0%}'.format(score/5)) 
0

Da der Fehler sagt, können Sie den + Operator zwischen einem int und einem String keine Anwendung. Sie könnten jedoch wandeln die int in einen String selbst:

percentage = str(int(((score)/5)*100)) + ("%") 
# Here ------^ 
0

verwenden

global score 
score = 2 

def test(score): 
    percentage = str(int(((score)/5)*100)) + "%" 
    print (percentage) 

test(score) 
1

In Python (und viele andere Sprachen), der + Operator dient einem doppelten Zweck. Es kann verwendet werden, um die Summe von zwei Zahlen (Nummer + Nummer) oder Verkettung von Strings (String + String) zu erhalten. In diesem Fall kann Python nicht entscheiden, was der + tun soll, da einer Ihrer Operanden eine Zahl ist und der andere eine Zeichenkette ist.

Um dies zu beheben, müssen Sie einen Operanden so ändern, dass er dem Typ des anderen entspricht. In diesem Fall wird Ihre einzige Option ist es, die Zahl in einen String zu machen (einfach mit der eingebauten in str() Funktion getan:

str(int(((score)/5)*100)) + "%" 

Oder Sie + ganz und geht mit Format Syntax Graben kann

. Alte Syntax:

"%d%%" % int(((score)/5)*100) 

Neue Syntax:

'{}%'.format(int(((score)/5)*100)) 
0

Für Python> = 3.6:

percentage = f"{(score/5) * 100}%" 
print(percentage)