int和float数据类型

我们已经看到了一些Python如何进行数值计算的例子。Python实际上使用两种不同的数据类型来存储数值。int数据类型用于存储整数,而float数据类型用于存储非整型浮点数。

如果你将整数值存储在变量中,Python将自动为该数量使用int数据类型。如果你用整数值的变量做算术,这些计算的结果将是整数,除法的情况除外。由于涉及两个整数操作数的许多除法的结果不能表示为整数,因此Python默认将每个包含两个整数操作数的除法的结果转换为float数据类型。

如果任何算术运算中的一个或多个操作数是浮点数,则结果将始终是浮点数。

Python还包括两个用于整型数据的特殊操作符,整数除法操作符//和整数余数操作符%。整数除法运算符返回一个整数除以另一个整数所得到的商。

A = 17 b = 5 q = A //b # q现在的值是3

整数余数运算符产生一个整型除以另一个整型后剩下的余数。

R = a % b # R现在的值是2

将数字转换为文本和文本转换为数字

Python还具有字符串数据类型,用于存储文本。在Python程序中,有两种方法可以创建文本。你可以给一个变量赋值一个文本字面量,就像这样:

问候=“你好,世界!”

还可以使用input()命令获取一些文本,该命令提示用户输入一些文本。

name = input(‘输入你的名字:’)

input()中出现的文本是一个提示符,它告诉用户他们希望输入什么信息。当您的程序到达输入命令时,它将显示提示并等待用户键入一些输入。一旦用户按下enter键,他们的文本将存储在您为输入结果赋值的变量中。

input()命令总是返回文本作为其结果,即使在提示用户输入数字的情况下也是如此。如果要将用户输入的文本解释为数字类型,则需要使用类型转换命令。例如,如果你想将用户的输入解释为一个整数,你可以使用这个形式:

age = int(input(‘输入你的年龄:’))

如果你想将输入解释为浮点实数,你可以使用这种形式:

height = float(input(‘输入你的身高:’))

字符串数据类型支持的一个重要操作是串联,它将字符串粘合在一起形成更大的字符串。

greeting =“你好”+姓名

连接只适用于两个字符串操作数。如果您想使用其他数据类型的连接,则必须使用str()命令将该数据转换为字符串。

compliment =“你看起来很好”+年龄+年龄。

if-else语句

Python中用于对不同情况做出决策和采取行动的基本结构是if-else语句。if-else语句的基本形式如下:

if <test>: #语句执行如果<test>为真,否则:#语句执行如果<test>为假

if-else语句首先执行一个测试,其结果可以为真或假。如果测试的结果为真,则执行第一个缩进块中的语句集。否则,else之后块中的语句将被执行。在所选分支中的语句运行之后,继续执行if-else之后的下一条语句。

为if-else语句形成测试的最常见方法是使用比较操作符。下面是可用比较操作符的表格。

运营商 意义
== 等于
! = 不等于
< 小于
> 大于
< = 是小于还是等于
> = 是大于还是等于

特别要注意==比较测试。初级程序员常犯的一个错误是在测试中用=代替==。=的意思是“将左边的东西设置为右边的值”,而不是“将左边的东西与右边的东西进行比较”。

下面是使用if-else语句的两个示例。

#第一个例子x = float(input(‘为x输入一个值’))如果x < 0: absX = -x else: absX = x print(‘ x的绝对值是’+str(absX)) #第二个例子p = float(input(‘为p输入一个值’))q = float(input(‘为q输入一个值’))如果q == 0.0: print(‘错误:除以0 ’)else: print('p/q = '+str(p/q))

注意,将一个if-else语句放在另一个if-else语句中是完全合法的。这就是所谓的嵌套if-else。

age = int(input(‘输入你的年龄:’))height = int(input(‘输入你的身高:’))如果年龄> 12:如果身高> 60:print(‘欢迎乘坐。’)else: print(‘你必须至少5英尺高才能乘坐。’)else: print(‘你太年轻了,不能坐过山车。’)

复合测试

将一个if-else语句放入另一个if-else语句的一个有用的替代方法是能够形成复合测试。复合测试是由两个或多个普通测试组成的测试,通过逻辑连接器和或或连接在一起。

我们可以改写前面的例子,说你必须大于12岁,身高大于5英尺才能坐过山车。

age = int(input(‘输入您的年龄:’))height = int(input(‘输入您的身高:’))如果年龄> 12,身高> 60:print(‘欢迎乘坐。’)否则:print(‘您不符合骑行要求。’)

变体形式

Python还允许以各种不同的形式构造if-else语句。第一种变体是,您可以构造一个只有if分支而没有else分支的if语句。

x = float(input('Enter x: '))如果x < 0: absX = -x

另一个有用的变体是,当我们需要进行一系列比较,以便将某物分为两个以上可能的类别时。进行这种分类的一种方法是使用嵌套的if-else语句。

如果温度<= 0:state = ‘固体’ else:如果温度< 100:state = ‘液体’ else: state = ‘气体’ print(‘水是’+状态+‘ at ‘+str(温度)+’度’)

这种分类任务在实践中经常出现,Python有一个特殊的if-else变体,它利用了一个标有elif的‘else-if’分支。

如果温度<= 0:state = ‘固体’ elif温度< 100:state = ‘液体’ else: state = ‘气体’ print(‘水是一个’+状态+‘ at ‘+str(温度)+’度’)

示例程序制作更改

下面的程序演示了整数运算和if-else语句的使用。该程序提示用户输入一个以便士为单位的金额来兑换零钱。然后,该程序使用一种算法来计算需要数出多少25分硬币、10分硬币、5分硬币和1分硬币来换零钱。

# Get input cents = int(input('你需要给出多少美分?')) #计算季度=美分/ / 25美分= % 25美分硬币=美分/ / = % 10美分硬币= 10美分美分/ / 5便士=美分% 5 #打印结果打印(如果季度你的改变)> 1:打印(str(季度)+“季度”)elif季度= = 1:打印(1/4)如果角> 1:打印(str(角)+“角”)elif角= = 1:打印(如果硬币1角)= = 1:打印(1镍)如果便士> 1:打印(str(硬币)+“便士”。)elif便士= = 1:打印(“1分钱。”)

该程序使用以下逻辑来计算要使用的每个硬币的数量:

25美分=美分// 25美分=美分% 25个一角=美分// 10美分=美分% 10个五美分=美分// 5美分=美分%

下面是一个如何工作的例子。假设我们输入87美分。

  1. 87/ 25是3,所以发3个25分。
  2. 在分发完25分硬币后,我们还剩下87 - 3*25 = 12或87%25 = 12美分可以分发。
  3. 12//10是1,所以我们发1角。
  4. 发完一角硬币后,剩下12 - 1*10 = 2或12%10 = 2美分。
  5. 2//5是0,所以我们发了0个镍币。
  6. 2%5 = 2,我们还有2美分可以发。
  7. 最后,我们把2美分当作2便士分发。

为了确保输出正确地使用了复数和单数形式,我们使用了一组if-else语句来帮助我们决定如何打印输出。你能看出逻辑是如何处理0个硬币的情况吗?