Я пишу программу для получения кредитов и оценок и возврата рассчитанного среднего балла. Мне нужно придумать, как использовать более одной оценки в качестве параметра. Для этого достаточно одного, но мой код написан так, что он продолжает получать оценки и кредиты, пока ничего не будет введено. Но так не работает.
Мой код на данный момент:
class Student:
def __init__(self, hours, qpoints, credits):
self.hours = float(hours)
self.qpoints = float(qpoints)
def getName(self):
return self.name
def getHours(self):
return self.hours
def getQPoints(self):
return self.qpoints
def gpa(self):
return self.qpoints/self.hours
def addGrade(self, gradePoint, credits):
self.hours += credits
self.qpoints += credits*gradePoint
def addLetterGrade(self, grade):
total = 0
for i in grade(A,B,C,D,E,F):
if grade == 'A':
total = total + 4.0
elif grade == 'A-':
total = total + 3.7
elif grade == 'B+':
total = total + 3.3
elif grade == 'B':
total = total + 3.0
elif grade == 'B-':
total = total + 2.7
elif grade == 'C+':
total = total + 2.3
elif grade == 'C':
total = total + 2.0
elif grade == 'C-':
total = total + 1.7
elif grade == 'D+':
total = total + 1.3
elif grade == 'D':
total = total + 1.0
elif grade == 'E':
total = total + 0.0
elif grade == 'F':
total = total + 0.0
def main():
grade = input('Enter grade for next course, or type done finish: ')
credits = input('Enter number of credit hours for this course: ')
error_float = 'error: expected a floating-point number'
# make a new Student object
students = Student('students', 0.0, 0.0)
# user-feedback loop
while 1:
# prompt user to enter a grade
grade_str = input(grade)
# quit if no grade is entered
if grade_str.strip() == 'done':
break
try:
# convert input to a floating-point value
grade = float(grade_str)
except ValueError:
# if input cannot be converted, restart feedback loop
print(error_float)
continue
# prompt user to enter the number of credits
credits_str = input(credits).strip()
try:
# convert input to a floating-point value
credits = float(credits_str)
except ValueError:
# if input cannot be converted, restart feedback loop
print(error_float)
continue
# update the student's grades
students.addGrade(grade, credits)
# after user has entered all grades, compute the cumulative GPA
if students.getHours() == 0.0:
# can't compute GPA if hours = 0
print('*** zero credit hours recorded')
else:
# otherwise, output cumulative GPA and finish
print('*** final GPA =', students.gpa())
if __name__ == '__main__':
main()
Подробнее здесь: https://stackoverflow.com/questions/161 ... and-grades
Расчет среднего балла по классам с использованием кредитов и оценок ⇐ Python
Программы на Python
-
Anonymous
1766412260
Anonymous
Я пишу программу для получения кредитов и оценок и возврата рассчитанного среднего балла. Мне нужно придумать, как использовать более одной оценки в качестве параметра. Для этого достаточно одного, но мой код написан так, что он продолжает получать оценки и кредиты, пока ничего не будет введено. Но так не работает.
Мой код на данный момент:
class Student:
def __init__(self, hours, qpoints, credits):
self.hours = float(hours)
self.qpoints = float(qpoints)
def getName(self):
return self.name
def getHours(self):
return self.hours
def getQPoints(self):
return self.qpoints
def gpa(self):
return self.qpoints/self.hours
def addGrade(self, gradePoint, credits):
self.hours += credits
self.qpoints += credits*gradePoint
def addLetterGrade(self, grade):
total = 0
for i in grade(A,B,C,D,E,F):
if grade == 'A':
total = total + 4.0
elif grade == 'A-':
total = total + 3.7
elif grade == 'B+':
total = total + 3.3
elif grade == 'B':
total = total + 3.0
elif grade == 'B-':
total = total + 2.7
elif grade == 'C+':
total = total + 2.3
elif grade == 'C':
total = total + 2.0
elif grade == 'C-':
total = total + 1.7
elif grade == 'D+':
total = total + 1.3
elif grade == 'D':
total = total + 1.0
elif grade == 'E':
total = total + 0.0
elif grade == 'F':
total = total + 0.0
def main():
grade = input('Enter grade for next course, or type done finish: ')
credits = input('Enter number of credit hours for this course: ')
error_float = 'error: expected a floating-point number'
# make a new Student object
students = Student('students', 0.0, 0.0)
# user-feedback loop
while 1:
# prompt user to enter a grade
grade_str = input(grade)
# quit if no grade is entered
if grade_str.strip() == 'done':
break
try:
# convert input to a floating-point value
grade = float(grade_str)
except ValueError:
# if input cannot be converted, restart feedback loop
print(error_float)
continue
# prompt user to enter the number of credits
credits_str = input(credits).strip()
try:
# convert input to a floating-point value
credits = float(credits_str)
except ValueError:
# if input cannot be converted, restart feedback loop
print(error_float)
continue
# update the student's grades
students.addGrade(grade, credits)
# after user has entered all grades, compute the cumulative GPA
if students.getHours() == 0.0:
# can't compute GPA if hours = 0
print('*** zero credit hours recorded')
else:
# otherwise, output cumulative GPA and finish
print('*** final GPA =', students.gpa())
if __name__ == '__main__':
main()
Подробнее здесь: [url]https://stackoverflow.com/questions/16141476/calculating-gpa-with-classes-using-credits-and-grades[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия