最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中exit、return、sys.exit()等使用實(shí)例和區(qū)別

 更新時(shí)間:2015年05月28日 17:47:12   投稿:junjie  
這篇文章主要介紹了Python中exit、return、sys.exit()等使用實(shí)例和區(qū)別,本文是一個(gè)實(shí)際項(xiàng)目中的總結(jié),需要的朋友可以參考下

有這樣一道題目:  字符串標(biāo)識(shí)符.修改例 6-1 的 idcheck.py 腳本,使之可以檢測(cè)長度為一的標(biāo)識(shí)符,并且可以識(shí)別 Python 關(guān)鍵字,對(duì)后一個(gè)要求,你可以使用 keyword 模塊(特別是 keyword.kelist)來幫你.

我最初的代碼是:

復(fù)制代碼 代碼如下:

#!/usr/bin/env python

import string
import keyword
import sys

#Get all keyword for python
#keyword.kwlist
#['and', 'as', 'assert', 'break', ...]
keyWords = keyword.kwlist

#Get all character for identifier
#string.letters ==> 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
#string.digits  ==> '0123456789'
charForId = string.letters + "_"
numForId = string.digits

idInput = raw_input("Input your words,please!")

if idInput in keyWords:
    print "%s is keyword fot Python!" % idInput
else:
    lenNum = len(idInput)
    if(1 == lenNum):
        if(idInput in charForId and idInput != "_"):
            print "%s is legal identifier for Python!" % idInput
        else:
            #It's just "_"
            print "%s isn't legal identifier for Python!" % idInput

    else:
        if(idInput[0:1] in charForId):
            legalstring = charForId + numForId
            for item in idInput[1:]:
                if (item not in legalstring):
                    print "%s isn't legal identifier for Python!" % idInput
                    sys.exit(0)
            print "%s is legal identifier for Python!2" % idInput
        else:
            print "%s isn't legal identifier for Python!3" % idInput
    

代碼完畢后,我測(cè)試每一條分支,測(cè)試到分支時(shí),必須輸入_d4%等包含非法字符的標(biāo)識(shí)符才能進(jìn)行測(cè)試,我最初以為,sys.exit(0)---正常退出腳本,sys.exit(1)非正常退出腳本,但是實(shí)際情況是/9sys.exit(1),僅輸出返回碼不同):

復(fù)制代碼 代碼如下:

  if (item not in legalstring):
      print "%s isn't legal identifier for Python!" % idInput
     sys.exit(0)

Input your words,please!_d4%
_d4% isn't legal identifier for Python!

Traceback (most recent call last):
  File "E:/python/idcheck.py", line 37, in <module>
    sys.exit(0)
SystemExit: 0
>>>

由此可見,這樣做沒有達(dá)到我預(yù)期如下輸出的效果,那么,問題在哪里呢?在于sys.exit()始終會(huì)拋出一個(gè)SystemExit異常。

復(fù)制代碼 代碼如下:

Input your words,please!_d4%
_d4% isn't legal identifier for Python!

復(fù)制代碼 代碼如下:

#!/usr/bin/env python

import string
import keyword
import sys
import traceback

try:
    #Get all keyword for python
    #keyword.kwlist
    #['and', 'as', 'assert', 'break', ...]
    keyWords = keyword.kwlist

    #Get all character for identifier
    #string.letters ==> 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
    #string.digits  ==> '0123456789'
    charForId = string.letters + "_"
    numForId = string.digits

    idInput = raw_input("Input your words,please!")

    if idInput in keyWords:
        print "%s is keyword fot Python!" % idInput
    else:
        lenNum = len(idInput)
        if(1 == lenNum):
            if(idInput in charForId and idInput != "_"):
                print "%s is legal identifier for Python!" % idInput
            else:
                #It's just "_"
                print "%s isn't legal identifier for Python!" % idInput

        else:
            if(idInput[0:1] in charForId):
                legalstring = charForId + numForId
                for item in idInput[1:]:
                    if (item not in legalstring):
                        print "%s isn't legal identifier for Python!" % idInput
                        sys.exit()
                print "%s is legal identifier for Python!2" % idInput
            else:
                print "%s isn't legal identifier for Python!3" % idInput

except SystemExit:
    pass
except:
    traceback.print_exc()

上面的代碼獲取sys.exit()拋出的SystemExit異常。

return:在定義函數(shù)時(shí)從函數(shù)中返回一個(gè)函數(shù)的返回值,終止函數(shù)的執(zhí)行。

exit:下面的代碼中,如果把sys.exit()替換成exit,則exit僅僅跳出離它最近的for循環(huán), print "%s is legal identifier for Python!2" % idInput語句會(huì)被輸出,這里,exit的作用類似于break. 但實(shí)際上break和exit作用并不同

復(fù)制代碼 代碼如下:

                for item in idInput[1:]:
                    if (item not in legalstring):
                        print "%s isn't legal identifier for Python!" % idInput
                        sys.exit()
                print "%s is legal identifier for Python!2" % idInput

相關(guān)文章

  • Python將圖片批量從png格式轉(zhuǎn)換至WebP格式

    Python將圖片批量從png格式轉(zhuǎn)換至WebP格式

    最近因?yàn)楣ぷ餍枰パ芯苛讼聀ng的壓縮,發(fā)現(xiàn)轉(zhuǎn)換成webp格式可以小很多,下面給大家分享利用Python將圖片批量從png格式轉(zhuǎn)換至WebP格式的方法,下面來一起看看。
    2016-08-08
  • python 讀寫excel文件操作示例【附源碼下載】

    python 讀寫excel文件操作示例【附源碼下載】

    這篇文章主要介紹了python 讀寫excel文件操作,結(jié)合實(shí)例形式分析了Python基于xlutils導(dǎo)入xlrd,xlwt庫操作Excel相關(guān)實(shí)現(xiàn)技巧,并附帶源碼供讀者下載參考,需要的朋友可以參考下
    2019-06-06
  • Django 如何實(shí)現(xiàn)文件上傳下載

    Django 如何實(shí)現(xiàn)文件上傳下載

    這篇文章主要介紹了Django 如何實(shí)現(xiàn)文件上傳下載,幫助大家更好的理解和學(xué)習(xí)使用Django框架,感興趣的朋友可以了解下
    2021-04-04
  • Python+Django實(shí)現(xiàn)簡單HelloWord網(wǎng)頁的示例代碼

    Python+Django實(shí)現(xiàn)簡單HelloWord網(wǎng)頁的示例代碼

    本文主要介紹了Python+Django實(shí)現(xiàn)簡單HelloWord網(wǎng)頁的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • python實(shí)現(xiàn)簡單的計(jì)時(shí)器功能函數(shù)

    python實(shí)現(xiàn)簡單的計(jì)時(shí)器功能函數(shù)

    這篇文章主要介紹了python實(shí)現(xiàn)簡單的計(jì)時(shí)器功能函數(shù),涉及Python操作時(shí)間的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • Python+騰訊云服務(wù)器實(shí)現(xiàn)每日自動(dòng)健康打卡

    Python+騰訊云服務(wù)器實(shí)現(xiàn)每日自動(dòng)健康打卡

    本文主要介紹了通過Python+騰訊云服務(wù)器實(shí)現(xiàn)每日自動(dòng)健康打卡,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • 設(shè)置jupyter中DataFrame的顯示限制方式

    設(shè)置jupyter中DataFrame的顯示限制方式

    這篇文章主要介紹了設(shè)置jupyter中DataFrame的顯示限制方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來
    2020-04-04
  • python 名稱空間與作用域詳情

    python 名稱空間與作用域詳情

    這篇文章主要介紹了python 名稱空間與作用域詳情,函數(shù)內(nèi)部的函數(shù)只能在函數(shù)內(nèi)部調(diào)用,不能在函數(shù)外部調(diào)用,通過接下來的學(xué)習(xí)你將會(huì)知道為什么會(huì)出現(xiàn)這種情況。

    2021-10-10
  • 詳解Python實(shí)現(xiàn)同時(shí)支持帶調(diào)用和不調(diào)用帶裝飾器

    詳解Python實(shí)現(xiàn)同時(shí)支持帶調(diào)用和不調(diào)用帶裝飾器

    一般來說,不帶參數(shù)裝飾器,再使用時(shí)不加括號(hào),帶參數(shù)的裝飾器使用時(shí)必須加括號(hào),這篇文章主要介紹了Python實(shí)現(xiàn)同時(shí)支持帶調(diào)用和不調(diào)用帶裝飾器的相關(guān)知識(shí),需要的朋友可以參考下
    2023-06-06
  • Python logging日志庫空間不足問題解決

    Python logging日志庫空間不足問題解決

    這篇文章主要介紹了Python logging日志庫空間不足問題解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09

最新評(píng)論

太湖县| 澄江县| 炉霍县| 杭锦旗| 姜堰市| 义马市| 德阳市| 化州市| 凤凰县| 政和县| 阜新市| 古交市| 边坝县| 电白县| 黑龙江省| 武陟县| 颍上县| 长治市| 龙陵县| 林州市| 沽源县| 思南县| 塔河县| 宽城| 温宿县| 扶沟县| 云林县| 文登市| 徐汇区| 江口县| 丹东市| 华坪县| 卢龙县| 临清市| 涿州市| 洛扎县| 肃宁县| 苍南县| 石屏县| 武邑县| 珲春市|