嵌套的陈述,我做错了什么?

时间:2016-04-18 09:20:34

标签: python

如果我为限制输入'5'而副本输入'3',我希望输出为

1 2 3 4 5
1 2 3 4 5
1 2 3 4 5

这是我的代码

limit = int(input("Limit: ")
copies = int(input("Copies: ")
count = 1

for i in range(copies):
     for j in range(limit):
          print(count, end= " ")
          count += 1
     if count == limit: count = 0
print()

但是这段代码的输出是

1 2 3 4 5
6 7 8 9 10
11 12 13 14 15

为什么我的“if count == limit:count = 0”似乎没有做任何事情?

4 个答案:

答案 0 :(得分:6)

让我们手动查看迭代:您从class_one开始。

因此,在count = 1的第一次迭代中,内部循环运行copies次。在每次内部迭代之后,limit=5递增1。因此,经过5次迭代后,count将增加一次五次。因此内循环后的值将为count

此时,您检查6是否等于count的值。因此,检查limit是否等于6,这显然不是真的。因此,变量不会重置,下一个外部迭代会运行。

由于您永远不会减少5的值,因此检查永远不会成为真,因此count会不断增加而不会被重置。

要解决此问题,只需删除检查,然后重置count,无论其值如何。由于您总是运行内循环count次,因此您将始终知道增加limit的频率,因此没有理由检查:

count

您还希望将值重置为for i in range(copies): for i in range(limit): print(count, end= " ") count += 1 count = 1 以匹配初始大小写,并使该行中的第一个值为1

答案 1 :(得分:0)

因为当您执行mysite/files/js/numeral.min.js: 200 mysite/js/94842541.js: 200 mysite/files/css/page-home.min.css?v=6: -999 mysite/files/css/ui.min.css?v=18: -999 mysite/files/js/ui.min.js?also=jquery.selectric.min.js,jquery.checkradios.min.js,index.min.js&v=53: -999 时,它只会转到range(limit)

e.g。 limit-1)将range(3,因此最后一次统计将始终为[0, 1, 2]

您可以在外部循环中重置limit + 1的替代解决方案,也可以检查是否count = 1

答案 2 :(得分:0)

如果你不需要。 只需将重置语句放在内部FolderBrowserDialog1

之后

答案 3 :(得分:0)

只需初始化外部def register(request): context = RequestContext(request) registered = False print "inside register view" if request.method == 'POST': consultant_form = ConsultantsForm(data=request.POST) if consultant_form.is_valid(): consultant = consultant_form.save(commit=False) consultant.save() registered = True else: print consultant_form.errors else: consultant_form = ConsultantsForm() return render_to_response( 'register.html', {'consultant_form': consultant_form, 'registered': registered}, context_instance=RequestContext(request)) def login_user(request): context = RequestContext(request) if request.method == 'POST': username = request.POST['username'] password = request.POST['password'] print type(username) try: user = Consultants.objects.get(Q(username= username) & Q(password= password)) user = authenticate(username=username, password=password) if user.is_active: user.backend = 'django.contrib.auth.backends.ModelBackend' login(request, user) a= request.user.username return HttpResponse("welcome......you are succesfuly log in") else: return HttpResponse("Your account is disabled.") except ObjectDoesNotExist: return HttpResponse("INvalid User") 循环中的count变量,然后您就不必重置它:

for

但你可以更有效地做到这一点:

limit = int(input("Limit: ")
copies = int(input("Copies: ")

for i in range(copies):
    count = 1
    for j in range(limit):
        print(count, end= " ")
        count += 1
print()