Python: NameError name '[input]' is not defined [duplicate]

柔情痞子 提交于 2019-12-10 19:04:11

问题


I'm trying to make a simple little tool for converting inches to centimeters and am stuck at trying to take a user input ('y' or 'n') for deciding whether to do another conversion or terminate. Here's what I've done:

import time

def intro():
    print "Welcome! This program will convert inches to centimeters for you.\n"
    convert()

def convert():
    input_cm = input(("Inches: "))
    inches_conv = input_cm * 2.54
    print "Centimeters: %f\n" % inches_conv
    time.sleep(3)
    restart = str(input("Do you wish to make another conversion? [y]Yes or [n]no: "))
    if restart == 'y':
        convert()
    elif restart == 'n':
        end_fast()
    else:
        print "I didn't quite understand that answer. Terminating."
        end_slow()

def end_fast():
    print "This program will close in 5 seconds."
    time.sleep(5)

def end_slow():
    print "This program will close in 30 seconds."
    time.sleep(30)

intro()

And this results in:

Traceback (most recent call last): File "C:\Users\Sam\Programming\Python\the hard way\ex5.4.py", line 29, in intro() File "C:\Users\Sam\Programming\Python\the hard way\ex5.4.py", line 5, in intro convert() File "C:\Users\Sam\Programming\Python\the hard way\ex5.4.py", line 12, in convert restart = str(input("Do you wish to make another conversion? [y]Yes or [n]no?\n")) File "", line 1, in NameError: name 'y' is not defined

Help appreciated.


回答1:


instead of input try raw_input:

replace:

restart = str(input("Do you wish to make another conversion? [y]Yes or [n]no: "))

on:

restart = raw_input("Do you wish to make another conversion? [y]Yes or [n]no: ")


来源:https://stackoverflow.com/questions/18298741/python-nameerror-name-input-is-not-defined

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!