热门标签 | 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中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • Python 异步编程:深入理解 asyncio 库(上)
    本文介绍了 Python 3.4 版本引入的标准库 asyncio,该库为异步 IO 提供了强大的支持。我们将探讨为什么需要 asyncio,以及它如何简化并发编程的复杂性,并详细介绍其核心概念和使用方法。 ... [详细]
  • 本文深入探讨了 Java 中的 Serializable 接口,解释了其实现机制、用途及注意事项,帮助开发者更好地理解和使用序列化功能。 ... [详细]
  • Python自动化处理:从Word文档提取内容并生成带水印的PDF
    本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ... [详细]
  • 本文详细解析了如何使用Python语言在STM32硬件平台上实现高效的编程和快速的应用开发。通过具体的代码示例,展示了Python简洁而强大的特性。 ... [详细]
  • XNA 3.0 游戏编程:从 XML 文件加载数据
    本文介绍如何在 XNA 3.0 游戏项目中从 XML 文件加载数据。我们将探讨如何将 XML 数据序列化为二进制文件,并通过内容管道加载到游戏中。此外,还会涉及自定义类型读取器和写入器的实现。 ... [详细]
  • 本章将深入探讨移动 UI 设计的核心原则,帮助开发者构建简洁、高效且用户友好的界面。通过学习设计规则和用户体验优化技巧,您将能够创建出既美观又实用的移动应用。 ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
  • 本文介绍了在Windows环境下使用pydoc工具的方法,并详细解释了如何通过命令行和浏览器查看Python内置函数的文档。此外,还提供了关于raw_input和open函数的具体用法和功能说明。 ... [详细]
  • 根据最新发布的《互联网人才趋势报告》,尽管大量IT从业者已转向Python开发,但随着人工智能和大数据领域的迅猛发展,仍存在巨大的人才缺口。本文将详细介绍如何使用Python编写一个简单的爬虫程序,并提供完整的代码示例。 ... [详细]
  • 并发编程:深入理解设计原理与优化
    本文探讨了并发编程中的关键设计原则,特别是Java内存模型(JMM)的happens-before规则及其对多线程编程的影响。文章详细介绍了DCL双重检查锁定模式的问题及解决方案,并总结了不同处理器和内存模型之间的关系,旨在为程序员提供更深入的理解和最佳实践。 ... [详细]
  • 使用GDI的一些AIP函数我们可以轻易的绘制出简 ... [详细]
  • 深入了解 Windows 窗体中的 SplitContainer 控件
    SplitContainer 控件是 Windows 窗体中的一种复合控件,由两个可调整大小的面板和一个可移动的拆分条组成。本文将详细介绍其功能、属性以及如何通过编程方式创建复杂的用户界面。 ... [详细]
  • 实体映射最强工具类:MapStruct真香 ... [详细]
  • dotnet 通过 Elmish.WPF 使用 F# 编写 WPF 应用
    本文来安利大家一个有趣而且强大的库,通过F#和C#混合编程编写WPF应用,可以在WPF中使用到F#强大的数据处理能力在GitHub上完全开源Elmis ... [详细]
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社区 版权所有