我是编码的新手,而python是我的第一语言。我陷入了自己的锻炼代码中。
代码段:
a = []
b = []
while len(a) < 11:
a.append(int(input("enter a number:")))
if len(a) == 10:
break
print ('Original keyed in numbers are:',a)
for element in a:
if a[element] > 5:
continue
b.append(a[element])
print('These are numbers you entered that are less than or equal to 5:',b)
在执行上述代码片段时,我遇到了IndexError:列表索引超出范围错误。
我的代码中有错误的示例结果是:
答案 0 :(得分:0)
循环for element in a
遍历列表a
的值,而不遍历它们的索引。在每次迭代中,element
是下一个列表项的值。正确的循环如下所示:
for element in a:
if element > 5:
continue
b.append(element)
一种更好的方法是使用列表理解:
b = [element for element in a if element <= 5]
答案 1 :(得分:0)
Python for
循环是每个循环的一个,因此您直接迭代列表中的值,并且当该值小于或等于5时,您需要添加到另一个列表b
很少更正:
if len(a) == 10:
break
不需要在代码中进行上述检查,因为只要条件为while
,并且True
超过10,控制移出,就保证len(a)
循环有效自动循环。
此外,如果您撤销了continue
条件检查,则不需要if
。
最后,这就是您想要的:
a = []
b = []
while len(a) < 11:
a.append(int(input("enter a number:")))
print ('Original keyed in numbers are:',a)
for element in a:
if element <= 5:
b.append(element)
print('These are numbers you entered that are less than or equal to 5:',b)
答案 2 :(得分:0)
如果您愿意使用其索引访问列表元素,则应尝试这样。
<script id="handlebars-gallery" type="text/x-handlebars-template">
{{#each img}}
<div class="small-12 medium-4 large-2 cell">
<div class="grid-x grid-padding-x">
<div class="cell item">
<a href="">
<div class="img_back blog_one" style="background-
image:url('{{this}}')">
<div class="title">
</div>
</div>
</a>
</div>
</div>
</div>
{{/each}}
</script>
<script type="text/javascript">
$('.owl-carousel').owlCarousel({
loop: true,
margin: 10,
nav: true,
responsive: {
0: {
items: 1
},
600: {
items: 3
},
1000: {
items: 5
}
}
});
//get data from json and generate it by handlebars
var template = $("#handlebars-gallery").html();
var templateScript = Handlebars.compile(template);
$.ajax({
type: "GET",
url: '../../content/Gallery-img/Gallery-img.json',
success: function (data) {
//debugger;
console.log(data);
//console.log(data.length);
var context = data;
var html = templateScript(context);
$(html).prependTo(".blog_items");
//$('.blog_items').append(html);
debugger;
},
error: function (er) {
debugger;
}
});
</script>