匆匆又夏天 发表于 2020-9-1 22:16:50

关于打印列表的问题

num=int(input("请输入一个数字:"))
two=[]
while num:
    a=num%2
    two.append(a)
    num=num//2

b=two.reverse()

print(two)
print(b)

打印结果:
请输入一个数字:8

None


请问这里的b为什么打印不出来?

疾风怪盗 发表于 2020-9-1 22:44:00

用这个
b = list(reversed(two))

reverse()好像没有返回值,是直接作用在列表上的

sunrise085 发表于 2020-9-1 23:08:22

list的方法reverse是直接对原列表操作,没有返回值。因此你对two使用reverse,直接将two反转了,但无返回值,所以b为None

num=int(input("请输入一个数字:"))
two=[]
while num:
    a=num%2
    two.insert(0,a)#直接向列表的前面插入元素,就不用再反转了
    num=num//2

print(two)

heidern0612 发表于 2020-9-2 08:12:02

因为reverse()只是一个方法,或者说是一个功能, 他针对的操作是原列表。

你想输出打印一个功能的话,功能是不存在值的。

翻转之后你可以再看原列表,原列表是翻转过的。

bonst 发表于 2020-9-2 13:04:41

你再写一排代码,因为list.reverse()是不返回任何值的,你需要再写一排
b=two

匆匆又夏天 发表于 2020-9-2 20:59:46

bonst 发表于 2020-9-2 13:04
你再写一排代码,因为list.reverse()是不返回任何值的,你需要再写一排
b=two

感谢
页: [1]
查看完整版本: 关于打印列表的问题