Sto facendo una cosa tipo classifica, quello che succede è confrontare il punteggio con il punteggio corrente e se il punteggio è inferiore alla corrente allora il giocatore ha ottenuto un punteggio alto, ma quando si usa questo codice quiMaggiore di meno di, python
print "Score = " + str(score) + ", Compared to = " + str(array[x])
if score < array[x]:
#Do stuff here
Ma anche se il punteggio è 4 e l'array [x] è 2, l'istruzione if viene ancora eseguita?
Sto facendo qualcosa di sbagliato?
La mia comprensione è che se il punteggio 4 e l'array [x] sono 2 allora 4 è maggiore di 2 il che significa che ritorna False?
Heres il codice completo
def getRank(array, score):
rank = 0
rankSet = False
for x in range(0, len(array)):
print "Score = " + str(score) + ", Compared to = " + str(array[x])
if score < array[x]:
if not rankSet:
rank = x
print "Set rank to: " + str(rank)
rankSet = True
elif score == array[x] or score > array[x]:
rank += 1
print "Rank higher than " + str(x)
print "Rank = " + str(rank)
return rank
esso stampa questo se il punteggio = 4 e l'array è composto da [1, 2]
Score = 4, Compared to = 1
Set rank to: 0
Score = 4, Compared to = 2
Rank = 0
Il modo più semplice per verificare: 'stampa repr (score), repr (array [x])'. Inoltre: in Python 3, si ottiene 'TypeError: types non ordinabili: int()
Dougal
Perché non ci penso D: Penso che potrei essere – FabianCook
usando 'print type (score)' ritorna con '' ma penso che sia la matrice che lo sta facendo. –
FabianCook