Как добавить несколько, если условия с несколькими переменными - PullRequest
0 голосов
/ 06 мая 2018

Я только начал изучать кодирование с использованием pycharm. Так что для меня все ново. Я должен написать пару программ, которые просты и легки, из которых я уже написал и просто придерживался этой.

Проблема: Разработайте программу, которая рассчитает общую стоимость оборудования для 3 новых игроков в крикет, представляющих спортивный клуб JCU Brisbane. Новинки следующие: - Каждый новый игрок получает наколенники и ватные перчатки. - Пользователю будет задан вопрос о размере футболки для каждого нового игрока, и на основании этого цена футболки будет добавлена ​​к общей сумме. - Кроме того, команда также получает 3 новых мяча для крикета и 5 новых летучих мышей.

Мячи для крикета стоят по 20 долларов, летучие мыши - 45 долларов, наколенники - 70 и 130 долларов за пару ватиновых перчаток. Размеры футболки: S (45 долларов), M (55 долларов), L (65 долларов) и XL (75 долларов).

Программа должна вернуть общую стоимость оборудования.

Что я не могу сделать, так это как определить значение для каждого конкретного размера для каждого конкретного игрока. Я новичок и застрял. Если кто-нибудь может помочь, пожалуйста.

Это то, что я сделал до сих пор:

# practise for coding challenge


psize = input("enter the size of the player1(s/m/l/xl): ")
#psize2 = input("enter the size of the player:")

cricBall = 20
cricBat = 45
kPad = 70
batGlove = 130
tsmall = 45
tmed = 55
tlar = 65
txl = 75

if psize == "s":
    total = (3 * kPad) + (3 * batGlove) + 45 + (3 * cricBall) + (5 * cricBat)
    print("The total cost of equipment is:", total)
if psize == "m":
    total = (3 * kPad) + (3 * batGlove) + 55 + (3 * cricBall) + (5 * cricBat)
    print("The total cost of equipment is:", total)
if psize == "l":
    total = (3 * kPad) + (3 * batGlove) + 65 + (3 * cricBall) + (5 * cricBat)
    print("The total cost of equipment is:", total)
if psize == "xl":
    total = (3 * kPad) + (3 * batGlove) + 75 + (3 * cricBall) + (5 * cricBat)
    print("The total cost of equipment is:", total)

Ответы [ 3 ]

0 голосов
/ 06 мая 2018

Если у каждого из 3 игроков будет свой размер футболки, вы можете просто сделать это:

cricBall = 20
cricBat = 45
kPad = 70
batGlove = 130
tsmall = 45
tmed = 55
tlar = 65
txl = 75

total = (3 * kPad) + (3 * batGlove) + (3 * cricBall) + (5 * cricBat)
players = 0
while(players < 3):
    psize = input("enter the size of the player1(s/m/l/xl): ")
    if psize == "s":
        total = total + tsmall
    elif psize == "m":
        total = total + tmed
    elif psize == "l":
        total = total + tlar
    else:
        total = total + txl
    players += 1

print("The total cost of equipment is:", total)

Как было сказано в другом ответе, просто рассчитайте общую стоимость экипировки игроков и для каждого игрока добавьте стоимость футболки к общей стоимости, после этого напечатайте общую стоимость

0 голосов
/ 06 мая 2018

Я думаю, что ваш подход может быть таким:

  1. Попросите 3 ввода размера футболки каждого игрока

     psize_player1 = input("enter the size of the player1(s/m/l/xl): ")
     psize_player2 = input("enter the size of the player1(s/m/l/xl): ")
     psize_player3 = input("enter the size of the player1(s/m/l/xl): ")
    
  2. Теперь в стоимости снаряжения только переменное количество - цена футболки согласно размер.

     cost of  equipment = (3 * kPad) + (3 * batGlove) + (3 * cricBall) + (5
     * cricBat) + price(psize_player1) + price(psize_player2) + price(psize_player3)
    

    где цена (psize_player1) - это функция, которая возвращает цену в соответствии с размером футболки (см. Следующий шаг)

  3. Определите функцию, которая проверяет размер и цену возврата.

    def price(size):
          if size == small:
              return tsmall
          elif size == med:
              return tmed
          elif size == large:
              return tlar
          elif size == extralarge:
              return txl
    
0 голосов
/ 06 мая 2018

У вас уже есть хорошее начало. Я бы предпочел не давать никакого кода, поскольку вы могли бы узнать больше, выяснив это самостоятельно с небольшой помощью. Однако я могу добавить это позже, если вы действительно не можете понять это.

Прежде всего, вместо использования if-statements, вы можете работать с if, elif and perhaps an else-statement. Как поддельный код ниже:

if statement:
  do this
elif statement:
  do this
elif statement:
  do this
else:
  do this

Что касается вашего вопроса: у вас уже есть предопределенные цены для каждого размера, и вы печатаете переменную на основе входных данных. Все, что вам нужно сделать, это добавить каждый размер к total в правильном выражении. Например, по коду ниже мы добавляем цену:

if psize == "s":
    total = (3 * kPad) + (3 * batGlove) + 45 + (3 * cricBall) + (5 * cricBat) + tsmall
    print("The total cost of equipment is:", total)

Теперь аналогичным образом работайте с другими утверждениями. Еще одна вещь: поскольку вы выполняете одну и ту же операцию в каждом if-statement, вы можете сделать это перед этими утверждениями. Как это:

total = (3 * kPad) + (3 * batGlove) + 45 + (3 * cricBall) + (5 * cricBat)
if psize == "s":
        total = total + tsmall
        print("The total cost of equipment is:", total)

И еще раз: сделайте то же самое для других утверждений.

Решение для комментария ниже:

#calculate base price
total = 3 * (kPad + batGlove + cricBall) + 45 + 5*cricBat
#Loop three times, ask for an input and add the price per input to total
count = 0;
while count < 3:
  #ask for input here
  #add size-based price to total (with the if-statements)
  count += 1
#exit loop and print the result
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...