为了账号安全,请及时绑定邮箱和手机立即绑定

把参考代码中的'(Student:%s,%s,%s)'改成'<Student:%s,%s,%s>'为何没有输出结果?

题目不是要求输出尖括号的吗?我就写了尖括号,运行之后运行成功,但是没有输出结果。

这是怎么回事?

正在回答

8 回答

你试试我的看行不

0 回复 有任何疑惑可以回复我~
#1

游离丸子 提问者

我就是这么写的,我又试了一遍,右边还是一片空白。 没有预期的有尖括号的输出。
2018-07-31 回复 有任何疑惑可以回复我~
#2

游离丸子 提问者

难道是因为我是在网页上运行的? 如果是交互式运行环境就能看到预期的有尖括号的输出了?
2018-07-31 回复 有任何疑惑可以回复我~
#3

蛋蛋先生 回复 游离丸子 提问者

我都是把题目复制到编译器里自己做出来运行成功了再复制到网页里,没关系,只要你会做了就行。
2018-08-01 回复 有任何疑惑可以回复我~
#4

游离丸子 提问者

非常感谢!
2018-08-01 回复 有任何疑惑可以回复我~
查看1条回复

一样的疑惑,虽然知道题目和答案符号没对上,但想不通的是为什么尖括号无法输出内容。

我尝试去掉左边的尖括号,

return 'Student:%s,%s,%d>' %(self.name,self.gender,self.score)

是可以输出的,加上左半边就不行。

另外如果在左半边尖括号<和S之间多打一个空格

return '< Student:%s,%s,%d>' %(self.name,self.gender,self.score)

是能够实现输出的,所以我猜想是<和后面的内容连起来有什么别的功能影响了内容输出。

水平有限,希望能有大佬说说原理。

1 回复 有任何疑惑可以回复我~
#1

qq_邪炎_0

分析的超级对。。应该是<和后面的字符串会有其他特殊意义
2019-02-03 回复 有任何疑惑可以回复我~

没有一个人说出题主的疑惑呀! 这个是老师出题时写错了,运行的结果就是()。 老师不够严谨!

0 回复 有任何疑惑可以回复我~

格式化输出:对应位置字符串是%s,数字是%d

0 回复 有任何疑惑可以回复我~
# self.score 是数字,不能用%s,要用%d

return '(Student:%s,%s,%d)' % (self.name, self.gender, self.score)


1 回复 有任何疑惑可以回复我~
#1

1小马哥1

%s也可以的,你试试
2018-09-26 回复 有任何疑惑可以回复我~

我来帮你们解疑, 结果要(Student:Bob,male,88)这样就行了.

蛋蛋先生你的__repr__ = __str__不用缩进的.说实话最后的print(s)也没有调用到__repr__,这个遗憾了.


终极方案,一行代码搞定.如下:

print ('(Student:Bob,male,88)')

就可以通过了.

下面是我的:

class Person(object):

    def __init__(self, name, gender):
        self.name = name
        self.gender = gender


class Student(Person):

    def __init__(self, name, gender, score):
        super(Student, self).__init__(name, gender)
        self.score = score

    def __str__(self):
        return '(Student:%s,%s,%s)' % (self.name, self.gender, self.score)

    __repr__ = __str__


s = Student('Bob', 'male', 88)
print(s)
print(s.__repr__())


0 回复 有任何疑惑可以回复我~

class Person(object):


    def __init__(self, name, gender):

        self.name = name

        self.gender = gender


class Student(Person):


    def __init__(self, name, gender, score):

        super(Student, self).__init__(name, gender)

        self.score = score


    def __str__(self):

        return '<Student:%s,%s,%s>' % (self.name,self.gender,self.score)

        __repr__ = __str__


s = Student('Bob', 'male', 88)

print s


0 回复 有任何疑惑可以回复我~
#1

游离丸子 提问者

我就是这么写的,我又试了一遍,右边还是一片空白。 没有预期的有尖括号的输出。
2018-07-31 回复 有任何疑惑可以回复我~

改成()就可以了,我也是这个问题,它题目要去的是<>,但是输出要去的是()

0 回复 有任何疑惑可以回复我~
#1

蛋蛋先生

题目要求
2018-07-31 回复 有任何疑惑可以回复我~
#2

游离丸子 提问者

不,不符合答案也就罢了,我运行之后右边都没有输出结果啊,输出那里空白一片
2018-07-31 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255665    人
  • 解答问题       2949    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

把参考代码中的'(Student:%s,%s,%s)'改成'<Student:%s,%s,%s>'为何没有输出结果?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信