Skip to main content
 首页 » 编程设计

python之每次循环重复时如何将一个数字添加到另一个数字

2025年05月04日18shangdawei

所以在学校,我们的老师要求我们制作一个需要密码才能授予访问权限的程序。我已经做到了这一点,但是我想通过添加一个循环计数来改进它,每次它循环时都会增加循环计数,这是我到目前为止的循环计数,但是它不起作用。

import time 
b=0 
a='apple' 
 
def start(): 
    print("enter password") 
    c=input("->  ") 
    if c==a: 
        grant() 
    else: 
        delay() 
 
def grant(): 
    end 
 
def delay(): 
    b=b+1 
    time.sleep(b) 
    start() 
 
start() 

请您参考如下方法:

你的问题在这里:

def delay(): 
    b=b+1 
    time.sleep(b) 
    start() 

当您执行 b = b + 1 时,您期望文件顶部的 b 变量增加 1,对吗?

你可能还没有学过这个,但它不起作用的原因是因为一个叫做 scope 的东西。 .

要修复它,您需要将 delay 函数更改为如下所示:

def delay(): 
    global b 
    b=b+1 
    time.sleep(b) 
    start() 

通过查看您的代码,我认为您还没有学会如何使用 while 循环?

您在 delay 中重复调用 start 的解决方案实际上非常聪明。但是,如果我们使用 while 循环,我们可以重写您的程序,使其更清晰,更清楚地说明您要做什么:

import time 
 
password = 'apple' 
 
def start(): 
    counter = 0 
    user_guess = '' 
 
    while user_guess != password: 
        print("enter password") 
        user_guess = input("->  ") 
        if user_guess != password: 
            counter += + 1          # Same thing as doing `counter = counter + 1` 
            time.sleep(counter) 
 
    grant() 
 
def grant(): 
    print "Access granted!" 
 
start()