零基础入门学习Python 006Python之常用操作符

知识点总结

  • 算术操作符 + - * / % ** //
    • 技巧1 a += 3
    • 技巧2 a = b = c = d = 10
    • 地板取整 10 // 8
    • 真正的除法 10 / 8
    • 取余(去余数) 11 % 2
    • 幂运算操作符 3**2,优先级的问题
    • 优先级问题,先乘除再加减,遇到括号先算括号的 -3 * 2 + 5 / -2 -4
    • 幂运算操作符比其左侧的一元操作符优先级高-3 * 2 ==-(3 * 2) = -9,比其右侧的一元操作符优先级低3 * -2 == 3 * (-2) = 0.1111111111111111。
  • 比较操作符> >= < <= == !=
  • 逻辑操作符 or and not,返回True/false
    • or 一真则真
    • and 同真则真
    • not 取反
    • 3 and 4 == 4,而 3 or 4 == 3
  • 优先级问题
    1. 幂运算**
    2. 正负号+x -x
    3. 算术操作符+ - * / % ** //
    4. 比较操作符> >= < <= == !=
    5. 逻辑操作符 not and or

课后习题

测试题

题1: Python 的 floor 除法现在使用 “//” 实现,那 3.0 // 2.0 您目测会显示什么内容呢?

如果回答是 1.5 那么很遗憾,您受到 C 语言的影响比较大,Python 这里会义无反顾地执行 floor 除法原则,答案是:1.0

题2: a < b < c 事实上是等于?

(a < b) and (b < c),在Python当中,可以这样使用它

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

0.04,也就是 1/25

幂运算操作符比其左侧的一元操作符优先级高,比其右侧的一元操作符优先级低。

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

使用求余可以简单得到答案:能被 2 整除为偶数,所以 x % 2 == 0,否则为奇数。X % 2 != 0

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

如果你的回答是 0,那么小甲鱼很开心你中招了!
答案是:4

not or and 的优先级是不同的:not > and > or

我们按照优先级给它们加上括号:(not 1) or (0 and 1) or (3 and 4) or (5 and 6) or (7 and 8 and 9)
== 0 or 0 or 4 or 6 or 9
== 4

为啥是 4?

大家还记得第四讲作业提到的“短路逻辑”吗?3 and 4 == 4,而 3 or 4 == 3。
所以答案是:4

温馨提示:为了更好的表达你的程序,小甲鱼再次呼吁有些括号还是不能省下的,毕竟不是所有程序员都跟你一样都将优先级烂透于心的。

题6: 还记得我们上节课那个求闰年的作业吗?如果还没有学到“求余”操作,还记得用什么方法可以“委曲求全”代替“%”的功能呢?

因为上节课我们还没有教大家“求余”的操作,所以小甲鱼使用了“if year/400 == int(year/400)”这样的方式来“委曲求全”。int()取整

动动手

题1: 请写一个程序打印出 0~100 所有的奇数。

#方法1
i = 0
while i <= 100:
    if i % 2 != 0:
        print(i,end = ' ')
        i += 1
    else:
        i += 1
#方法2
i = 0
while i < 101:
    if i % 2 != 0:
        print(i,end=" ")
    i+=1

题2:我们说过现在的 Python 可以计算很大很大的数据,但是……真正的大数据计算可是要靠刚刚的硬件滴,不妨写一个小代码,让你的计算机为之崩溃?

print(2 ** 2 ** 32)

一般很多机子都会在一会儿之后:Memory Overflow,内存不够用。
涉及到幂操作,结果都是惊人滴。

题3:请编程求解该阶梯至少有多少阶?

爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。
(小甲鱼温馨提示:步子太大真的容易扯着蛋~~~)

x = 7
i = 1
flag = 0

while i <= 100:
    if(x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6 == 5):
        flag = 1
    else:
        x = 7 *(i+1)#根据题意,x一定是7的整数倍,所以每次乘以7
    i += 1

if flag == 1:
    print("阶梯数是:",x)
else:
    print("在程序限定的范围内找不到答案!")

猜你喜欢

转载自blog.csdn.net/xyyojl/article/details/81087097