「已注销」 2023-07-18 13:47 采纳率: 100%
浏览 29
已结题

为什么Python一个名称指向了两个变量?

先贴代码:


def Z50(inputs:str,w:list=[[1.090,-0.2],[0.725,1],[1.5,-2]]):
    output=[]
    data=[]
    l=len(w)
    r=True
    i=len(inputs)
    while i!=0:
        i=i-1
        data.append(ord(inputs[i]))
        output.append(ord(inputs[i]))
    data.reverse()
    while l!=0:
        l=l-1
        i=len(inputs)
        if r:
            a=i
        while i!=0:
            i=i-1
            if r:
                output[a-i-1]=(data[a-i-1]+output[a-i-1])/2*w[l][0]+w[l][1]
            else:
                output[i]=(data[i]+output[i])/2*w[l][0]+w[l][1]
        output,data=data,output
    del r,i,l,data,w
    i=len(inputs)
    while i!=0:
        i=i-1
        print(output)
        print(type(output))
        output=list(output)
        if output[i]>ord(inputs[i]):
            output=True
        else:
            output=False
    l=[]
    i=len(inputs)
    n=output[i-1]
    while i!=0:
        i=i-1
        if n==output[i]:
            pass
        else:
            n=not n
            l.append(i)
    del i,n,output
    return l

我在中间加了两个print,让后在电脑上跑了一下结果:


>>> Z50("gcuewhicr")
[96.609375, 89.99374999999999, 103.04375, 92.621875, 108.11874999999999, 93.709375, 98.69375, 89.99374999999999, 100.596875]
<class 'list'>
False
<class 'bool'>
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\MIN\Desktop\Z50.py", line 30, in Z50
    output=list(output)
           ^^^^^^^^^^^^
TypeError: 'bool' object is not iterable

好好的一个变量为什么指向了两个变量?莫名其妙的!搞得这下我直接一个也用不了了!怎么解决?

  • 写回答

4条回答 默认 最新

  • threenewbee 2023-07-18 13:56
    关注
    if output[i]>ord(inputs[i]):
                output=True
            else:
                output=False
    
    

    这段代码,将output弄成了bool

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 7月26日
  • 已采纳回答 7月18日
  • 修改了问题 7月18日
  • 创建了问题 7月18日