2016-09-20 4 views
1

내 학교의 경우 식사의 팁과 세금을 계산하는 스크립트를 만들어야합니다. 나는 내 반의 모든 사람들보다 앞서 있기 때문에 다른 사람들은이 문제를 가지고 있지 않다.Python 코드가 특정 버전에서 작동하지 않습니다.

코드는 내 PC의 Python3 IDLE에서 올바르게 작동하며, repl.it에서도 정상적으로 작동합니다. 기발한만큼, 내 학교의 IDLE은 개인이며 Python Fiddle, which is pretty much the same 팁과 세금이 제대로 계산되지 않습니다.

또한 추가 숫자 표시 또는 숫자가 충분하지 않은 것과 같은 몇 가지 버그가 있습니다. 나는 이것을 문자열 조각으로 해결하기 위해 가장 열심히 노력했지만 효과가 없었다. 내가 그것을하는 방법을 알고있는 유일한 다른 방법은 허용되지 않는 문장 인 경우 입니다.

도움을 주시면 감사하겠습니다. 미리 감사드립니다.

코드 :

#Name 
#9/20/16 
#This program calculates the total cost of a meal. 

def main(): 
    #INPUT 
    meal = float(30.96) 
    am = int(input("How many meals would you like? ")) 
    tx = int(input("What is the tax %? ")) 
    tp = int(input("How much % do you want to tip?")) 
#CALCULATIONS 
    subT = am*meal 
    tax1 = tx/100 
    tax = tax1*subT 
    subTotalWithTax = subT + tax 
    tip1 = tp/100 
    tip = tip1*subTotalWithTax 
    total = subTotalWithTax + tip 
    clTip = str(tip)[0: 4] 
    clTax = str(tax)[0: 4] 
    clTotal = str(total)[0: 6] 
    clSubT = str(subT)[0: 6] 
#OUTPUT 
    print("-----------------------------------------------") 
    print("Items: ") 
    print(str(am) + " Overloaded Potato Skins ------------- $7.99") 
    print(str(am) + " Grilled Top Sirloin 12oz ------------ $16.49") 
    print(str(am) + " Sweet Tea --------------------------- $1.99") 
    print(str(am) + " Southern Pecan Pie ------------------ $3.99") 
    print("------------------------------------------------") 
    print("Totals: ") 
    print("Subtotal: ----------------------------- $" + str(clSubT)) 
    print("Tax: ---------------------------------- $" + str(clTax)) 
    print("Tip: ---------------------------------- $" + str(clTip)) 
    print("Total --------------------------------- $" + str(clTotal)) 
    print("------------------------------------------------") 
main() 
+3

학교에서 파이썬 3을 사용하고 있는지 확인하십시오. –

+0

[이 답변] (http://stackoverflow.com/questions/1535596/what-is-the-reason-for-having-in-python)을 확인하십시오. 그것은 파이썬 2와 3의 차이 일 수 있습니다. –

+0

파이썬 피들은 파이썬 2를 사용합니다. 학교의 IDLE은 파이썬 2이기도합니다.'/'연산자는 파이썬 3와 파이썬 2에서 다르게 동작합니다. – edwinksl

답변

1

당신은 (가능성, 2) 그 파이썬 표시 될 수 있습니다 답변으로 $ 0 얻을 수 있다는 사실 아직 숫자를 정수로 나타냅니다. 명시 적으로 float로 캐스팅 해보세요. 예를 들면 :

tip1 = tp/100.0 # instead of 100 

또는

tx = float(input("What is the tax %? ")) 

는 또한 표시하기위한 클리핑 조금 지저분,

print("Total --------------------------------- ${}".format(total)) 

.format()은 당신이 찾고있는 트릭보십시오. SO 또는 https://pyformat.info/ "{:.2f}".format(total) :-)


또는 편집 을 시도 할 - 그러나, 두 소수를 보여 주위를 확인하는 방법은, format하지 않고있다 : 지금 print("%.2f" % total)

그리고, A에 대한 가격을 인쇄 할 수있는 완전히 복잡한 방식입니다 (즉, 서식을 사용할 수 없지만 문자열 조작이 가능하면 문자열 조작이 가능합니다.) :

totalDollar, totalCent = str(total).split('.') 
totalCent += "00" 
print("Total --------------------------------- $" + totalDollar + "." + totalCent[:2]) 
+4

파이썬 3은 또한 숫자를 정수로 나타냅니다. 나는 당신이 나누는 연산자 –

+0

에 차이가 있다는 것을 의미한다고 생각합니다. **. 0 **을 실제로 작동했던 부서 문제에 추가했습니다. ** format **을 포함하여 아직 배웠던 것을 사용할 수는 없지만 충고에 감사드립니다. –

+0

@PadraicCunningham 예. –

0

나는 당신의 학교 컴퓨터에있는 파이썬의 버전을 확인, edwinksl의 의견에 동의합니다. 파이썬 파일을 마우스 오른쪽 버튼으로 클릭하고 유휴 상태로 편집을 클릭하면 버전이 페이지 오른쪽 상단 (파일 경로 옆)에 있어야합니다.

그러나 나는 한 가지 다른 메모가 있습니다. 선생님은 별도로 지정할 수도 있지만 일반적으로 부분 합계는 식사 플러스 세금의 합계입니다. 그런 다음 팁에 그 기준으로 계산 한 후 추가됩니다. (선생님이 그렇지 않으면 자신의 지침을 따르 말했다하지 않는 한.)

subT = am*meal 
tax1 = tx/100 
tax = tax1*subT 
subTotalWithTax = subT + tax 
tip1 = tp/100 
tip = tip1*subTotalWithTax 
total = subTotalWithTax + tip 
+0

감사합니다. 계산을 할 때 정말 지쳤습니다. –

+0

아뇨, 부동 소수점 숫자로 자릿수를 지정하려면 print 문에이 값을 사용하십시오. 1000 번째 자리 표시 자에 기반하여 답변을 반올림합니다. print ("% .2f"% NUMBER) – BLang

관련 문제