热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何在Python中有效运用input()与isinstance()函数进行数据输入与类型检查

本文将深入探讨在Python中如何高效利用`input()`和`isinstance()`函数进行数据输入和类型检查。许多开发者可能对这两个函数的应用还不够熟悉,因此我们将详细解析它们的功能和使用场景,并提供实用的代码示例,帮助读者更好地掌握这些重要工具。

今天就跟大家聊聊有关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 "", line 1, in  

  6. TypeError: must be str, not int 

  7. >>> num                  

  8. '10' 

  9. >>> type(num)                           # 查看num的数字类型 

  10.  

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 

看完上述内容,你们对Python中input()和isinstance()函数如何使用有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程笔记行业资讯频道,感谢大家的支持。


推荐阅读
  • Python实现斐波那契数列的方法与优化
    本文详细介绍了如何在Python中编写斐波那契数列,并探讨了不同的实现方法及其性能优化。通过递归、迭代和公式法,读者可以了解每种方法的优缺点,并选择最适合自己的实现方式。 ... [详细]
  • 本文介绍如何使用MFC和ADO技术调用SQL Server中的存储过程,以查询指定小区在特定时间段内的通话统计数据。通过用户界面选择小区ID、开始时间和结束时间,系统将计算并展示小时级的通话量、拥塞率及半速率通话比例。 ... [详细]
  • 实用正则表达式有哪些
    小编给大家分享一下实用正则表达式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下 ... [详细]
  • Linux环境下C语言实现定时向文件写入当前时间
    本文介绍如何在Linux系统中使用C语言编程,实现在每秒钟向指定文件中写入当前时间戳。通过此示例,读者可以了解基本的文件操作、时间处理以及循环控制。 ... [详细]
  • 深入解析Spring启动过程
    本文详细介绍了Spring框架的启动流程,帮助开发者理解其内部机制。通过具体示例和代码片段,解释了Bean定义、工厂类、读取器以及条件评估等关键概念,使读者能够更全面地掌握Spring的初始化过程。 ... [详细]
  • 在尝试使用C# Windows Forms客户端通过SignalR连接到ASP.NET服务器时,遇到了内部服务器错误(500)。本文将详细探讨问题的原因及解决方案。 ... [详细]
  • 深入解析动态代理模式:23种设计模式之三
    在设计模式中,动态代理模式是应用最为广泛的一种代理模式。它允许我们在运行时动态创建代理对象,并在调用方法时进行增强处理。本文将详细介绍动态代理的实现机制及其应用场景。 ... [详细]
  • Python + Pytest 接口自动化测试中 Token 关联登录的实现方法
    本文将深入探讨 Python 和 Pytest 在接口自动化测试中如何实现 Token 关联登录,内容详尽、逻辑清晰,旨在帮助读者掌握这一关键技能。 ... [详细]
  • 本文介绍了 Python 的 Pmagick 库中用于图像处理的木炭滤镜方法,探讨其功能和用法,并通过实例演示如何应用该方法。 ... [详细]
  • 本文详细介绍了 Python 中的条件语句和循环结构。主要内容包括:1. 分支语句(if...elif...else);2. 循环语句(for, while 及嵌套循环);3. 控制循环的语句(break, continue, else)。通过具体示例,帮助读者更好地理解和应用这些语句。 ... [详细]
  • 深入解析Java多线程与并发库的应用:空中网实习生面试题详解
    本文详细探讨了Java多线程与并发库的高级应用,结合空中网在挑选实习生时的面试题目,深入分析了相关技术要点和实现细节。文章通过具体的代码示例展示了如何使用Semaphore和SynchronousQueue来管理线程同步和任务调度。 ... [详细]
  • 主调|大侠_重温C++ ... [详细]
  • 本文详细介绍了如何使用 HTML 和 CSS 对文件上传按钮进行样式美化,使用户界面更加友好和美观。 ... [详细]
  • 本文详细探讨了Java中的ClassLoader类加载器的工作原理,包括其如何将class文件加载至JVM中,以及JVM启动时的动态加载策略。文章还介绍了JVM内置的三种类加载器及其工作方式,并解释了类加载器的继承关系和双亲委托机制。 ... [详细]
  • 本文探讨了如何在Java中使用JAXB解组两个具有相同名称但不同结构的对象。我们将介绍一个抽象类Bar及其具体实现,并展示如何正确地解析XML文档以获取正确的对象实例。 ... [详细]
author-avatar
Yy石小雪
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有