如何使用多个变量添加多个if条件

时间:2018-05-06 09:34:52

标签: python variables if-statement

我刚开始使用pycharm学习编码。所以一切对我来说都是新的。我必须编写几个简单易用的程序,我已经编写过这些程序并且只是坚持使用这个程序。

问题: 设计一个程序,计算代表JCU布里斯班体育俱乐部的3名新板球运动员的设备总成本。新项目如下: - 每位新玩家都会获得护膝和击球手套。 - 将询问用户每个新玩家的T恤尺寸,并根据此尺寸将T恤价格添加到总数中。 - 此外,该队还获得了3个新的板球和5个新球。

板球每个售价20美元,蝙蝠45美元,护膝70美元,一双击球手套130美元。 T恤尺码为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 :(得分:2)

你已经有了一个好的开始。我宁愿不提供任何代码,因为你可以通过一些帮助自己解决这个问题来了解更多。但是如果你真的无法解决它,我可以在以后添加它。

首先,您可以使用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

答案 1 :(得分:1)

如果3名球员中的每一名都有不同的T恤尺码,你可以这么做:

<input #placeAutocompleteInput style="max-width:100%;" 
       [placeholder]="placeholderText"
       [matChipInputFor]="chipListPlaces" 
       [formControl]="mainSearchCtrl" 
       [matAutocomplete]="mainAutocomplete" 
       (keyup.enter)="onEnter($event)"/>
就像在另一个答案中所说的那样,只需计算玩家装备的总成本,并为每位玩家增加T恤的成本与总成本,之后打印总成本

答案 2 :(得分:0)

我认为您的方法可以是这样的:

  1. 要求每个球员3个T恤尺码输入

     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. 现在在设备的成本中,只有可变数量是T恤的价格 大小

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

    其中price(psize_player1)是根据T恤尺码返回价格的功能(见下一步)

  3. 定义一个检查尺寸和退货价格的功能。

    def price(size):
          if size == small:
              return tsmall
          elif size == med:
              return tmed
          elif size == large:
              return tlar
          elif size == extralarge:
              return txl