2017-02-12 9 views
-1

Я создаю программу, которая вычисляет оценку и выплевывает сообщение типа «у вас есть (если процент более 90), b, если процент более 80 и т. Д. Я не .?! с помощью операторов правильно может кто-то пожалуйста, покажите мне правильный формат БлагодаряЛогические операторы <, >, <= etc

def totals(score_w, score_x, score_y, score_z): 
print ("Overall percentage = ", round(score_w + score_x + score_y + score_z), 1) 
if round((score_w + score_x + score_y + score_z, 1) > 90.0): 
    print("Your grade will be at least: A") 
elif round((score_w + score_x + score_y + score_z, 1) (< 90) and (>= 80)): 
    print("Your grade will be at least: B") 
elif round((score_w + score_x + score_y + score_z, 1) (< 80) and (>= 70)): 
    print("Your grade will be at least: C") 
+2

Поместите 'round ((score_w + score_x + score_y + score_z, 1)' в переменную, чтобы вам не приходилось повторять все это время, а затем переписывайте свои 'if', чтобы использовать эту переменную. становится яснее. – Ryan

ответ

0

Я написал свою собственную функцию, которая делает то, что вы хотите.

Вот что случилось с вашим кодом:

  1. Вы должны отступа его правильно.

  2. Это сравнение не так: (< 90) и (> = 80))

Вы должны иметь что-то похожее на это: (Примечание: Это питон 2 код)

def totals(score_w, score_x, score_y, score_z): 
    rnd = round(score_w + score_x + score_y + score_z) 
    print "Overall percentage is: " + str(rnd) 
    if rnd >= 90.0: 
     print "A" 
    elif rnd < 90 and rnd >= 80: 
     print "B" 
    elif rnd < 80 and rnd >= 70: 
     print "C" 
3

вы не можете сделать

round((score_w + score_x + score_y + score_z, 1) (< 90) and (>= 80)) 

Но вы можете сделать это:

80 <= round(score_w + score_x + score_y + score_z, 1) < 90 

Если вы хотите использовать оператор and здесь, вам придется написать это:

round(score_w + score_x + score_y + score_z, 1) < 90 and round(score_w + score_x + score_y + score_z, 1) >= 80 

Как было предложено, вы должны поставить круглую функцию в вар, такие как:

grade = round(score_w + score_x + score_y + score_z, 1) 

Тогда код будет значительно чище:

if 80 <= grade < 90: 

или

if 80 <= grade and grade < 90: 
+1

Возможно, стоит отметить, что одно из сравнений не является актом y необходимо. «Elif» заботится о пропуске баллов, которые были достаточно хороши для более высокого класса. Таким образом, первая проверка может быть «grade» = 90', тогда следующая может быть «grade» = 80', не требуя повторного подтверждения «grade <90». – Blckknght

Смежные вопросы