簡體   English   中英

我收到此錯誤:SyntaxError:無效的語法

[英]I am getting this error: SyntaxError: invalid syntax

class Student(object):

    def__init__(self, name='', school='', grade=''): #This is where I get the error

        if not name:
          name = raw_input('what is the student\'s name: ')
        if not school:
          school = raw_input('What is the studnet\'s school: ')
        if not grade:
          grade = self.get_grade()
        self.name = name
        self.school = school
        self.grade = grade
        self.print_student()

    def get_grade(self):
        while True:
            grade = input('What is the student\'s grade: [K, 1-5]')
            if grade.lower() not in ['k','2','3','4','5']:
                print('I\'m sorry, but {} isn\'t valid.'.format(grade))
            else:
                return grade

    def print_student():
        print('Name: {}'.format(self.name))
        print('School: {}'.format(self.school))
        print('Grade: {}'.format(self.grade))

def main():
    student1 = Student()
    studnet2 = Student(name='Bethmi Amalya', grade = '5', school= 'Visakha Vidyalaya')

if __name__ == '__main__':
    main()

您在代碼中有2個問題:

1。 def__init __(....,def關鍵字和init之間應該有一個空格(即def __init__(...

2。 應將self傳遞給def print_student()print_student(self) :並且所有變量訪問都應使用self,例如print_student函數中的self.name等。

 class Student(object): def __init__(self, name='', school='', grade=''): #This is where I get the error if not name: name = raw_input('what is the student\\'s name: ') if not school: school = raw_input('What is the studnet\\'s school: ') if not grade: grade = self.get_grade() self.name = name self.school = school self.grade = grade self.print_student() def get_grade(self): while True: grade = raw_input('What is the student\\'s grade: [K, 1-5]') if grade.lower() not in ['k','2','3','4','5']: print('I\\'m sorry, but {} isn\\'t valid.'.format(grade)) else: return grade def print_student(self): print('Name: {}'.format(self.name)) print('School: {}'.format(self.school)) print('Grade: {}'.format(self.grade)) def main(): student1 = Student() studnet2 = Student(name='Bethmi Amalya', grade = '5', school= 'Visakha Vidyalaya') if __name__ == '__main__': main() 

在第1行中: def__init__(self, name='', school='', grade=''):

def__init__之間沒有空格

添加空格以修復語法錯誤。

也:

Python 2使用raw_input()
Python 3使用input()

鏈接到Python 3中的更改

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM