使用Python Turtle库时出现语法错误,请求排查修复
Python代码语法错误排查与修复
以下是你的代码中存在的问题及修复方案:
原代码
from turtle import* student_grades=[] the_number_of_grades=int(input('the number of grades that are going to be proccesed:') for d in range (the_number_of_grades) : student_grades=int(input('please input all of your grades:') student_grades.append(student_grades) grade_point_average=round(sum(student_grades) /len(studnet_grades),2) clear() penup() setpos(-10,180) write('MY GRADE POINT AVERAGE=' +str(grade_point_average)) setpos(80,180) if grade_point_average > 70: write('YOUR GRADE POINT AVERAGE IS V.GOOD') elif grade_point_average > 50: write('YOUR GRADE POINT AVERAGE IS LOW') else: write('YOU HAVE GOT YOUR FIRST WARNING!:') Ssetpos(0,0) pd() goto(180,0) goto(0,0) goto(0,150) goto(0,0) for d in range (len(student_grades)) : goto((d+1)*20 , grades[d]) dot(5, 'RED') write(student_grades[d],False,'centre') ht()
错误点及修复
- 括号不匹配:两处
input()调用末尾缺少闭合括号),直接触发语法错误 - 变量覆盖:循环内将列表
student_grades重新赋值为输入的整数,导致后续无法调用append()方法,需改用新变量接收输入值 - 拼写错误:计算平均分时把
student_grades拼写成studnet_grades,引发变量未定义错误 - 函数名笔误:
Ssetpos应为turtle库的setpos函数 - 未定义变量:绘图循环中使用的
grades[d]从未定义,应替换为student_grades[d] - 参数拼写错误:
write()方法中的对齐参数'centre'应为'center'
修正后的代码
from turtle import* student_grades = [] # 修复括号不匹配问题 the_number_of_grades = int(input('the number of grades that are going to be processed:')) for d in range(the_number_of_grades): # 用新变量接收输入,避免覆盖列表 grade = int(input('please input your grade:')) student_grades.append(grade) # 修复拼写错误:studnet_grades -> student_grades grade_point_average = round(sum(student_grades) / len(student_grades), 2) clear() penup() setpos(-10, 180) write('MY GRADE POINT AVERAGE=' + str(grade_point_average)) setpos(80, 180) if grade_point_average > 70: write('YOUR GRADE POINT AVERAGE IS V.GOOD') elif grade_point_average > 50: write('YOUR GRADE POINT AVERAGE IS LOW') else: write('YOU HAVE GOT YOUR FIRST WARNING!:') # 修复函数名笔误:Ssetpos -> setpos setpos(0, 0) pd() goto(180, 0) goto(0, 0) goto(0, 150) goto(0, 0) for d in range(len(student_grades)): # 修复未定义变量:grades[d] -> student_grades[d] goto((d+1)*20, student_grades[d]) dot(5, 'RED') # 修复参数拼写:centre -> center write(student_grades[d], False, 'center') ht()
内容的提问来源于stack exchange,提问作者omarry barry
相关产品推荐
相关产品推荐

