我无法更新数组中的变量

2024-06-16 13:25:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我想更新数组中的变量。比如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

Tags: inforifrange数组elsecontrolprint
3条回答

您需要将分子或分母设置为数据类型float。你知道吗

所以不是:

katsayilar[a] = katsayilar[a] + 1/67

应该是:

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

或者

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

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

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)

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

相关问题 更多 >