Python编程基础与自动化测试
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

4.3 我会做加法

学习目标

学习算术运算符、赋值运算符和数字操作。

知识准备

运算符与表达式

Python大多数语句都包含了表达式(Expressions)。一个表达式的简单例子便是“5+7”。表达式可以拆分成运算符(Operators)与操作数(Operands)。其中5 和7 被称为操作数,中间的加号称为运算符。

为了完成本节的“挑战问题”,需要学习算术运算符和赋值运算符。

算术运算符包括:加(+)、减(-)、乘(*)、除(/)、模(%)、幂(**)6种运算符,在Python里面还增加了整除运算符(//)。我们来执行下面这段代码:

这里需要重点理解Python中的整除运算符,我们举个例子,执行下面这段代码。

我们可以看到,Python中的除法是一种浮点运算,采用向下取整除法。

赋值运算符,就是在以上七个运算符的基础上,增加了直接赋值的运算符,共有八个:+=、-=、*=、/=、%=、**=、//=、=。尝试执行以下代码。

字符串类型和整型转换

我们先来执行以下代码。

我们期望这段代码的输出结果应该是2,然而计算机得出的答案却是11。这是为什么呢?是不是很困惑?

细心的你或许发现了其中的端倪,这里a和b两个变量都被赋值了字符串。程序执行字符串相加操作,会将两个字符串拼接起来,而不是逻辑运算。

怎么解决这种问题呢?Python为我们提供了用于类型转换的int()方法。

int()方法可以将浮点类型、字符串类型等转换成int型。让我们一起改造这段代码。

这下“1+1”真的等于2了。

说完了字符串类型转整型,我们再来介绍其他类型转字符串的方法。

str()方法可以将整型、浮点类型、列表类型等转换成字符串类型。

挑战问题

编写一个Python程序computer.py,实现以下功能。程序首先打印“请输入第一个数字:”,待用户输入第一个数字并按回车键后,打印“请输入第二个数字:”,待用户输入第二个数字并按回车键后,打印输出“两个数之和为:[两个数字之和]”。

运行结果如图4.14所示。图中“123”和“321”为输入内容。

图4.14

注意:请在10分钟内闭卷完成本“挑战问题”。如果第一次不能闭卷完成或者完成时间超时,请将编写的程序删除后重做一次。

难点提示

input()函数的返回值默认是字符串,不能直接用于计算。

当遇到下面的错误提示信息,请仔细分辨报错的原因:

ValueError:invalid literal for int()with base 10:'qqww'

这是因为程序中包含非数字的字符串'qqww'无法转换成整数,所以运行报错了。

这是因为程序中整型变量和字符串型变量无法相加,导致出现类型错误,所以运行报错了。

这是因为程序中传入的参数未被格式化,所以运行报错了。

在进行字符串格式化的时候,可能出现部分传入的参数没有被格式化。如果是打印的时候出现,一般是print()方法中的占位符的个数与输入的参数不匹配。

上面代码的print()函数中,第一个参数只有一个占位符(%s),而后面的参数却试图传递包含两个元素的元组,所以出现了TypeError的错误。

知识点

语言基础知识要点

(1)Python有7个算术运算符,要记住它们。

(2)这7个算术运算符和等号结合,就组成了七个赋值运算符;加上等号本身,组成八个赋值运算符,要记住它们。

(3)Python支持四种不同的数值类型:整型(int)、浮点数类型(float)、长整型(long)、复数类型(complex),其中前两种是必须熟练掌握的。

(4)input()函数得到的返回值默认是字符串。

(5)字符串类型与数字类型的转换方法:int()函数是将括号里的参数转换成整型,str()函数是将括号里的参数转换成字符串。

拓展

在上面的“挑战问题”完成后,请尝试在输入第一个数字的时候,输入“abc”,看看会发生什么?