python表达式3and5_笨办法学Python - 习题3: Numbers and Math

Exercise2是注释和井号 Comments and Pound Characters 具体详情请参考习题一,这里就不在做过多的赘述。

习题 3: 数字和数学计算

学习目标:了解Python中常用的算术运算符,并了解运算符之间的先后运算顺序

在各大常用的计算机语言中都有常见的算术运算符,Python也是大同小异,下面我们来了解一下Python中常见的算术运算符:

算术运算符

以下假设变量x = 10 ,y = 20

运算符

描述

实例

+

加 - 两个对象相加

x+y = 30

-

减 - 是一个数减去另一个数

x-y = -10或y-x = 10

*

乘 - 两个数相乘或是返回一个被重复若干次的字符串

x*y = 200

/

除 - x除以y

x/y = 0,y/x = 2

%

取余 - 返回除法的余数

x%y = 10,y%x = 0

**

幂 - 返回x的y次幂

x**y = 1(20个0)

//

取整除 - 返回商的整数部分(向下取整)

91 // 2 = 4, -9 // 2 = -5

Python算术运算符的实例操作:

#! -*- coding=utf-8 -*-

x = 10

y = 20

print "x + y =", x + y

print "x - y =", x - y,",", "y - x =", y - x

print "x * y =", x * y

print "x / y =", x / y,",", "y / x =", y / x

print "x ** y =", x ** y

print "x // y =", x // y,",", "y // x =", y // x

print "9 // 2 =", 9 // 2,",", "-9 // 2=", -9 // 2

输出结果为:

C:\Python27\python.exe "D:/pythoncode/stupid_way_study/demo3 Numbers and Math/Exer3-1.py"

x + y = 30

x - y = -10 , y - x = 10

x * y = 200

x / y = 0 , y / x = 2

x ** y = 100000000000000000000

x // y = 0 , y // x = 2

9 // 2 = 4 , -9 // 2= -5

习题二中的练习代码是:

print "I will now count my checkens:"

print "Hen", 25 + 30 / 6

print "Roosters", 100 - 25 * 3 % 4

print "Now i will count the eggs:"

print 3 + 2 + 1 - 5 + 4 % 2 - 1 / 4 + 6

print "Is it true that (3 + 2 < 5 -7)?"

print 3 + 2 < 5 -7

print "What is 3 + 2?=", 3 + 2

print "What is 5 - 7?", 5-7

print "Oh, that's why it's False "

print "How about some more."

print "Is it greater? ", 5 > -2

print "Is it greater or equal? ", 5 >= -2

print "Is it less or equal? ", 5 <= 2

上述练习代码的运算结果为:

C:\Python27\python.exe "D:/pythoncode/stupid_way_study/demo3 Numbers and Math/Exercise3.py"

I will now count my checkens:

Hen 30

Roosters 97

Now i will count the eggs:

7

Is it true that (3 + 2 < 5 -7)?

False

What is 3 + 2?= 5

What is 5 - 7? -2

Oh, that's why it's False

How about some more.

Is it greater? True

Is it greater or equal? True

Is it less or equal? False

加分习题:

使用 # 在代码每一行的前一行为自己写一个注解,说明一下这一行的作用。

自己找个想要计算的东西,写一个 .py 文件把它计算出来。

有没有发现计算结果是”错”的呢?计算结果只有整数,没有小数部分。研究一下这

是为什么,搜索一下“浮点数(floating point number)”是什么东西。

使用浮点数重写一遍 ex3.py ,让它的计算结果更准确(提示: 20.0 是一个浮点数)。

我的答案:

1、使用 # 在代码每一行的前一行为自己写一个注解,说明一下这一行的作用

# 打印输出:I will now count my checkens-我将要数我有多少只鸡

print "I will now count my checkens:"

# 打印输出:计算母鸡的数量,为30只

print "Hen", 25 + 30 / 6

# 打印输出:计算公鸡的数量,为97只

print "Roosters", 100 - 25 * 3 % 4

# 打印输出:Now i will count the eggs-现在我将要去数鸡蛋

print "Now i will count the eggs:"

# 打印输出:鸡蛋的数量为7个

print 3 + 2 + 1 - 5 + 4 % 2 - 1 / 4 + 6

# 打印输出:Is it true that (3 + 2 < 5 -7)? - (3 + 2 < 5 -7)是否正确呢?

print "Is it true that (3 + 2 < 5 -7)?"

# 打印输出:False - 3 + 2的运算结果比 5 -7 的运算结果小是不正确的

print 3 + 2 < 5 -7

# 打印输出:What is 3 + 2?=5 - 3+2的计算结果是5

print "What is 3 + 2?=", 3 + 2

# 打印输出:What is 5 - 7?-2 - 5-7的运算结果是-2

print "What is 5 - 7?", 5-7

# 打印输出:Oh, that's why it's False - 为什么那是错误的呢

print "Oh, that's why it's False "

# 打印输出:How about some more. - 那大概是有多少呢?

print "How about some more."

# 打印输出:Is it greater?True/False - 进行两个数的大小比较

print "Is it greater? ", 5 > -2

print "Is it greater or equal? ", 5 >= -2

print "Is it less or equal? ", 5 <= 2

2、计算下载时间

题目:文件大小是1G,下载带宽是10M下水管,计算下载用几分钟?

1324118-20190113211445279-1594345612.png

解释说明:

(4 * 1024):4M 的准确带宽 = 4096 Kb/s。

/ 8:换算带宽 Kb/s 到 KB/s

1G = 1024000 KB

最后的运算结果是33.33333尾数3无限循环的,但是最后变成了6?(黑人问号),具体原因我们见第3题。

3、有没有发现计算结果是”错”的呢?计算结果只有整数,没有小数部分。研究一下这是为什么,搜索一下“浮点数(floating point number)”是什么东西。?

1324118-20190113211444358-62327059.png

正常情况下,5除以2结果应该是2.5才对,怎么上面在Python 2.7版本中是2呢?

注意:Python2.x 里,整数除整数,只能得出整数。如果要得到小数部分把其中一个数改成浮点数

则上面的运算为:

1324118-20190113211443473-1967328754.png

在Python的整数除法中,即使除不尽,结果仍然是整数,余数直接被扔掉

注:在Python 3.5中默认是可以显示浮点数的

1324118-20190113211442362-558838795.png

4、使用浮点数重写一遍 ex3.py ,让它的计算结果更准确(提示: 20.0 是一个浮点数)

将上面需要计算的两个数中的一个定义为浮点数类型就可以,float(x),这样计算的结果就是浮点数

总结:

习题2主要是是认识和掌握常见的Python中的算术运算符,知道整数和浮点数之间的区别,了解Python 2.7和Python 3.5中默认精度。了解整除和取余之间的区别。

扩展:

Python比较运算符

以下假设变量x = 11 ,y = 20

所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价

运算符

描述

实例

==

等于 - 比较对象是否相等

(x == y) 返回 False

!=

不等于 - 比较两个对象是否不相等

(x != y)返回True

<>

不等于 - 比较两个对象是否不相等

(x <> y) 返回 True

>

大于 - 返回x是否大于y

(x > y) 返回 False

<

小于 - 返回x是否小于y。

(x < y) 返回 True

>=

大于等于- 返回x是否大于等于y

(x >= y) 返回 False

<=

小于等于 -返回x是否小于等于y

(x <= y) 返回 True

注:<> 运算符类似于 运算符!=

Python比较运算符的实例代码演示:

x = 11

y = 20

print "x == y", "运算结果是", x == y

print "x != y", "运算结果是", x != y

print "x <> y", "运算结果是", x <> y

print "x > y", "运算结果是", x > y

print "x < y", "运算结果是", x < y

print "x >= y", "运算结果是", x >= y

print "x <= y", "运算结果是", x <= y

上述代码的运行结果为:

C:\Python27\python.exe "D:/pythoncode/stupid_way_study/demo3 Numbers and Math/Exer3-3.py"

x == y 运算结果是 False

x != y 运算结果是 True

x <> y 运算结果是 True

x > y 运算结果是 False

x < y 运算结果是 True

x >= y 运算结果是 False

x <= y 运算结果是 True

Python赋值运算符

以下假设变量x = 11 ,y = 20

运算符

描述

实例

=

简单的赋值运算符

z = x + y 将x + y的运算结果赋值为z

+=

加法赋值运算符

z += x 等效于 z = z + x

-=

减法赋值运算符

z -= x 等效于 z = z - x

*=

乘法赋值运算符

z *= x 等效于 z = z * x

/=

除法赋值运算符

z /= x 等效于 z = z / x

%=

取模赋值运算符

z %= x 等效于 z = z % x

**=

幂赋值运算符

z ** = x 等效于 z = z ** x

//=

取整除赋值运算符

z //= x 等效于 z = z // x

Python赋值运算符的实例代码演示:

x = 11

y = 20

z = 0

print "z = x + y", "运算结果为z1=", x+y

z += x

print "z += x ", "运算结果为z2=",z

z -= y

print "z -= x ", "运算结果为z3=",z

z *= x

print "z *= x ", "运算结果为z4=",z

z /= x

print "z /= x ", "运算结果为z5=",z

z %= x

print "z %= x ", "运算结果为z6=",z

z **= x

print "z **= x ", "运算结果为z7=",z

z //= x

print "z //= x ", "运算结果为z8=",z

上述代码的运行结果为:

C:\Python27\python.exe "D:/pythoncode/stupid_way_study/demo3 Numbers and Math/Exer3-2"

z = x + y 运算结果为z1= 31

z += x 运算结果为z2= 21

z -= x 运算结果为z3= 11

z *= x 运算结果为z4= 231

z /= x 运算结果为z5= 11

z %= x 运算结果为z6= 11

z **= x 运算结果为z7= 7400249944258160101211

z //= x 运算结果为z8= 352392854488483814343

Python位运算符

位运算符是将数字化为二进制来进行计算的

以下假设变量x = 60 ,y = 13 ,二进制格式如下:

x = 0011 1100

y = 0000 1101

-----------------

x & y = 0000 1100

x | y = 0011 1101

x ^ y = 0011 0001

~x = 1100 0011

运算符

描述

实例

&

按位与运算符:参与运算的两个值,如果两个对应位都为1,则该位的结果为1,否则为0

(x & y) 输出结果 12 ,二进制解释: 0000 1100

|

按位或运算符:参与运算的两个值只要对应的两个个二进位有一个为1时,结果位就为1

(x | y )输出结果 61 ,二进制解释: 0011 1101

^

按位异或运算符:当两对应的二进位相异时,结果为1

(x ^ y) 输出结果 49 ,二进制解释: 0011 0001

~

按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 。~x 类似于 -x-1

(~x ) 输出结果 -61 ,二进制解释: 1100 0011,在一个有符号二进制数的补码形式。

<<

左移动运算符:运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0

x << 2 输出结果 240 ,二进制解释: 1111 0000

>>

右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数

x >> 2 输出结果 15 ,二进制解释: 0000 1111

Python位运算符的实例代码演示:

x = 60

y = 13

print "x & y", "运算结果是", x & y

print "x | y", "运算结果是", x | y

print "x ^ y", "运算结果是", x ^ y

print " ~x ", "运算结果是", ~x

print "x << 2", "运算结果是", x << 2

print "x >> 2", "运算结果是", x >> 2

上述代码的运行结果为:

C:\Python27\python.exe "D:/pythoncode/stupid_way_study/demo3 Numbers and Math/Exer3-4.py"

x & y 运算结果是 12

x | y 运算结果是 61

x ^ y 运算结果是 49

~x 运算结果是 -61

x << 2 运算结果是 240

x >> 2 运算结果是 15

Python逻辑运算符

以下假设变量x = 10 ,y = 20

运算符

逻辑表达式

描述

实例

and

x and y

布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值

(x and y) 返回 20

or

x or y

布尔"或"- 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值

(x or y) 返回 10

not

not x

布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True

not(x and y) 返回 False

Python逻辑运算符的实例代码演示:

x = 10

y = 20

print "x and y", "运算结果是", x and y

print "x or y", "运算结果是", x or y

print "not(x and y)", "运算结果是", not(x and y)

上述代码的运行结果为:

C:\Python27\python.exe "D:/pythoncode/stupid_way_study/demo3 Numbers and Math/Exer3-5.py"

x and y 运算结果是 20

x or y 运算结果是 10

not(x and y) 运算结果是 False

Python成员运算符

运算符

描述

实例

in

如果在指定的序列中找到值返回 True,否则返回 False

x 在 y 序列中 , 如果 x 在 y 序列中返回 True

not in

如果在指定的序列中没有找到值返回 True,否则返回 False

x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True

Python运算优先级

运算符

描述

**

指数 (最高优先级)

~ + -

按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)

* / % //

乘,除,取模和取整除

+ -

加法减法

>> <<

右移,左移运算符

&

位 'AND'

^ |

位运算符

<= < > >=

比较运算符

<> == !=

等于运算符

= %= /= //= -= += *= **=

赋值运算符

in not in

成员运算符

not and or

逻辑运算符

具体实例运用还得在以后具体环境中具体分析。

参考链接:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值