yummyuyo 发表于 2020-4-4 01:23:02

reverse()

(1)
>>> list1=
>>> list1.reverse()
想问一下为什么这个回车键按了以后不会有结果显示出来

(2)十进制转二进制
>>> def er(dec):
        temp=[]
        result=''
        while dec:
                quo=dec%2
                dec=dec//2
                temp.append(quo)
        while temp:
                result+=str(temp.pop())
        return result
        print(er(34))
小甲鱼是上面这样的,我想着把
while temp:
                result+=str(temp.pop())
换成   result=temp.reverse()
为什么显示:SyntaxError: unexpected indent



sunrise085 发表于 2020-4-4 02:27:21

本帖最后由 sunrise085 于 2020-4-4 02:28 编辑

你可能把list.reverse()和reversed()弄混了
前者是list的一个方法,是将原列表进行翻转,直接修改的原列表,无返回值
后者是python的一个BIF,是将一个可迭代对象进行翻转,反回一个可迭代序列需要用list将之转为list,或者用tuple将至转为元组
小甲鱼是将列表中的各个元素pop出来转为字符串,并拼接在一起的。
你是想直接翻转列表,还将至进行字符串拼接吗?
翻转列表:list(reversed(temp))
这样就将列表temp翻转过来了,可以将之直接赋值给一个变量
若想达到小甲鱼的样子
则需要这样写
temp=
result="".join(temp)list(reversed(temp)

heidern0612 发表于 2020-4-4 07:25:07

(1)、你reverse之后再打印一遍List1就有了,reverse()只是个内置方法。

(2)、SyntaxError: unexpected indent

凡是显示上面这个错误的,都是你缩进错了,或者是空格和tab混用了,检查下你空格或缩进的位置。

zltzlt 发表于 2020-4-4 12:47:40

1. reverse() 没有返回值,它是在原列表上操作,所以需要再打印原来的列表:

    >>> list1 =
>>> list1.reverse()
>>> list1


2. 缩进错了,你检查一下哪里缩进有错

yummyuyo 发表于 2020-4-4 17:33:06

sunrise085 发表于 2020-4-4 02:27
你可能把list.reverse()和reversed()弄混了
前者是list的一个方法,是将原列表进行翻转,直接修改的原列表 ...

谢谢,确实是混淆了
然后您打的那个代码,报错list是   invalid syntax。
后面的list(reversed(temp))是什么作用,不加这个好像也可以?
def er(dec):
        temp=[]
        result=''
        while dec:
                quo=dec%2
                dec=dec//2
                temp.append(quo)
        temp=
        result="".join(temp)list(reversed(temp)
        return result
                               
SyntaxError: invalid syntax

sunrise085 发表于 2020-4-4 18:01:48

yummyuyo 发表于 2020-4-4 17:33
谢谢,确实是混淆了
然后您打的那个代码,报错list是   invalid syntax。
后面的list(reversed(temp) ...

哦,那个是复制粘贴的时候,贴错了,本来是贴第一行的,贴到了下一行,最后忘记删除了。
页: [1]
查看完整版本: reverse()