Python中常用的內建函式input()、isinstance()

ii_chengzi發表於2020-05-19

Python直譯器內建了許多函式,這意味著我們無需定義,始終可以它們。接下來和大家一起討論一個常用的內建函式-input()和isinstance()。

input()

input()函式讀取使用者輸入,並轉換成字串:

  1. >>> a = input()   # 將input()返回的值賦值給a  
  2. Python 
  3. >>> a             # 檢視a的值(為字串'Python')  
  4. 'Python'  

input()函式可以提供一個引數,用來提示使用者:

  1. >>> b = input( '請輸入你最喜歡的水果:  ' )    # 給使用者必要的提示  
  2. 請輸入你最喜歡的水果:  香蕉 
  3. >>> b 
  4. '香蕉'  

需要注意的是,input()函式返回的值總是字串,當使用者輸入的是數字也是這樣,所以當使用它時一定要注意:

  1. >>> num = input( '請輸入一個數字: '
  2. 請輸入一個數字:  10  
  3. >>> num +  9                              # 試圖把num和數字相加  
  4. Traceback (most recent call last): 
  5.   File  "<stdin>" , line  1 in  <module> 
  6. TypeError: must be str,  not  int 
  7. >>> num                  
  8. '10'  
  9. >>> type(num)                            # 檢視num的數字型別  
  10. < class   'str'

isinstance()

isinstance()函式用於檢查物件是否為指定類(或者說資料型別)的例項。isintance()的第一個引數為一個物件,第二個引數為要檢查的資料型別。

舉個例子,比如有有一個變數,你想檢查它是否為數字型別,可以使用isinstance()函式:

  1. score =  90  
  2. >>> result = isinstance(score, int) 
  3. >>>  if  result: 
  4. ...      print ( 'score為int資料型別'
  5. ...  else
  6. ...      print ( 'score不為int資料型別'
  7. ... 
  8. score為int資料型別 

除了能檢查是否為int型別外,isintance()還能檢查其他資料型別(當然了),下面是一個綜合示例:

  1. >>> pi =  3.14  
  2. >>> name =  'Wang'  
  3. >>> complex_num =  1  +  2j  
  4. >>> isinstance(pi, float)               # 3.14為浮點數型別  
  5. True  
  6. >>> isinstance(name, str)               # 'Wang'為字串型別  
  7. True  
  8. >>> isinstance(complex_num, complex)    #  1 + 2j為複數  
  9. True  

isinstance()還可以驗證某個物件是否為自定義的型別:

  1. >>>  class  Developer:                              # 定義一個叫做Developer的類  
  2. ... 
  3. ...      def  __init__( self , name):                 # __init__方法中,需要輸入名字  
  4. ...          self .name = name 
  5. ...      def  display( self ):                        # 定義了display()方法  
  6. ...          print ( "Developer:" self .name,  "-"
  7. ... 
  8. >>>  class  PythonDeveloper(Developer):             # PythonDeveloper類,繼承了Developer類  
  9. ... 
  10. ...      def  __init__( self , name, language):       
  11. ...          self .name = name 
  12. ...          self .language = language 
  13. ... 
  14. ...      def  display( self ):                         # 覆蓋了父類的display方法  
  15. ...          print ( "Python Developer:" self .name,  "language:" self .language,  "-"
  16. ... 
  17. >>> dev = Developer( 'Zhang' )                      # 建立一個Developer物件  
  18. >>> dev.display()                                 # 呼叫display()方法,以檢視該物件  
  19. Developer: Zhang - 
  20. >>> isinstance(dev, Developer)                    # 判斷dev是否為Developer類,答案是肯定的  
  21. True  
  22. >>> isinstance(dev, PythonDeveloper)              # 判斷dev是否為PythonDeveloper類,當然不是  
  23. False  
  24. >>> python_dev = PythonDeveloper( 'Liu' 'Python' )   # 建立一個PythonDeveloper物件,注意PythonDeveloper是Developer的子類  
  25. >>> python_dev.display()                           # 呼叫display方法  
  26. Python Developer: Liu language: Python - 
  27. >>> isinstance(python_dev, Developer)              # 判斷python_dev是否為Developer類,答案是肯定的  
  28. True  
  29. >>> isinstance(python_dev, PythonDeveloper)       # 判斷python是否為PythonDeveloper類,答案也是肯定的  
  30. True  

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31543790/viewspace-2692929/,如需轉載,請註明出處,否則將追究法律責任。

相關文章