>

숙제 과제를위한 프로그램을 작성했습니다.이 과제는 물건의 가격도 계산하는 모의 식료품 목록 역할을합니다.

grocery_item = {}
grocery_history=[{'name': 'milk', 'number': int(1), 'price': float(2.99)},
{'name': 'eggs', 'number': 2, 'price': 3.99},
{'name': 'onions', 'number': 4, 'price': 0.79}]

stop = 'go'
item_name = "Item name"
quantity = "Quantity purchased"
cost = "Price per item" 
print ("Item name:")  
print ("Quantity purchased:")
print ("Price per item:")
cont = 'c'
while cont != 'q':      
  item_name = "milk"
  quantity = "Quantity purchased"
  quantity = 2
  cost = "Price per item"
  cost = 2.99
  grocery_history.append(item_name)
  grocery_history.append(quantity)
  grocery_history.append(cost)
  grocery_item['name'] = item_name
  grocery_item['number'] = quantity
  grocery_item['price'] = cost
  print("Would you like to enter another item?\nType 'c' for continue or 'q'     to quit:\n")
  cont = 'c'
  item_name = "eggs"
  quantity = "Quantity purchased"
  quantity = 1
  cost = "Price per item"
  cost = 3.99
  grocery_history.append(item_name)
  grocery_history.append(quantity)
  grocery_history.append(cost)
  grocery_item['name'] = item_name
  grocery_item['number'] = quantity
  grocery_item['price'] = cost
  "Would you like to enter another item?\nType 'c' for continue or 'q' to quit:\n"
  cont = 'c'  
  item_name = "onions"
  quantity = "Quantity purchased"
  quantity = 4
  cost = "Price per item"
  cost = 0.79
  "Would you like to enter another item?\nType 'c' for continue or 'q' to quit:\n"
  cont = 'q'
  grand_total = []
  number = grocery_item['number']
  price = grocery_item['price']
 for grocery_history in grocery_item:    
   item_total = number*price
   grand_total.append(item_total)
print (grocery_item['number'] + ['name'] + "@" + ['price'] + "ea" + ['item_total'])  
item_total = 0
print (grand_total)

이것은 내가 얻는 오류입니다 :

print (grocery_item['number'] + ['name'] + "@" + ['price'] + "ea" + ['item_total'])
TypeError: unsupported operand type(s) for +: 'int' and 'list'

이 코드에는 여러 가지 문제가 있습니다.

<올>
  • %.2f 를 사용해야합니다  가격을 달러 형식으로 얻으려면 어떻게 해야하는지, 내가 시도한 것은 효과가 없었습니다.
  • print(grocery_item) 에 구문 오류가 있습니다  성명서.
  • 코드 grocery_history 목록을 통해 실행되지 않습니다 동일한 입력을 반복해서 반복합니다.
    • 답변 # 1

      dict 의 필드를 사용하여 형식화 된 인쇄물을 얻으려면  당신은 .format() 를 사용할 수 있습니다  처럼 :

      print('{number} {name} @ {price:.2f} ea'.format(**grocery_item))
      
      

    • 답변 # 2

      수레에 문자열을 추가하기 때문에 오류가 발생했습니다. 파이썬은 그 방법을 모른다.

      @Stephen Rauch가 보여 주듯이, 매우 파이썬적인 구조로 한 줄로 할 수 있습니다. 원하는 경우 구문을 사용할 수 있습니다 와이즈 비즈 어느 것도 잘 작동합니다.

    • 답변 # 3

      기존 '%s\t%s\t...'%(my_variable1, my_variable2) 에 항목을 추가하고 싶다고 가정합니다.  그런 다음 Stephen Grouch의 인쇄 답변을 사용하여 모든 식료품의 총계를 계산하십시오.

      grocery_history
      
      

      일부 잘못됨 :

      실제로 사용자에게 grocery_history=[{'name': 'milk', 'number': int(1), 'price': float(2.99)}, {'name': 'eggs', 'number': 2, 'price': 3.99}, {'name': 'onions', 'number': 4, 'price': 0.79}] cont = 'c' grand_total = 0 while cont != 'q': num = input("How many bottles of milk do you want to buy? ") grocery_history[0]['number'] += num num = input("How many eggs do you want to buy? ") grocery_history[1]['number'] += num num = input("How many onions do you want to buy? ") grocery_history[2]['number'] += num cont = raw_input("Enter c to continue or q to quit: ") while cont not in ['c', 'q']: cont = raw_input("Wrong choice, enter your choice again: ") for grocery_item in grocery_history: item_total = grocery_item['number'] * grocery_item['price'] grand_total += item_total print('${:.2f} for {number} {name} @ {price:.2f} ea'.format(item_total, **grocery_item)) print ("Grand total is ${:.2f}".format(grand_total)) 를 입력하도록 요청하지 않았습니다.  또는 c , 그래서 당신은 목록을 한 번 갔고 q 때문에 결국 끝났습니다. .

      예를 들어, 변수를 계속 덮어 씁니다 :

      cont = 'q'
      
      

      첫 번째 줄은 문자열과 두 번째 정수를 할당합니다. dict 값에 액세스하는 방법을 알고 있으면 dict 값을 직접 조작 할 수 있습니다.

      이 부분 :

       quantity = "Quantity purchased"
        quantity = 2
      
      

      마지막으로 업데이트 된 number = grocery_item['number'] price = grocery_item['price'] 를 할당  (계란) 그리고 당신은 grocery_item 에서 모든 계산을 수행  이 두 값으로 반복하십시오.

      여기 :

      for
      
      

      사전 목록에 문자열과 숫자를 추가하고있었습니다.

      grocery_history.append(item_name) grocery_history.append(quantity) grocery_history.append(cost)

  • 이전 angular 4 and rxjs - 각도 4 및 rxjs - 취소 된 요청이 서버에 도달하지 못하도록 방지
  • 다음 javascript - 'react-dev-utils/clearConsole'모듈을 찾을 수 없습니다