先贴代码:
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
好好的一个变量为什么指向了两个变量?莫名其妙的!搞得这下我直接一个也用不了了!怎么解决?
if output[i]>ord(inputs[i]):
output=True
else:
output=False
这段代码,将output弄成了bool
你33行和35行给他付的bool值。循环第一进来是没问题的,所以打印的是<class 'list'>。第二次循环的时候,output已经被更新为bool,打印的类型为<class 'bool'>
打印的类型不太对吧
print(520)
print('Hello,World')
print("Hello,world")
print(3+1)
fp=open('D:/.text.txt','a+')#a+表示追加,每运行一次,文档中就多出一行hello,world
print('helloworld',file=fp)
fp.close()
#所指定的盘要存在
#使用file=
print('hello','world',
'python')
fp=open('D:/.text.txt','a+')#a+表示追加,每运行一次,文档中就多出一行hello,world
print('helloworld',file=fp)
fp.close()
上述代码结果是在指定目录下的文件里打印了helloworld。