zhongguozkh 发表于 2020-9-13 16:29:30

中二病患者

class User():
        def __init__(self,name,age,length_of_life,value):
                self.name = name.title()
                self.age = age
                self.length_of_life = length_of_life
                self.value = value
        def greet_user(self):
                if self.value > 100:
                        msg = "您好,帝国的建设者:" + self.name + "阁下!"
                        print(msg)
                elif self.age/self.length_of_life < 0.3:
                        msg = "生命正当时,天地大可为"
                        print(msg)
                else:
                        msg = "请在收到此信息后两个地球年内前往生化部报道"
                        print(msg)
        def query_contribution_value(self):
                if self.value > 100:
                        msg = "感谢您对帝国做过的贡献,您的贡献值为:"+ str(self.value)+ "."
                        print(msg)
                else:
                        print(self.value)
        def convertible_thing(self):
                a = ["虚拟实境","马克二型","绝境血清PRO","零级图书馆借阅卡*1"]
                b = a + ["冷兵器时代星球","暗能机甲","黑光血清PRO","一级图书馆借阅卡*1"]
                c = b + ["探索者级飞船","机器工厂模块","帝国图书馆借阅卡*1"]
                if self.value < 66:
                        print(a)
                elif self.value < 100:
                        print(b)
                elif self.value >= 100:
                        print(c)


u1 = User("Z",25,150,101)
u1.query_contribution_value()
感谢您对帝国做过的贡献,您的贡献值为:101.





本来是会报错的,显示不能用字符串链接字符串。但为什么我睡一觉起来就能运行了!???{:10_285:} 还真是梦里啥都有{:10_282:}
所以为什么呢{:10_245:} 。。。。。

zhongguozkh 发表于 2020-9-13 16:31:58

本来确实是有错的
msg = "感谢您对帝国做过的贡献,您的贡献值为:"+ self.value+ "."
但我修改后还是报错,甚至还说:query_contribution_value不是User的属性{:10_247:}(这不扯淡吗)
求解{:10_281:}

Twilight6 发表于 2020-9-13 16:37:21

zhongguozkh 发表于 2020-9-13 16:31
本来确实是有错的

但我修改后还是报错,甚至还说:query_contribution_value不是User的属性( ...


self.value 是 int 整形, self.name是 str 字符串类型的

而你的 "感谢您对帝国做过的贡献,您的贡献值为:"+ self.value+ "." 是字符串 和 整形进行 + 号操作

Python 不知道你是想对整形对象用 + 法,还是对字符串对象用 + 号拼接导致报错
页: [1]
查看完整版本: 中二病患者