2017-02-12 5 views
-1

등급을 계산하고 "당신은 (90 % 이상이면), b는 80 % 이상이면 b"와 같은 메시지를 내뱉는 프로그램을 만들고 있습니다. .?! 제대로 연산자를 사용하여 누군가가 나에게 적절한 형식을 보여 주시겠습니까 감사부울 연산자 <, >, <= 등

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

'(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 연산자를 사용하려면

,이처럼 작성해야합니다

grade = round(score_w + score_x + score_y + score_z, 1) 
: 제안으로

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

, 당신은 같은 VAR로 라운드 기능을 넣어해야

그런 다음 코드는 훨씬 청소기 될 것입니다 :

if 80 <= grade < 90: 

또는

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

비교 중 하나가 사실이 아니라고 지적 할 가치가 있습니다. 필요합니다. '엘프 (Elif) '는 높은 점수를 얻기에 충분했던 점수를 건너 뛰는 일을 처리합니다. 따라서 첫 번째 검사는 'grade> = 90'일 수 있고, 그 다음은 'grade> 90'을 재확인하지 않고 'grade> = 80' 일 수 있습니다. – Blckknght