Python解释器内置了许多函数,这意味着我们无需定义,始终可以它们。接下来和大家一起讨论一个常用的内建函数-input()和isinstance()。
input()
input()函数读取用户输入,并转换成字符串:
- >>> a = input() # 将input()返回的值赋值给a
- Python
- >>> a # 查看a的值(为字符串'Python')
- 'Python'
input()函数可以提供一个参数,用来提示用户:
- >>> b = input( '请输入你最喜欢的水果: ' ) # 给用户必要的提示
- 请输入你最喜欢的水果: 香蕉
- >>> b
- '香蕉'
需要注意的是,input()函数返回的值总是字符串,当用户输入的是数字也是这样,所以当使用它时一定要注意:
- >>> num = input( '请输入一个数字: ' )
- 请输入一个数字: 10
- >>> num + 9 # 试图把num和数字相加
- Traceback (most recent call last):
- File "<stdin>" , line 1 , in <module>
- TypeError: must be str, not int
- >>> num
- '10'
- >>> type(num) # 查看num的数字类型
- < class 'str' >
isinstance()
isinstance()函数用于检查对象是否为指定类(或者说数据类型)的实例。isintance()的第一个参数为一个对象,第二个参数为要检查的数据类型。
举个例子,比如有有一个变量,你想检查它是否为数字类型,可以使用isinstance()函数:
- score = 90
- >>> result = isinstance(score, int)
- >>> if result:
- ... print ( 'score为int数据类型' )
- ... else :
- ... print ( 'score不为int数据类型' )
- ...
- score为int数据类型
除了能检查是否为int类型外,isintance()还能检查其他数据类型(当然了),下面是一个综合示例:
- >>> pi = 3.14
- >>> name = 'Wang'
- >>> complex_num = 1 + 2j
- >>> isinstance(pi, float) # 3.14为浮点数类型
- True
- >>> isinstance(name, str) # 'Wang'为字符串类型
- True
- >>> isinstance(complex_num, complex) # 1 + 2j为复数
- True
isinstance()还可以验证某个对象是否为自定义的类型:
- >>> class Developer: # 定义一个叫做Developer的类
- ...
- ... def __init__( self , name): # __init__方法中,需要输入名字
- ... self .name = name
- ... def display( self ): # 定义了display()方法
- ... print ( "Developer:" , self .name, "-" )
- ...
- >>> class PythonDeveloper(Developer): # PythonDeveloper类,继承了Developer类
- ...
- ... def __init__( self , name, language):
- ... self .name = name
- ... self .language = language
- ...
- ... def display( self ): # 覆盖了父类的display方法
- ... print ( "Python Developer:" , self .name, "language:" , self .language, "-" )
- ...
- >>> dev = Developer( 'Zhang' ) # 创建一个Developer对象
- >>> dev.display() # 调用display()方法,以查看该对象
- Developer: Zhang -
- >>> isinstance(dev, Developer) # 判断dev是否为Developer类,答案是肯定的
- True
- >>> isinstance(dev, PythonDeveloper) # 判断dev是否为PythonDeveloper类,当然不是
- False
- >>> python_dev = PythonDeveloper( 'Liu' , 'Python' ) # 创建一个PythonDeveloper对象,注意PythonDeveloper是Developer的子类
- >>> python_dev.display() # 调用display方法
- Python Developer: Liu language: Python -
- >>> isinstance(python_dev, Developer) # 判断python_dev是否为Developer类,答案是肯定的
- True
- >>> isinstance(python_dev, PythonDeveloper) # 判断python是否为PythonDeveloper类,答案也是肯定的
- True
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31543790/viewspace-2692929/ ,如需转载,请注明出处,否则将追究法律责任。