python中的关系运算符可以连续室友_python3绘图程序教学:关系运算符(十)

关系运算符和If判断式

程序的功能除了执行加减乘除的计算之外,有些时候还需要比较资料。例如输入学生成绩的程序,必须检查使用者输入的分数是否在0和100之间。否则如果不小心输入1000分,计算结果就不合理。另外可能还要判断成绩是否及格,以便记录不及格的学生名单。这个单元我们要介绍如何使用「关系运算符」和「If判断式」来检查资料。

关系运算符就是数学中的「大于」、「等于」…这些比较数值大小的运算符号。因为它们是用来比较资料的大小关系,所以叫做关系运算符(也有人称它们为「比较运算符」)。

Python语言有6种关系运算符,这6种关系运算符的用法,就如同数学中的用法一样,只不过使用的符号有些差异,请参考表1的说明。

表1 Python的关系运算符

运算符功能

运算符号

范例

大于

>

# value1和value2是整数、浮点数

#或是Decimal浮点数的物件

5 > 3.29

value1 > 100

value1 + value2 > 1.23e2

大于等于

>=

#请参考第一个范例的注解

5 >= 3.29

value1 >= 100

value1 >= 1.23e2 + value2

小于

<

#请参考第一个范例的注解

-5 < 3.29

value1 < 100

value1 + value2 < 1.23e2

小于等于

<=

#请参考第一个范例的注解

-5 <= 3.29

value1 <= 100

value1 <= 1.23e2 * value2

等于

==

#请参考第一个范例的注解

-5 == -5

value1 == 100

value1 == 1.23e2 * value2

不等于

!=

#请参考第一个范例的注解

-5 != 3.29

value1 != 100

value1 != 1.23e2 * value2

关系运算符是属于二元运算符,因为单项资料无法比较,必须有二项资料才能够互相比较,例如:

3 < 5

我们把这个运算式称为「关系运算式」,因为它是由关系运算符组成。关系运算式的执行结果只有「对」或「错」二种情况。「对」在程序中叫做True;「错」在程序中叫做False。True和False是布林值,我们已经在前面单元做过介绍。以上面的范例来说,它的执行结果是True。关系运算式也可以比较数值物件的大小,如以下范例:

score >= 60

ch_score < en_score

也可以比较算术运算式:

ch_score + en_score >= 180

math_score * 2 < ch_score + en_score

因为关系运算符的优先顺序比算术运算符低,所以程序会先把算术运算式计算完毕,再进行比较。Python的关系运算符还有一项特殊功能,就是可以串接起来,例如:

0 <= score <= 100

en_score < ch_score < math_score

使用关系运算符的时候,要特别注意是否需要等号。例如要判断分数是否及格,可以在下列二个关系运算式中择一使用(假设score是一个整数):

score >= 60

score > 59

这二个运算式比较的分数不一样,第一个式子是用60分来比较,因此需要等号,第二个式子是用59分来比较所以不需要等号。另外,如果score是浮点数或是Decimal浮点数,那么第二个式子就不适用,因为59和60之间的浮点数会被误判为及格。初学者在使用关系运算式的时候,很容易漏掉这些细节,要特别留意。

补充说明

Python语言的关系运算符可以串接起来,使用上很方便。如果读者以后有机会学习C、C++或是Java这些程序语言,要注意它们的关系运算符不可以串接起来,而是要用And逻辑运算符,把多个关系运算式组合起来。

通常要比较资料大小,第一个想到的一定是数值资料。但是其实Python语言的关系运算符不但可以比较数值,还可以比较字串,例如以下运算式是合法的:

'abc' > 'ABC'

问题是,它是True还是False?要回答这个问题,必须了解如何比较字串。其实很简单,只要掌握以下二个观念即可:

把一个字串想像成是一个队伍,要比较的时候,先派第一个字元出来比。如果分出大小,比较就结束了。如果二个字元一样,再派下一个字元出来比。

比较字元大小是根据字元的「字元码」。不论是大写英文字母、小写英文字母、或是!@#$...这些特殊字元,在电脑中都有一个对应的字元码。我们可以利用ord()这个内建函式取得字元的字元码。

现在回到前面的问题。要比较'abc'和'ABC'这二个字串,就是先比较'a'和'A'的字元码。执行ord('a')可以得到'a'的字元码是97,执行ord('A')可以得到'A'的字元码是65,所以'a'的字元码比较大,也就是'a'大于'A',因此这个关系运算式的结果是True。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值