![](/img/trans.png)
[英]TypeError: __init__() takes from 1 to 2 positional arguments but 3 were given. Trying to build a GUI for my BMI calculator
[英]TypeError : update() takes from 1 to 2 positional arguments but 3 were given.
Counter.update()函數需要兩個參數(數據及其鍵),我提供了兩個參數,但它抱怨提供了三個參數。
from collections import Counter
InputString1 = input()
InputString2 = input()
Set1 = Counter()
Set2 = Counter()
for i in range(len(InputString1)):
arg1 = InputString1.count(InputString1[i])
Set1 = Set1.update(InputString1[i], arg1)
for i in range(len(InputString2)):
arg2 = InputString2.count(InputString2[i])
Set2 = Set2.update(InputString2[i], arg2)
Temp = Set1
Temp.subtract(Set2)
TotCount = sum(Temp.values())
Temp = Set2
Temp.subtract(Set1)
TotCount = TotCount + sum(Temp.values())
print(TotCount)
Traceback (most recent call last):
File "pallidromemake.py", line 8, in <module>
Set1 = Set1.update(InputString1[i], arg1)
TypeError: update() takes from 1 to 2 positional arguments but 3 were given
由於Counter
是一個類,因此其所有方法都采用的第一個參數是Counter
的實例。 解釋器選擇的第三個參數是Set1
,因為Set1.update(InputString1[i], arg1)
等同於Counter.update(Set1, InputString1[i], arg1)
。
因此,當您調用Set1.update
時,您實際上只應該傳遞一個參數(可迭代或映射)。 嘗試此操作,將數據及其鍵放入字典中,並將其作為一個參數傳遞。
arg1 = InputString1.count(InputString1[i])
Set1 = Set1.update({InputString1[i]: arg1})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.