Как рассчитать проценты в Python

#python #percentage #division

#python #процент #разделение

Вопрос:

Я создаю программу на Python для определения процента моих оценок по различным предметам. Предполагается, что он запрашивает у меня мои оценки и находит процент, но что-то не так. Я довольно молод, поэтому, пожалуйста, не смейтесь над моей попыткой:

 import os
import time
print ("This is a program to calculate your percentage in your ACADEMICS ")
time.sleep(2)

english = input("Enter your english marks n t")
time.sleep(1)

maths = input ("Enter your maths marks n t")
time.sleep(1)

science= input ("Enter your science marks n t")
time.sleep(1)

print ("OK, i am reviewing your marks, ")
time.sleep(1)
print ("Hmm, verry poor marks, but here is your %")

percentage = english   maths   science /3
print(percentage)
 

но в конце говорится, что

 Traceback (most recent call last):
  File "C:/Users/COOL BOY/Desktop/percentage.py", line 18, in <module>
    percentage = english   maths   science %3
TypeError: not all arguments converted during string formatting
 

Что я здесь делаю не так?

Комментарии:

1. Ваша ошибка не соответствует вашему коду, и вы не преобразуете свои входные данные в целые числа.

2. 1. Отображается сообщение об ошибке % , но отображается ваш код / . Таким образом, эта ошибка не соответствует фактическому коду. 2. Познакомься со своим новым другом БОДМАСОМ !

3. процент = (английский математика наука)/3

Ответ №1:

input Функция возвращает строку. При вычислении english maths science /3 вы добавляете строки! Вы должны преобразовать свои входные данные в числа с помощью функций int(string) or float(string) . Вы также можете проверить, состоят ли ваши строки из цифр с 'mystring'.isdigit() помощью .

Ответ №2:

Преобразуйте строку в int при запросе входных данных, при вычислении вы используете строки вместо целых чисел.

 import os
import time
print ("This is a program to calculate your percentage in your ACADEMICS ")
time.sleep(2)


english = int(input("Enter your english marks n t"))
time.sleep(1)

maths = int(input("Enter your maths marks n t"))
time.sleep(1)


science= int(input("Enter your science marks n t"))
time.sleep(1)


print ("OK, i am reviewing your marks, ")
time.sleep(1)
print ("Hmm, verry poor marks, but here is your %")

percentage = (english   maths   science) /3
print(percentage)
 

Ответ №3:

  1. Ввод должен быть приведен с помощью int Ex: int(input("number"))
  2. Учитывая, что maxScore для предмета равен 100, формула будет

    percentage=(aquaired marks of all 3 subjects)x100/(3*100)

  3. Процент должен быть округлен на последние 2 цифры.

Окончательная программа будет.

 import os
import time

maxscore = 100
totalsubjects=3

print ("This is a program to calculate your percentage in your ACADEMICS ")
time.sleep(2)


english = int(input("Enter your english marks n t"))
time.sleep(1)

maths = int(input("Enter your maths marks n t"))
time.sleep(1)


science= int(input("Enter your science marks n t"))
time.sleep(1)


print ("OK, i am reviewing your marks, ")
time.sleep(1)
print ("Hmm, verry poor marks, but here is your %")

percentage = (english   maths   science)*100/(maxscore*totalsubjects)
print(round(percentage,2))
 

Ответ №4:

способ pythonic

 import os, time

def get_subject_score(sub):
    time.sleep(2)
    return int(input(f"Enter your {sub} marks : "))  # int or float as you wish

print("This is a program to calculate your percentage in your ACADEMICS")

english = get_subject_score("english")
maths = get_subject_score("math")
science = get_subject_score("science")

print(f"OK, i am reviewing your marks, {(english   maths   science) / 3}")
 

Ответ №5:

  1. Когда вы принимаете integrer в качестве входных данных, это должно быть int(input()) вместо input() того, чтобы позже принимать входные данные в виде строки
  2. Для вычисления процента его должно быть в процентах = (Сумма полученных отметок) Максимальные отметки / (3 максимальных отметки)

Предполагая, что 100 в качестве знаков * Процент = (английский математика наука) 100 / (3 * 100)