《Python 3.x入门到应用实践》 —3 ​表达式与运算符

举报
华章计算机 发表于 2020/02/08 23:10:18 2020/02/08
【摘要】 本节书摘来自华章计算机《Python 3.x入门到应用实践》 一书中第3章,第3.1节,作者是赵 军 等。

   第3章

表达式与运算符

 

无论多么复杂的程序,最终目的都是帮助我们完成各种运算的工作,而其中的过程都必须依靠一个个表达式来完成。表达式就像平常所用的数学公式一样,例如:

  A=(B+C)*(A+10)/3;

上面这个数学式子就是表达式,=、+、*以及/符号就是运算符,而变量A、B、C和常数10、3都是操作数。表达式是由运算符(operator)与操作数(operand)组成的。什么是操作数、运算符?从下面这个简单的表达式(也是程序语句)来了解:

a = b + 5

上面的表达式包含3个操作数a、b与5,一个赋值运算符“=”,以及一个加法运算符“+”。Python语言除了算术运算符外,还有应用于条件判断式的比较运算符和逻辑运算符。另外,还有将运算结果赋值给某一变量的赋值运算符。

运算符如果只有一个操作数,被称为“单目运算符”,例如表达负值的“-23”。当有两个操作数时,则被称为“双目运算符”,算术运算符加、减、乘、除等就是一种“双目运算符”,例如3+7。这些多样、功能完整的运算符,有不同的运算优先级,本章将介绍这些运算符的用法。

  3.1  算术运算符

算术运算符(Arithmetic Operator)是程序设计语言中使用率最高的运算符,常用于一些四则运算,像加法运算符、减法运算符、乘法运算符、除法运算符、余数运算符、整除运算符、指数运算符等。+、-、* 和 / 运算符与我们常用的数学运算方法相同,而正负号运算符主要用于表示操作数的正/负值,通常设置常数为正数时可以省略 + 号,例如“a=5”与“a=+5”的含义是相同的。特别要提醒大家的是,因为负数也是使用“-”运算符来表示的,当负数参与减法运算时,为了避免与减法运算符混淆,最好用小括号“( )”分隔开负数。

表3-1列出了Python的各种算术运算符、范例及说明。

表3-1

image.png

“/”与“//”都是除法运算符,“/”的运算结果是浮点数,“//”则会将除法计算结果中的小数部分去掉,只取整数,“%”运算符是求余数,例如:

a = 5

b = 2

print(a / b)    #结果为浮点数2.5

print(a // b)   #结果为整数2

print(a % b)    #结果为余数1

如果运算的结果并不赋值给其他变量,那么运算结果的数据类型将以操作数中数据类型占用内存空间最大的变量为主。另外,当操作数都为整数且运算结果会产生小数时,Python会自动以小数方式输出结果,我们无须担心数据类型的转换问题。

但是,如果运算结果要赋值给某个变量,那么该变量占用的内存空间必须足够大,以避免运算结果数据过长的部分被舍去。例如运算的结果为浮点数,而被赋值给整数变量,那么运算结果的小数部分将被舍去。

算术运算符中的除法“/”运算符是常规的除法,经运算后所求的商数是浮点数,如果要将该商数以整数表示,那么可以调用int()函数。

int(15/7)   #输出2

“**”是乘幂运算,例如要计算2的4次方:

print(2 ** 4)   #结果为16

注意,算术运算符+、-、*和/的优先级为“先乘除后加减”,下面举例说明:

5+2*3

上式的运算结果是11。

在表达式中,括号的优先级高于乘除,如果上式改为 (5+2)*3的话,运算结果就会是21。如果遇到相同优先级的运算符,那么按照从左到右的顺序来运算。

下面以范例程序来看看简单的四则运算的应用。此范例程序是让用户输入摄氏(Celsius)温度,通过程序运算转换为华氏(Fahrenheit)温度。摄氏温度转换为华氏温度的公式为F=(9/5)*C+32。

  【范例程序:temperature.py】摄氏温度转换为华氏温度

01  # -*- coding: utf-8 -*-

02  """

03  把输入的摄氏(Celsius)温度转换为华氏(Fahrenheit)温度

04  提示:F = (9/5) * C + 32

05  """

06  C = float( input("请输入摄氏温度:"))

07  F = (9 / 5) * C + 32

08  print("摄氏温度 {0} 转换为华氏温度为 {1}".format(C,F))

程序的执行结果如图3-1所示。

 image.png

图3-1

程序代码解析:

      第06行:让用户输入摄氏温度,并调用float()函数将所输入的内容转换为浮点数的数据类型。

      第07行:将所输入的摄氏温度转换为华氏温度。

      第08行:按所指定的格式化字符串输出摄氏温度和华氏温度的转换情况。

附带说明一点,“+”号可以用来连接两个字符串。

a ="abc" + "def"    #结果 a = "abcdef"


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。