2012-06-17 7 views
2

Quelqu'un peut-il m'aider s'il vous plaît avec l'instruction if et les tableaux. Donc, par exemple, je tape 0001 dans le tableau "1" est [3]. J'essaye de l'obtenir pour imprimer "working" si 1 est tapé sur le tableau [3].Tableaux et si instructions

Ce code devrait expliquer plus:

original = raw_input("Type is your input? ") 
original_as_array = list(original) 
print original_as_array 
print original[3] 

if (original[3] == 1): 
    print "working" 

Répondre

5

Ceci est parce que vous comparez un int avec un seul caractère (type str). Changez votre if -statement en:

if (original[3] == "1"): 
    print "working" 

et cela fonctionnera.

Votre entrée de la clé se compose de caractères ('0001'), donc votre comparaison doit en tenir compte.

Par ex,

type(original[3]) 
str 

type(1) 
int 
+2

merci beaucoup !!!!! – codeX

4

Tout d'abord, les chaînes sont des tableaux déjà si vous n'avez pas besoin de les convertir en listes. En Python, une chaîne ne peut pas être comparée à un nombre entier, donc vous devriez comparer à '1' à la place. Enfin, l'instruction if semble mieux sans les crochets: D

>>> original = raw_input("Type is your input? ") 
Type is your input? 0001 
>>> if original[3] == '1': 
     print "working" 


working 
0

Votre problème est que vous archivez un entier contre une str, qui sera faux. Voir cette session interactive:

>>> original = raw_input("Type is your input? ") 
Type is your input? 0001 
>>> original_as_array = list(original) 
>>> print original_as_array 
['0', '0', '0', '1'] 
>>> print original[3] 
1 
>>> if original[3] == 1: 
...  print "working" 
... 
>>> print type(original[3]) 
<type 'str'> 
>>> if original[3] == '1': 
...  print "working" 
... 
working 
>>>