2015-12-31 3 views
-1

Он должен распечатать материал хранится в переменной генератора, если сырье вход был 1, но это не делает, что его выполнение другое заявление, даже если я пишу 1.Если оператор не печатает требуемое значение

from random import randint 

print('1. Generate again.') 
print('2. Close') 
x = raw_input('Pick your selection 1 or 2: ') 

if x == 1: 
    generator = (randint(1000000000000000,999000000000000009)) 
    print generator 
else: 
    print 'bye' 
+1

Well ''1'! = 1' ... – jonrsharpe

+0

Да, лол, я забыл добавить ''. спасибо bud – Towelie

ответ

3

You 'сравнение строки (что было введено) с int. Вместо этого попробуйте if x == '1'.

+0

Спасибо, я глуп, что не видел этого. – Towelie

2

Ответы Turn'ы являются хорошими, но есть альтернативный способ сделать это, используя int(). Встроенная функция int() рассматривает строку как int.

from random import randint 

print('1. Generate again.') 
print('2. Close') 
x = raw_input('Pick your selection 1 or 2: ') 

if int(x) == 1: 
    generator = (randint(1000000000000000,999000000000000009)) 
    print generator 
else: 
    print 'bye' 
+2

Вы действительно можете это сделать, но вы должны быть готовы к тому, чтобы 'int' выдавал исключение, если пользователь не вводил целое число. Я думаю, что проще просто сравнить строки. – Turn

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