2009-02-26 7 views
0

J'essaie de déclarer quelques variables simples dans le cadre d'une fonction dans un programme de détection de collision très basique. Pour une raison quelconque, il rejette mes variables (bien que seulement certaines d'entre elles, même si elles sont presque identiques). Voici le code de la fonction;Les variables python n'acceptent pas les noms

def TimeCheck(): 
    timechecknumber = int(time.time()) 
    timecheckdiv = backcolourcheck % 5 
    if timecheckdiv < 1: 
     timecheck = true 
    else: 
     timecheck = false 
    if timecheck == true: 
     backgroundr = (int(random.random()*255)+1 
     backgroundg = (int(random.random()*255)+1 
     backgroundb = (int(random.random()*255)+1 

pour une raison quelconque, il accepte backgroundr mais pas backgroundg, Quelqu'un at-il des idées pourquoi? merci

+1

Que signifie «accepte»? Avez-vous un message d'erreur spécifique ou un autre problème? Ou avez-vous de la difficulté à équilibrer votre()? –

+0

Je voulais dire qu'il ne faisait que mettre en évidence backgroundg en rouge et dire une erreur de syntaxe. c'était juste un problème de parenthèse si :) – user33061

Répondre

8

Vous avez des parenthèses incompatibles sur la ligne commençant par backgroundr. Je pense peut-être que vous voulez ceci:

backgroundr = int(random.random() * 255) + 1 

Notez que chacune des deux lignes suivantes ont aussi entre parenthèses dépareillées, de sorte que vous devrez corriger ceux-ci, aussi.

+0

aha, problème de parenthèse, merci: D – user33061

+0

Vous devez multiplier par 255 avant de lancer int. – recursive

+0

Comme indiqué ci-dessous, si vous voulez que le code fasse quelque chose d'utile (ce que vous faites probablement), vous voudrez probablement que les parenthèses soient dans l'ordre ci-dessous (j'ai édité la réponse pour refléter cela). – mipadi

2

La réponse de mipadi donnera toujours un 1. Vous devez multiplier par 255 avant de lancer à int. Essaye ça.

backgroundr = int(random.random() * 255) + 1 
+0

Vous supposez - bien sûr - que c'est ce qu'ils veulent. Puisque les() étaient incorrects, peut-être qu'ils voulaient vraiment une réponse de 1 à chaque fois ;-) –

Questions connexes