运行python程序时输入抛出错误

时间:2019-09-14 08:27:47

标签: python python-3.x python-2.7

我是python的新手,正在尝试运行基本程序。我要求用户输入(名称)。当用户输入名称时,程序将抛出错误。这是我的程序

2

下面是错误

class Student:

    def __init__(self, name, age):
        self.name = name
        self.age = age

    def get_data(self):
        self.name = input("please enter name")
        self.age = input("now age")

    def print_data(self):
        print self.name
        print self.age


ajeet = Student("", "")

ajeet.get_data()

ajeet.print_data()

我的系统使用的Python版本是2.7.15

我已尝试调查此问题,而据我所读,这是python版本问题。我aam应该使用3.x版本。我在Mac中安装了python3。但是系统仍在使用旧版本。我应该如何运行程序或将python版本更改为3.x。

要更改python版本,我尝试将别名添加为bash_profile

please enter name Apurv
Traceback (most recent call last):
  File "/Users/apurvgandhwani/PycharmProjects/bio/AgeClass.py", line 18, in <module>
    ajeet.get_data()
  File "/Users/apurvgandhwani/PycharmProjects/bio/AgeClass.py", line 8, in get_data
    self.name = input("please enter name")
  File "<string>", line 1, in <module>
NameError: name 'Apurv' is not defined

但是,当我运行程序时,仍然会出现相同的错误。我该怎么解决?

2 个答案:

答案 0 :(得分:0)

可能是因为您没有加载"Logging": { "Console": { "DisableColors": true } } 。试试这个

.bash_profile

也要避免python2中的此错误,请将您的source ~/.bash_profile 更改为input,它接受​​字符串。

答案 1 :(得分:0)

在Python 3中,应将打印行放在print之后的一对括号中,如下所示:print()。否则,您将收到一条错误消息,内容为:Missing parentheses in call to 'print'

此外,当您在def get_data(self)中输入名称时,该名称是字符串,因此您应使用str()中的self.name = str(input("Please enter name: "))函数将输入名称转换为字符串,或者将输入名称括起来输入名称用双引号引起来,以这种方式使输入名称成为字符串。这就是解决错误消息的方法:NameError: name 'Apurv' is not defined,当您尝试在显示Apurv的位置之后输入please enter name时。

class Student:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def get_data(self):
        self.name = str(input("Please enter name: "))
        self.age = input("Please enter age: ")

    def print_data(self):
        print(self.name)
        print(self.age)  

ajeet = Student("", "")
ajeet.get_data()
ajeet.print_data()