python笔记—06 讲:Pyhon 之常用操作符

本期内容详解:
1. 算术运算符: 加(+),减(-),乘(*),除(/),幂运算(**),地板除(//)
1) /和//的区别
在 Python 中的除运算符与其它程序语言的不太一样,/表示真正的除号,例如 1/3=0.3333333333333333,而 4/2 的值为 2.0。说明两个数相除的值是一个浮点数,而其它程序语言/却表示两个整数相除,只返回一个整数。Python 后来为了兼容这种用法,引入了//来实现。例如 3//2 的值为 1,而 3.0//2 的值为 1.0,且 3//2.0 的值也为 1.0。说明在Python中//符号两边同为整数时的值才为整数,否则则为一个浮点数(后面带’.0’)。
2)**运算符与负号(-)运算符的优先级问题
在 Python 中,„-‟在一个数字前面表示成负号,例如-3,-5.12 等。**在-的右边时,其优先级高于-,例如-2**2 相当于-(2**2)等于-4,而当其在右边时优先级低于-,如 2**-2 则相当于 2**(-2)等于 0.25.
3)允许运算符与等号一起使用,表示变量本身参加运算并重新赋值给变量,例如 x =5,x+=5 后,x 的值为 10

2.逻辑操作符: and or not
1) x and y 的值计算过程为先判断 x 的值,如果为 0 则返回 0,否则返回 y 的值, 例如 3 and 4 值为 4;0 and 4 值为 0
2) x or y 的值计算过程为先判断 x 的值,如果为 0 则返回 y 的值,否则返回 x 的值,例如 3 or 4 的值为 3;0 or 4的值为 4
3) not x 的值的计算过程为先判断 x 的值,如果为 0 则返回 True,否则返回 False 例如 not 0 的值为 True; not 0.12值为 False
4)三者的优先级 not > and >or

3.比较运算符: < <= > >= == !=
满足条件为 True 否则为 False,例如 3>4 的值为 False 3<4 的值为 True,且允许使用x<y<z表达式,等同(x<y) and (y<z)

4.赋值运算符: =
平时我们用到最多的就是赋值运算符,例如为变量赋初值等。Python 中允许 x=y=z=2,表示 x,y,z 的值均为 2

5.运算符优先级问题:
首先理解一个概念,几元运算符指的是运算符的操作数有几个;一般而言优先级上一元运算符高于二元运算符,算数

运算符优先级>比较运算符>逻辑运算符。

典型课后题
Python 的 floor 除法现在使用 ‚//‛ 实现,那 3.0 // 2.0 您目测会显示什么内容呢?

1.0

a < b < c 事实上是等于?

(a<b) and (b<c)

不使用 IDLE,你可以轻松说出 5 ** -2 的值吗?

0.04,也就是 1/25
幂运算操作符比其左侧的一元操作符优先级高,比其右侧的一元操作符优先级低。

如何简单判断一个数是奇数还是偶数?

这个数除以 2 是否等于 0,等于 0 为偶数、不等于 0 为奇数

请用最快速度说出答案:not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9

not or and 的优先级是不同的:not > and > or
我们按照优先级给它们加上括号:

(not 1) or (0 and 1) or (3 and 4) or (5 and 6) or (7 and 8and 9)
== 0 or 0 or 4 or 6 or 9
== 4
为啥是 4?
大家还记得第四讲作业提到的“短路逻辑”吗?3 and 4 == 4,而 3 or 4 == 3。
所以答案是:4

请写一个程序打印出 0~100 所有的奇数。
i = 0

while i <= 100:

  if i % 2 != 0:

    print(i, end=' ')

      i += 1

  else:

    i += 1

爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,若每步上 2 阶,最后剩 1 阶;若每步上 3 阶,最后剩 2 阶;若每步上 5 阶,最后剩 4 阶;若每步上 6 阶,最后剩 5 阶;只有每步上 7 阶,最后刚好一阶也不剩。 
题目:请编程求解该阶梯至少有多少阶?

猜你喜欢

转载自www.cnblogs.com/envy22/p/10314812.html
今日推荐