`
kanpiaoxue
  • 浏览: 1777522 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

python相等性测试的两种方法

 
阅读更多

Python有两种方法可以测试相等性:

1、 == 操作符测试值得相等性。Python运行相等测试,递归地比较所有的内嵌对象。(比较内容是否相等)

2、 is 表达式测试对象的一致性。Python测试二者是否是同一个对象。(比较内存地址是否相同)

例如:

 

 

    lst1 = [1,2,3,4,[5,6]]

    lst2 = [1,2,3,4,[5,6]]

    lst3 = lst1

    print 'lst1 == lst2\t',lst1 == lst2 #  内容相等

    print 'lst1 is lst2\t',lst1 is lst2 #  内存地址不相同 

    print 'lst3 is lst1\t',lst3 is lst1 #  内存地址相同

-------------- result start -------------------------

 

lst1 == lst2 True

lst1 is lst2 False

lst3 is lst1 True

-------------- result end -------------------------

 

 

例外:

    str1 = 'hello'

    str2 = 'hello'

    print str1 == str2

    print str1 is str2

-------------- result start -------------------------

str1 == str2 True

str1 is str2 True

-------------- result end -------------------------

这里两个截然不同的对象碰巧有着相同的值, == 应该为True,is应该为False。但是这里都是True。为什么呢?因为python内部暂时存储并重复使用“短字符串”作为一种“最佳化”的优化方式。事实上,内存里面只有一个'hello'字符串,被str1和str2共享使用。为了得到一个更一般的结果,请看下例:

 

例如:

    str3 = 'hello' * 10 #重复10个hello

    str4 = 'hello' * 10 #重复10个hello

    print 'str3 == str4\t', str3 == str4

    print 'str3 is str4\t', str3 is str4

 

-------------- result start -------------------------

 

str3 == str4 True

str3 is str4 False

 

 

-------------- result end -------------------------

 

 

分享到:
评论

相关推荐

    Python测试面试题.pdf

    在Python中,我们可以用两种方法检查一个数是否为回文数: - 方法一:将数字转换为字符串,然后比较字符串与它的反向字符串是否相等。 - 方法二:通过遍历字符串的一半长度,检查对应位置的字符是否相等,如果发现...

    python 实现selenium断言和验证的方法

    Python 的 unittest 框架提供了丰富的断言方法,可以方便地应用于 Selenium 自动化测试中。以下是一些常用的方法: - **`assertEqual(expected, actual)`**:检查两个值是否相等。 - **`assertTrue(expression)`**...

    Python单元测试简单示例

    Python作为一种广泛使用的编程语言,同样具备强大的单元测试能力,本篇文章将详细介绍Python中的单元测试及其相关知识点。 首先,单元测试的定义非常简单,它是对程序中的最小可测试单元进行检查和验证的过程。目的...

    Python 测试用例.docx

    Python提供了一种内置的方式来进行单元测试——`unittest`模块。本篇文章将基于给定的文件信息,详细介绍如何使用`unittest`模块来编写有效的测试用例。 #### 1. `unittest`模块简介 `unittest`是Python标准库中的...

    小甲鱼Python课后题.pdf

    IDLE是Python的集成开发环境(IDE),它提供了一个用户友好的界面来编写和测试Python脚本。 接着,文件涉及到了print()函数的基本用法,展示了如何在Python中打印字符串。Python语言区分大小写,并且在Python 3中,...

    python 3.5.0安装包

    - **math模块增强**:增加了更多的数学函数,如`math.isclose()`用于判断两个浮点数是否近似相等,`math.log2()`计算以2为底的对数。 - **time模块**:新增了`perf_counter()`和`process_time()`函数,提供了高...

    第十章Python列表习题及答案--中文

    7. 列表的比较:Python列表支持比较操作,用于比较两个列表是否相等。例如,list1 = [1, 2, 3],list2 = [1, 2, 3],list1 == list2 = True。 8. 列表的迭代:Python列表支持迭代操作,用于遍历列表中的每个元素。...

    测试秋招八股文集锦-Python高频考点.pdf

    在IT行业的面试中,Python语言因其简洁高效的特点,成为了许多公司测试工程师和技术团队的首选。以下是一些Python编程中常见的考点详解: 1. **Python基本数据结构**: - **List**: 有序且可变的数据结构,通过...

    Python技术如何进行单元测试.docx

    单元测试是一种软件测试方法,主要目的是验证软件中最小可测试单元(如函数、类或模块)的行为是否符合预期。这种测试方法通常由开发人员自己编写,以确保代码在集成到更大的系统之前能够正常工作。 #### 二、为...

    python内置函数.pdf

    Python是一种高级编程语言,以其简洁明了的语法和强大的功能受到广大开发者的喜爱。内置函数是Python标准库的一部分,提供了一系列高效且易于使用的操作。在"python内置函数.pdf"这份文档中,主要介绍了四个关键部分...

    Python编程入门经典

    4.2 比较两个值是否不相等 51 4.3 比较两个值的大小 51 4.4 对真值和假值取反 53 4.5 观察多个比较运算的结果 54 4.6 循环 57 4.6.1 重复执行操作 57 4.6.2 终止循环 59 4.7 处理错误 62 4.8 本章小结 64 4.9 习题 ...

    python官方3.5.2rc1版本exe安装包

    Python是一种广泛使用的高级编程语言,以其易读性、简洁的语法和强大的功能而闻名。3.5.2rc1是Python 3.5系列的一个候选发布版本,rc1代表"Release Candidate 1",意味着这是一个在正式发布之前供开发者测试和反馈的...

    Python 的30个编程技巧

    Python 提供了一种简单直观的方法来交换两个变量的值,而无需使用额外的临时变量。这通常通过并行赋值实现: ```python x, y = 10, 20 print(x, y) # 输出 (10, 20) x, y = y, x print(x, y) # 输出 (20, 10) ``` ...

    软件编程(Python一级)模拟题附答案

    A) ①表示为不等于,如果两个操作数不相等,则为False B) ②表示为小于等于,如果左边的数小于或等于右边的数,则为True C) ③ 若 a=2,b=5 则 a!=b 为 True A) ①② B) ②③(正确答案) C) ①③ D) ①②③ 知识点...

    python判断回文字符串.docx

    在处理这类问题时,程序员通常会采用两种主要方法来判断一个字符串是否为回文。 第一种方法,如文档中所述,是利用Python的切片操作。切片操作允许我们获取字符串的一部分或者创建一个新的字符串副本。对于回文检查...

    python中uniform函数-Pythonuniform()函数使用方法入门教程基础教程.pdf

    总结,`uniform()`函数是Python中生成均匀分布随机浮点数的重要工具,其使用简单且功能强大,适用于多种场景。通过导入`random`模块并调用`uniform()`,我们可以方便地在指定范围内获取随机浮点数值,为程序添加不...

    小甲鱼《零基础入门学习Python》学习笔记:知识点+课后习题答案(前25课)

    在Python中,"="用于赋值操作,而"=="用于比较两个值是否相等。例如,"a = 5"是将数值5赋给变量a,而"a == 5"则是检查变量a的值是否为5。错误地使用赋值和比较操作符可能会导致程序逻辑错误或运行时错误。

Global site tag (gtag.js) - Google Analytics