Я новичок в Python, принимая мой первый класс в этом прямо сейчас, только около 4 недель.Использование функций для нескольких входов [Python]
Назначение заключается в вычислении среднего тест и отображение класса для каждого тест введен.
Часть задания заключается в использовании функции для вычисления среднего значения, а также при определении того, для какой марки письма присваивается каждый балл.
Как я понимаю, функции должны помочь сократить глобальные переменные.
Мой вопрос:Как сгустить этот код?
Я не знаю, как использовать функцию для определения класса письма, а затем отображать это, не создавая глобальную переменную для каждого класса, который был введен.
Если вы заметили избыточность в моем коде, я был бы признателен за хедз-ап и небольшой урок о том, как это вырезать. Я уже чую раскрывающиеся метки я получу, если я включаю это как есть ...
def main():
grade1=float(input("Enter score (0-100):"))
while (grade1 <0 or grade1 >100):
if grade1 <0 or grade1 >100:
print("Please enter a valid grade")
grade1=float(input("Enter score (0-100):"))
grade2=float(input("Enter score (0-100):"))
while (grade2 <0 or grade2 >100):
if grade2 <0 or grade2 >100:
print("Please enter a valid grade")
grade2=float(input("Enter score (0-100):"))
grade3=float(input("Enter score (0-100):"))
while (grade3 <0 or grade3 >100):
if grade3 <0 or grade3 >100:
print("Please enter a valid grade")
grade3=float(input("Enter score (0-100):"))
grade4=float(input("Enter score (0-100):"))
while (grade4 <0 or grade4 >100):
if grade4 <0 or grade4 >100:
print("Please enter a valid grade")
grade4=float(input("Enter score (0-100):"))
grade5=float(input("Enter score (0-100):"))
while (grade5 <0 or grade5 >100):
if grade5 <0 or grade5 >100:
print("Please enter a valid grade")
grade5=float(input("Enter score (0-100):"))
total=grade1+grade2+grade3+grade4+grade5
testAverage=calcAverage(total)
eachGrade1=determineGrade(grade1)
eachGrade2=determineGrade(grade2)
eachGrade3=determineGrade(grade3)
eachGrade4=determineGrade(grade4)
eachGrade5=determineGrade(grade5)
print("\nTest #1 grade:", (eachGrade1))
print("Test #2 grade:", (eachGrade2))
print("Test #3 grade:", (eachGrade3))
print("Test #4 grade:", (eachGrade4))
print("Test #5 grade:", (eachGrade5))
print("\nTest average:", (testAverage),("%"))
def calcAverage(total):
average=total/5
return average
def determineGrade(grade):
if grade >=90:
return "A"
elif grade >=80:
return "B"
elif grade >=70:
return "C"
elif grade >=60:
return "D"
else:
return "F"
Правило # 1 кодирования, никогда не копировать и вставлять. Всякий раз, когда вы копируете и вставляете, это действительно функция. – Kurt
Боюсь, я не понимаю, о чем вы говорите? –
Возможно, вам захочется внимательно ознакомиться с материалами курса, касающимися этого задания. Он, вероятно, обсуждает такие темы, как функции, возвращаемые значения и списки. – TigerhawkT3