2010-07-15 4 views
0

Я не могу понять, почему мой код не работает,если заявление в питоне

key_one= raw_input("Enter key (0 <= key <= 127): ") 

if key_one in range(128): 
    bin_key_one=bin(key_one)[2:] 
    print bin_key_one    
else: 
    print "You have to enter key (0 <= key <= 127)" 

, когда я ввести число в диапазоне от 0 до 127, он продолжает идти к другому! может кто-нибудь сказать мне, почему?

+0

Примечание стороны: в вашем 'if' заявление,' 0 <= Int (key_one) <128' будет ** способ ** эффективнее, чем 'Int (key_one) в диапазоне (128) '. –

ответ

1

raw_input вернет строку, поэтому сравнение if не удастся (вы сравниваете int со строкой). Попробуйте литье:

key_one = int(raw_input('enter key: ')) 
3

raw_input возвращает строку и "93" НЕ в range(128).

Чтобы убедиться, что вы сравниваете яблоки с яблоками, отлитый key_one к int:

key = int(raw_input("Enter key (0 <= key <= 127): ")) 
if key in range(128) 
    # if condition 
else 
    # else condition 

EDIT: Python документация является удивительным, так что если у вас есть вопросы, это отличная идея, чтобы обучать, читая документы первый.

Если присутствует аргумент приглашения, он записывается в стандартный вывод без конечной новой строки. Затем функция считывает строку из ввода, преобразует ее в строку (зачищая конечную новую строку) и возвращает ее. Когда EOF считывается, EOFError поднимается. - http://docs.python.org/library/functions.html#raw_input

+0

yep it works .. thanx man – babikar

+0

Нет проблем. Рад, что ты это понял. –

Смежные вопросы