鱼C论坛

 找回密码
 立即注册
查看: 1460|回复: 15

[已解决]类和对象

[复制链接]
发表于 2020-8-16 11:57:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. class Ticket():
  2.     a = 100 #平日票价
  3.     b = 120 #周末票价
  4.     c = 50  #儿童平日
  5.     d = 60  #儿童周末
  6.    
  7.    
  8.     def bb(self):
  9.         k= input("成人数量:")
  10.         e = input("儿童数量:")
  11.         f = input("今天星期(数字1—7):")
  12.         if f == "6" or "7":
  13.             g = k * int(self.b)
  14.             h = e * int(self.d)
  15.             return (g+h)
  16.         else:
  17.             g= k * int(self.a)
  18.             h= e * int(self.c)
  19.             return (g+h)
  20.    
复制代码


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

为什么运行出来的是100或者120个 成人数量和儿童数量?
最佳答案
2020-8-16 13:23:17
  1. class Ticket():
  2.     a = 100  # 平日票价
  3.     c = 50  # 儿童平日
  4.     #b = 120  # 周末票价
  5.     #d = 60  # 儿童周末

  6.     def bb(self):
  7.         k = input("成人数量:")
  8.         e = input("儿童数量:")
  9.         f = input("今天星期(数字1—7):")
  10.         all=int(k)* int(self.a)+int(e) * int(self.c)
  11.         if f == "6" or f =="7":
  12.             return all*1.2
  13.         else:
  14.             return all
  15. z=Ticket()
  16. print(z.bb())
复制代码


价格是整体浮动20%,没必要分开计算吧,input进来的数字要int()处理,if后面的判断写岔了,写完了就好了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-8-16 11:58:18 | 显示全部楼层
这样试试:

  1. class Ticket():
  2.     a = 100  # 平日票价
  3.     b = 120  # 周末票价
  4.     c = 50  # 儿童平日
  5.     d = 60  # 儿童周末

  6.     def bb(self):
  7.         k = int(input("成人数量:"))
  8.         e = int(input("儿童数量:"))
  9.         f = input("今天星期(数字1—7):")
  10.         if f == "6" or "7":
  11.             g = k * int(self.b)
  12.             h = e * int(self.d)
  13.             return (g + h)
  14.         else:
  15.             g = k * int(self.a)
  16.             h = e * int(self.c)
  17.             return (g + h)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-16 12:08:13 | 显示全部楼层
input接收的是str,要转换成int
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-16 12:12:01 | 显示全部楼层


                               
登录/注册后可看大图


为啥算出来是300.。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-16 12:14:49 | 显示全部楼层
小小鹏 发表于 2020-8-16 12:12
为啥算出来是300.。。。

没问题啊,100 * 120% * 2 + 100 * 1/2 * 120% 就是等于 300
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

先搞好逻辑啊亲~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

哦,看错了,这样即可

  1. class Ticket():
  2.     a = 100  # 平日票价
  3.     b = 120  # 周末票价
  4.     c = 50  # 儿童平日
  5.     d = 60  # 儿童周末

  6.     def bb(self):
  7.         k = input("成人数量:")
  8.         e = input("儿童数量:")
  9.         f = input("今天星期(数字1—7):")
  10.         if f == "6" or f == "7":
  11.             g = k * int(self.b)
  12.             h = e * int(self.d)
  13.             return (g + h)
  14.         else:
  15.             g = k * int(self.a)
  16.             h = e * int(self.c)
  17.             return (g + h)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-16 13:23:17 | 显示全部楼层    本楼为最佳答案   
  1. class Ticket():
  2.     a = 100  # 平日票价
  3.     c = 50  # 儿童平日
  4.     #b = 120  # 周末票价
  5.     #d = 60  # 儿童周末

  6.     def bb(self):
  7.         k = input("成人数量:")
  8.         e = input("儿童数量:")
  9.         f = input("今天星期(数字1—7):")
  10.         all=int(k)* int(self.a)+int(e) * int(self.c)
  11.         if f == "6" or f =="7":
  12.             return all*1.2
  13.         else:
  14.             return all
  15. z=Ticket()
  16. print(z.bb())
复制代码


价格是整体浮动20%,没必要分开计算吧,input进来的数字要int()处理,if后面的判断写岔了,写完了就好了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-16 14:15:25 | 显示全部楼层
  1. if f == "6" or "7"
复制代码

这一行写的有问题啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-16 14:51:45 | 显示全部楼层
疾风怪盗 发表于 2020-8-16 13:23
价格是整体浮动20%,没必要分开计算吧,input进来的数字要int()处理,if后面的判断写岔了,写完了就好 ...
  1. class Ticket():
  2.     a = 100  # 平日票价
  3.     b = 120  # 周末票价
  4.     c = 50  # 儿童平日
  5.     d = 60  # 儿童周末

  6.     def bb(self):
  7.         k = input("成人数量:")
  8.         e = input("儿童数量:")
  9.         f = input("今天星期(数字1—7):")
  10.         if f == "6" or f == "7":
  11.             g = int(k) * int(self.b)
  12.             h = int(e) * int(self.d)
  13.             return (g + h)
  14.         else:
  15.             g = int(k) * int(self.a)
  16.             h = int(e) * int(self.c)
  17.             return (g + h)
复制代码


嗯嗯 你的代码运行是正确的,我最开始的问题就是input进来的数字没有进行int()处理。所以有问题。我现在int()处理,运行的结果也是可以的。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-16 14:53:09 | 显示全部楼层
zltzlt 发表于 2020-8-16 12:56
哦,看错了,这样即可

你这个代码就是我最开始的代码。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-16 14:55:35 | 显示全部楼层
小小鹏 发表于 2020-8-16 14:53
你这个代码就是我最开始的代码。。。

?不是呀
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-16 14:59:18 | 显示全部楼层
小小鹏 发表于 2020-8-16 14:53
你这个代码就是我最开始的代码。。。

你最开始的代码,有两个错,没有int(),还有就是if判断没写完整
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-16 15:00:05 | 显示全部楼层
小小鹏 发表于 2020-8-16 14:53
你这个代码就是我最开始的代码。。。

版主帮你改了两次,但是两次都只改了一个错,你再仔细看一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-16 15:33:48 | 显示全部楼层

噢噢我看懂啦 不好意思呀
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-25 20:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表