Python 我无法更新数组中的变量

Python 我无法更新数组中的变量,python,arrays,python-3.x,Python,Arrays,Python 3.x,我想更新数组中的变量。像katsayi_adam等,但我无法更改变量 control = [] CezaSayac = 0 i=0 katsayi_adam = 1 katsayi_nadam = 1 katsayi_adamax = 1 katsayilar = [katsayi_adam,katsayi_nadam,katsayi_adamax] a=0 for i in range(3): if(1==1): control.append(1) C

我想更新数组中的变量。像katsayi_adam等,但我无法更改变量

control = []
CezaSayac = 0
i=0 
katsayi_adam = 1
katsayi_nadam = 1
katsayi_adamax = 1
katsayilar = [katsayi_adam,katsayi_nadam,katsayi_adamax]
a=0
for i in range(3):
    if(1==1):
        control.append(1)
        CezaSayac += 1
    else:
        control.append(0)
for a in range(3):
    if control[a] == 1:
        katsayilar[a] = katsayilar[a] + 1/67
    else:
        katsayilar[a] = katsayilar[a]- ((CezaSayac)/67)/(67-CezaSayac)
print(control)
print(katsayi_adam)
print(katsayi_nadam)
print(katsayi_adamax)
输出始终如下所示:

[1, 1, 1]

1

1

1

我不知道你想要什么,但我发现了一个错误,我已经提到了。如果您想了解有关查询的更多信息,请详细告诉我您希望从脚本中获得什么

control = []
CezaSayac = 0
i=0 
katsayi_adam = 1
katsayi_nadam = 1
katsayi_adamax = 1
katsayilar = [katsayi_adam,katsayi_nadam,katsayi_adamax]
a=0
for i in range(3):
    if(i==1):  # use i instead of one..if(i==1):
        control.append(1)
        CezaSayac += 1
    else:
        control.append(0)
for a in range(3):
    if control[a] == 1:
        katsayilar[a] = katsayilar[a] + 1/67
    else:
        katsayilar[a] = katsayilar[a]- ((CezaSayac)/67)/(67-CezaSayac)
print(control)
print(katsayi_adam)
print(katsayi_nadam)
print(katsayi_adamax)

您需要将分子或分母设置为数据类型
float

因此,不是:

katsayilar[a] = katsayilar[a] + 1/67
应该是:

katsayilar[a] = katsayilar[a] + float(1)/67


katsayilar
是一个预设元素(int)列表,这些元素通过值而不是引用传递。因此,当您更新
katsayilar
时,您只更新列表元素,而不更新创建列表时分配给它的元素,即您不更新
katsayi_adam、katsayi_nadam、katsayi_adamax

编辑-将列表分配给计算后的变量

control = []
CezaSayac = 0
i=0 
katsayi_adam = 1
katsayi_nadam = 1
katsayi_adamax = 1
katsayilar = [katsayi_adam,katsayi_nadam,katsayi_adamax]
a=0
for i in range(3):
    if(1==1):
        control.append(1)
        CezaSayac += 1
    else:
        control.append(0)

for a in range(3):
    if control[a] == 1:
        katsayilar[a] = katsayilar[a] + 1/67
    else:
        katsayilar[a] = katsayilar[a]- ((CezaSayac)/67)/(67-CezaSayac)
print(control)
print(katsayi_adam)
print(katsayi_nadam)
print(katsayi_adamax)
katsayi_adam,katsayi_nadam,katsayi_adamax = katsayilar
print(katsayi_adam)
print(katsayi_nadam)
print(katsayi_adamax)
输出-

[1, 1, 1]
1
1
1
1.0149253731343284
1.0149253731343284
1.0149253731343284

在你的第一个for循环代码中有一个输入错误。您的代码包含:

if (1==1):
表示控制值始终为[1,1,1]

所以第一个for循环没有意义


至于第二部分。您正在添加值,然后再次删除它们。我想你是故意这么做的,你总是想得到[1,1,1],这实际上是一种拼图代码!您正在添加1/67,然后作为第二个循环的一部分再次删除它。

现在,到底是哪个变量?错误究竟是什么?所需的输出是什么?
如果(1==1)
始终为真,则每次将加1。也许你还需要点什么?我这么做是因为我只想看到变量旋转3次,里面的控制数组是[1,1,1],在那一秒之后检查内部控制[a]它应该向katsayi_adam添加1/67,3次,但输出是说katsayi_adam=1我只想向控制中的变量[a]添加1/67我这样做是因为我只想看到变量旋转3次,里面的控制数组是[1,1,1],然后是第二个检查内部控制[a]它应该将1/67添加到katsayi_adam中3次,但输出是说katsayi_adam=1根据katsayi_adam=1 katsayi_nadam=1 katsayi_adamax=1的数据,katsayi_adam=1的控制列表只包含1或0?添加1/67取决于CezaSayac和CezaSayac变量包含的数字,是控制列表中的数字吗?如果控制[a]包含0那么我们不应该更新katsayi_adam中的值,对吗?如果控件[a]包含1,那么在katsayi_Adams中添加1/67 CezaSayac次,那么我该怎么做?它应该继续添加1/67我想我不想在添加后删除我怎么做第二个循环第一个循环只是一个垃圾我改变了我看,你需要问问自己,为什么你要执行第二个循环的第二部分。那部分是减法。如果你说你想继续添加1/67,那么为什么你在循环中有任何删除部分呢?谢谢你,katsayi_adam,katsayi_nadam,katsayi_adamax=katsayilar,这是成功的。
if (1==1):