我是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
但是,当我运行程序时,仍然会出现相同的错误。我该怎么解决?
答案 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()