Я получаю эту ошибку, и я думаю, что я потратил на нее 5 часов. Пожалуйста, помогите кому-нибудь. В конечном итоге я хочу получить значения из этого. Что вызывает много ценностей? Это мои строковые значения или настройка самого словаря.Я продолжаю получать постоянный ValueError: слишком много значений для распаковки, и я не понимаю, почему
import ast
# -*- coding: utf-8 -*-
class MyMetric:
def __init__(self, name):
self.name = name
self.metric_system = {
"yotta": ("Y", str(10^24)),
"zetta": ("Z", str(10^21)),
"exa": ("E", str(10^18)),
"peta": ("P", str(10^15)),
"tera": ("T", str(10^12)),
"giga": ("G", str(10^9)),
"mega": ("M", str(10^6)),
"kilo": ("k", str(10^3)),
"hecto": ("h", str(10^2)),
"deka": ("da", str(10^1)),
"deci": ("d", str(10^-1)),
"centi": ("c", str(10^-2)),
"milli": ("m", str(10^-3)),
"micro": ("μ", str(10^-6)),
"nano": ("n", str(10^-9)),
"pico": ("p", str(10^-12)),
"femto": ("f", str(10^-15)),
"atto": ("a", str(10^-18)),
"zepto": ("z", str(10^-21)),
"yocto": ("y", str(10^-24))
}
def __str__(self):
for key,val in self.metric_system:
self.metric_name = key
self.metric_symbol = val[0]
self.metric_value = val[1]
if self.name == self.metric_name:
print ("it is there")
me = MyMetric("milli")
print(me)
'для ключа, Вэл в self.metric_system' ->' для key, val in self.metric_system.items() ' – vaultah
'^'не является оператором' power-of', это побитовый оператор 'XOR'. '2^5 = 7', потому что' 0010 XOR 0101 = 0111'. Правильный оператор - '**'. '2 ** 5 = 32' –