我正在编写一个非常基本的代码,它将检查字典长度中的列表是否大于字典另一个键中的整数。
例如,如果我有:
for (let key of Object.keys(items)) {
if (items[key].owned==0) {
var el = document.createElement('div');
var domString = '<div id="' + items[key] + '"><div class="w3 h3 bg-center contain" style="background-image:url(' + items[key].img + ')"></div><span>'+ items[key].name +'</span><span>Price: '+ items[key].cost +'</span><span>'+ items[key].desc +'</span></div>';
el.innerHTML = domString;
el.addEventListener('click', function() {
items[key].owned = 1
});
document.getElementById('shop').appendChild(el);
}
}
可以,因为列表的最大值(或长度)可以为5(小于或等于)是可以的。
另一方面,这应该引发断言错误:
d = {'lst': [1,2,3,4,5] , 'compare': 5}
因为键“ lst”>“比较”中列表的长度。
这是我尝试过的:
d = {'lst': [1,2,3,4,5,6] , 'compare': 5}
我是刚开始使用“断言”的人,因此我可能会使用这个错误。如果有人可以帮我,将不胜感激!
答案 0 :(得分:1)
assert
语句将条件作为第一个“参数”。不需要if
语句。
assert len(d['lst'] <= d['compare']), "Queue is larger than max capacity"
如果条件为 false ,则会引发AssertionError
(包括可选的第二个参数)。否则,什么都不会发生。
将assert foo, bar
视为快捷方式
# assert foo, bar
if foo:
raise AssertionError(bar)