又是关于python的问题

img


答案是选A:0
想问一下为什么try的语句块执行发生异常啊🤔?不是带入2之后就变成s=0+2=2了吗?为啥直接跳到except执行这的语句块啊?🥲谢谢各位

这个代码是0的原因是,它没有加上 global,所以会产生UnboundLocalError,又因为有try,所以执行了 return 0


s = 0
def f(num):
    global s
    s += num
    return s
print(f(2))

这是2,去掉global s就是丢出错误,加上try...except就是返回0

全局变量 golbal 了解一下, 给个采纳加关注 ,下个问题不迷路

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这篇文章:概率统计Python计算:一元线性回归回归系数a=0的假设检验 也许能够解决你的问题,你可以看下
  • 除此之外, 这篇博客: Python攻防之弱口令、自定义字典生成及网站防护中的 2.自动登录 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    下面是调用selenium实现的自动登录功能,对应的HTML源代码如下图所示。
    用户名:< input id=“user_name” />
    密码:< input id=“password”>

    在这里插入图片描述
    完整代码如下所,建议读者学习下Python的Selenium自动化操作库,它广泛应用于自动化测试、爬虫中。

    # coding=utf-8    
    from selenium import webdriver    
    from selenium.webdriver.common.keys import Keys            
    import time
    
    #访问网站
    driver = webdriver.Firefox()
    url = 'http://www.xxxx.com'
    driver.get(url)
    print "start"
    
    #获取密码
    username = 'yangxiuzhang'
    f = open('pass_out.txt', 'r')
    for pwd in f:
        pwd = pwd.strip('\n')
        print pwd
    
        #定位用户名和密码
        #elem_name = driver.find_elements_by_xpath("//input[@id='user_name']")
        elem_name = driver.find_element_by_id("user_name")
        elem_pwd = driver.find_element_by_id("password")
        
        #输入用户名和密码
        elem_name.send_keys(username)
        elem_pwd.send_keys(pwd)
        
        #输入回车键登录
        elem_pwd.send_keys(Keys.RETURN)
        time.sleep(5)
        
        #获取当前网址
        cur_url = driver.current_url
        print cur_url
        if 'login_error' in cur_url:
            print 'error login, the password is ', pwd
        else:
            print 'succeed login, the password is ', pwd
            
    f.close()
    

    注意,该网站有两种形式提示我们错误信息,这里采用URL判断,如果出现“login_error”表示错误的密码,否则成功登陆。同时,作者将 pass_out.txt 输出的密码精简为6个,简单演示即可。

    在这里插入图片描述

    在这里插入图片描述

    输出结果如下图所示:

    在这里插入图片描述

    哎,同学们啊!绿色网络需要我们共同维护,建议大家了解它们背后的原理,更好地进行防护。法网恢恢疏而不漏,该账号成功被锁定,但是它背后的原理和方法是值得学习且可行的,也推荐大家自行搭建环境测试复现。如果您是网站的开发者或管理员,更应该知道弱口令的危害,更应该去做保护您客户安全,做好密码保护。

    在这里插入图片描述

  • 以下回答来自chatgpt:

    针对您提到的Python代码执行中try语句块抛出异常时的处理,可以提供以下解决方案:

    1. 首先,在代码中使用try-except语句块可以捕获程序执行中产生的异常。try块中包含可能会产生异常的代码,当代码出现异常时,程序会跳转到对应的except块中。以下是一个示例:
    try:
        s = 0 + 2
    except:
        print("发生了异常")
    

    当执行以上代码时,程序会尝试计算0+2的结果,因为此处没有异常,所以不会执行except块,输出也就是空的。如果修改为以下代码:

    try:
        s = 0 + "2"
    except:
        print("发生了异常")
    

    在这个例子中,试图将字符串"2"加到数字0上,由于不能完成加法,就会产生一个类型错误。这个时候程序会跳转到except块中,输出"发生了异常"。

    1. 其次,如果想查看具体的异常信息,可以在except块中输出异常的类型和错误信息,方便我们定位问题。示例代码如下:
    try:
        s = 0 + "2"
    except Exception as e:
        print("发生了异常:", type(e), e)
    

    这会输出类似于以下的信息:

    发生了异常 <class 'TypeError'> unsupported operand type(s) for +: 'int' and 'str'
    

    这就告诉我们,程序出现了TypeError类型的异常,错误信息就是具体的类型错误提示。

    1. 最后,需要注意在编写try-except语句块时,尽量避免将太多的代码放在try块中,以免造成代码的混乱和不必要的捕获。应该将可能会引发异常的代码尽量缩小到try块中。另外,在捕获异常时,也要尽量使用具体的异常类型,而不是简单地使用Exception来捕获所有异常,这样可以更好地定位和解决问题。

    希望这些解决方案能够帮助您解决问题。如果还有其他问题,请随时追问。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^