2011-04-13 3 views
0

я пишу этот простой бит кода (Python 3.2 на Win32):разные результаты в IDLE и Windows, консоли

def main(): 
    decision = input('¿Send mail? (y/n): ') 
    if decision == "y": 
     sender() 
     print("Mail sent.") 
    else: 
     print("Cancelled.") 
    input() 

def sender(): 
    print("In sender ... ") 
    pass 

main() 

и она работает, как ожидается, в режиме ожидания, но в консоли Windows, он неожиданно говорит «отмененные» когда вы выбираете «y».

Теперь это не имеет смысла для меня, не могли бы вы помочь мне понять, что не так?

+0

Чтобы сделать более понятным, распечатайте входной сигнал на консоли перед оператором 'if'. Как это 'print (" '", решение,"' ", sep =" ")'. Это может помочь. –

+0

Работает для меня на Python 2.5.4 с использованием решения = raw_input ('y/n') – IanGilham

+2

Выполняет 'print (repr (решение))' он короче и показывает вам именно то, что вы ввели. –

ответ

1

Предлагаю ознакомиться с определением input(). Он не рекомендуется для общего пользовательского ввода, поскольку он ожидает синтаксически корректного кода Python и eval().

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