小小鹏 发表于 2020-8-16 11:57:18

类和对象

class Ticket():
    a = 100 #平日票价
    b = 120 #周末票价
    c = 50#儿童平日
    d = 60#儿童周末
   
   
    def bb(self):
      k= input("成人数量:")
      e = input("儿童数量:")
      f = input("今天星期(数字1—7):")
      if f == "6" or "7":
            g = k * int(self.b)
            h = e * int(self.d)
            return (g+h)
      else:
            g= k * int(self.a)
            h= e * int(self.c)
            return (g+h)
   

定义一个游乐园门票的类,并尝试计算2个成人+1个小孩平日票价:
平日票价100元
周末票价为平日的120%
儿童半票

为什么运行出来的是100或者120个 成人数量和儿童数量?

zltzlt 发表于 2020-8-16 11:58:18

这样试试:

class Ticket():
    a = 100# 平日票价
    b = 120# 周末票价
    c = 50# 儿童平日
    d = 60# 儿童周末

    def bb(self):
      k = int(input("成人数量:"))
      e = int(input("儿童数量:"))
      f = input("今天星期(数字1—7):")
      if f == "6" or "7":
            g = k * int(self.b)
            h = e * int(self.d)
            return (g + h)
      else:
            g = k * int(self.a)
            h = e * int(self.c)
            return (g + h)

疾风怪盗 发表于 2020-8-16 12:08:13

input接收的是str,要转换成int

小小鹏 发表于 2020-8-16 12:12:01

zltzlt 发表于 2020-8-16 11:58
这样试试:

https://pic.downk.cc/item/5f38b1f714195aa59439e849.png

为啥算出来是300.。。。

zltzlt 发表于 2020-8-16 12:14:49

小小鹏 发表于 2020-8-16 12:12
为啥算出来是300.。。。

没问题啊,100 * 120% * 2 + 100 * 1/2 * 120% 就是等于 300

小小鹏 发表于 2020-8-16 12:33:20

zltzlt 发表于 2020-8-16 12:14
没问题啊,100 * 120% * 2 + 100 * 1/2 * 120% 就是等于 300

我以为当我输入成人2个,小孩1个,数字2时,就是运行else里面的内容,也就是2*100+1*50 等于250

陈尚涵 发表于 2020-8-16 12:43:02

小小鹏 发表于 2020-8-16 12:33
我以为当我输入成人2个,小孩1个,数字2时,就是运行else里面的内容,也就是2*100+1*50 等于250

先搞好逻辑啊亲~

zltzlt 发表于 2020-8-16 12:56:07

小小鹏 发表于 2020-8-16 12:33
我以为当我输入成人2个,小孩1个,数字2时,就是运行else里面的内容,也就是2*100+1*50 等于250

哦,看错了,这样即可

class Ticket():
    a = 100# 平日票价
    b = 120# 周末票价
    c = 50# 儿童平日
    d = 60# 儿童周末

    def bb(self):
      k = input("成人数量:")
      e = input("儿童数量:")
      f = input("今天星期(数字1—7):")
      if f == "6" or f == "7":
            g = k * int(self.b)
            h = e * int(self.d)
            return (g + h)
      else:
            g = k * int(self.a)
            h = e * int(self.c)
            return (g + h)

疾风怪盗 发表于 2020-8-16 13:23:17

class Ticket():
    a = 100# 平日票价
    c = 50# 儿童平日
    #b = 120# 周末票价
    #d = 60# 儿童周末

    def bb(self):
      k = input("成人数量:")
      e = input("儿童数量:")
      f = input("今天星期(数字1—7):")
      all=int(k)* int(self.a)+int(e) * int(self.c)
      if f == "6" or f =="7":
            return all*1.2
      else:
            return all
z=Ticket()
print(z.bb())

价格是整体浮动20%,没必要分开计算吧,input进来的数字要int()处理,if后面的判断写岔了,写完了就好了

°蓝鲤歌蓝 发表于 2020-8-16 14:15:25

if f == "6" or "7"
这一行写的有问题啊

小小鹏 发表于 2020-8-16 14:51:45

疾风怪盗 发表于 2020-8-16 13:23
价格是整体浮动20%,没必要分开计算吧,input进来的数字要int()处理,if后面的判断写岔了,写完了就好 ...

class Ticket():
    a = 100# 平日票价
    b = 120# 周末票价
    c = 50# 儿童平日
    d = 60# 儿童周末

    def bb(self):
      k = input("成人数量:")
      e = input("儿童数量:")
      f = input("今天星期(数字1—7):")
      if f == "6" or f == "7":
            g = int(k) * int(self.b)
            h = int(e) * int(self.d)
            return (g + h)
      else:
            g = int(k) * int(self.a)
            h = int(e) * int(self.c)
            return (g + h)

嗯嗯 你的代码运行是正确的,我最开始的问题就是input进来的数字没有进行int()处理。所以有问题。我现在int()处理,运行的结果也是可以的。

小小鹏 发表于 2020-8-16 14:53:09

zltzlt 发表于 2020-8-16 12:56
哦,看错了,这样即可

你这个代码就是我最开始的代码。。。

zltzlt 发表于 2020-8-16 14:55:35

小小鹏 发表于 2020-8-16 14:53
你这个代码就是我最开始的代码。。。

?不是呀

疾风怪盗 发表于 2020-8-16 14:59:18

小小鹏 发表于 2020-8-16 14:53
你这个代码就是我最开始的代码。。。

你最开始的代码,有两个错,没有int(),还有就是if判断没写完整

疾风怪盗 发表于 2020-8-16 15:00:05

小小鹏 发表于 2020-8-16 14:53
你这个代码就是我最开始的代码。。。

版主帮你改了两次,但是两次都只改了一个错,你再仔细看一下

小小鹏 发表于 2020-8-16 15:33:48

zltzlt 发表于 2020-8-16 14:55
?不是呀

噢噢我看懂啦 不好意思呀
页: [1]
查看完整版本: 类和对象