2012-10-04 14 views
5

Non so come moltiplicare in Python.Moltiplicazione in Python

Se faccio questo:

price = 1 * 9 

apparirà come questo:

111111111 

E la risposta deve essere 9 (1x9=9)

Come posso fare lo moltiplica in modo corretto ?

+0

"Multiply" è la parola che sei cercando. – dkamins

risposta

3

Utilizzare numeri interi anziché stringhe.

fare in modo di lanciare la vostra stringa in int

price = int('1') * 9

Il codice di esempio reale che hai postato tornerà 9 non 111111111

0
In [58]: price = 1 *9 
In [59]: price 
Out[59]: 9 
11

Solo quando si moltiplicano intero con una stringa, si vuole stringhe ripetitive ..

È possibile utilizzare il metodo di fabbrica int() per creare interi fuori forma di stringa di numeri interi ..

>>> int('1') * int('9') 
9 
>>> 
>>> '1' * 9 
'111111111' 
>>> 
>>> 1 * 9 
9 
>>> 
>>> 1 * '9' 
'9' 
  • Se sia operando è int, si otterrà la moltiplicazione di loro come int.
  • Se primo operando è stringa, e il secondo è int .. La stringa verrà ripetuta più volte, come valore nel secondo operando intero.
  • Se primo operando è intero, e la seconda è la stringa, allora si otterrà la moltiplicazione di entrambi i numeri in forma di stringa ..
+1

grazie mille – user1704332

7

E 'la differenza tra stringhe e numeri interi. Vedi:

>>> "1" * 9 
'111111111' 

>>> 1 * 9 
9 
+0

oooowwwww capito! – user1704332

1

dovrebbe funzionare:

In [1]: price = 1*9 

In [2]: price 
Out[2]: 9 
1

Penso che tu sia confuso circa i tipi qui. Otterrai quel risultato solo se stai moltiplicando una stringa. Avviare l'interprete e provare questo:

>>> print "1" * 9 
111111111 
>>> print 1 * 9 
9 
>>> print int("1") * 9 
9 

in modo da assicurarsi il primo operando è un numero intero (e non una stringa), e funzionerà.

1

Non è possibile moltiplicare un numero intero con una stringa. A dire il vero, si potrebbe provare a utilizzare l'int (abbreviazione di integer che significa numero intero) di comando, in questo modo, per esempio -

firstNumber = int(9) 
secondNumber = int(1) 
answer = (firstNumber*secondNumber) 

Speranza che ha aiutato :)