登录
首页 >  文章 >  python教程

Python 函数异常处理:如何解决自定义函数执行正常但调用后只输出一条消息的问题?

时间:2024-11-02 08:03:59 396浏览 收藏

学习文章要努力,但是不要急!今天的这篇文章《Python 函数异常处理:如何解决自定义函数执行正常但调用后只输出一条消息的问题?》将会介绍到等等知识点,如果你想深入学习文章,可以关注我!我会持续更新相关文章的,希望对大家都能有所帮助!

Python 函数异常处理:如何解决自定义函数执行正常但调用后只输出一条消息的问题?

python 自定义函数处理异常

在python 中定义函数时,除了返回预期结果外,有时还会遇见函数内部执行正常,而调用函数时却只输出一条讯息的情况。究其原因,通常是函数没有正确处理异常导致的。

以下是原始程式码:

def start_url(url):
    nianducontent = requests.get(url).text #獲取網頁源碼
    nian = re.findall('<option value=".*?".*?>(.*?)</option>', nianducontent, re.s) #獲取年份
    for n in nian:
        if '"季度"' not in n and '-' not in n: #過濾年份中包含'季度'和'-'的
            jidu = range(1, 5) #1~4 四個季度
            for j in jidu:
                # for urls in url:
                urls = url + str(n) + '&season=' + str(j) #拼接url
                print(urls)
    return urls

url = 'http://quotes.****.***.com/trade/lsjysj_******.html?year='
s = start_url(url)
print(s)

函数内部遍历年份程式码通常会输出一系列网址,但调用函数时却仅输出:

http://quotes.****.***.com/trade/lsjysj_******.html?year=1999&season=1

调整程式码如下修正该问题:

def start_url(url):
    try:
        nianduContent = requests.get(url).text #獲取網頁源碼
        nian = re.findall('<option value=".*?".*?>(.*?)</option>', nianduContent, re.S) #獲取年份

        urls = list()
        for n in nian:
            if '"季度"' not in n and '-' not in n: #過濾年份中包含'季度'和'-'的
                jidu = range(1, 5) #1~4 四個季度
                for j in jidu:
                    # for urls in url:
                    tempurl = url + str(n) + '&season=' + str(j) #拼接url
                    urls.append(tempurl)
        return urls
    except Exception as e:
        print("發生異常:", e)

url = 'http://quotes.*****.***.com/trade/lsjysj_******.html?year='
s = start_url(url)
print(s)

通过新增异常处理机制,当函数执行过程中出现异常时,会被捕获并输出,从而方便调试问题。

本篇关于《Python 函数异常处理:如何解决自定义函数执行正常但调用后只输出一条消息的问题?》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于文章的相关知识,请关注golang学习网公众号!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>