根据视频自己练习 :
视频练习代码 :
a=b=c=d=10 ; print(a-1) ; print(b+3) ; print(c*10)
print(d/4) ; print(d//4)
print(a%3) ; print(a%7)
print(2**10)
print(-32) # 幂操作符 比 左 侧优先级 高
print(3-2) # 幂操作符 比 右 侧优先级 低
print(not 0) ; print(not 4) ; print(not False) # False 和 True 的首字母大写 , 小心了 !!!/print(not True)
print(3<4<5) 如果回答是 1.5 那么很遗憾,您受到 C 语言的影响比较大,Python 这里会义无反顾地执行 floor 除法原则,答案是:1.0 a < b < c 事实上是等于? 不使用 IDLE,你可以轻松说出 5 ** -2 的值吗? 如何简单判断一个数是奇数还是偶数? 请用最快速度说出答案:not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9 关于短路逻辑 “短路逻辑(short-circuit logic) :逻辑操作符有个有趣的特性:在不需要求值的时候不进行操作。这么说可能比较“高深”,举个例子,表达式 x and y,需要 x 和 y 两个变量同时为真(True)的时候,结果才为真。因此,如果当 x 变量得知是假(False)的时候,表达式就会立刻返回 False,而不用去管 y 变量的值。 动动手答案: i = 0 while i <= 100: 我们说过现在的 Python 可以计算很大很大的数据,但是…真正的大数据计算可是要靠刚刚的硬件滴,不妨写一个小代码,让你的计算机为之崩溃? 2.爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。 下面是我写的代码 : 答案是 119
temp1 = 3
temp2 = 4
temp3 = 5
print(temp1标题 006测试题答案:
(a < b) and (b < c)
0.04,也就是 1/25
幂运算操作符比其左侧的一元操作符优先级高,比其右侧的一元操作符优先级低。
使用求余可以简单得到答案:能被 2 整除为偶数,所以 x % 2 == 0,否则为奇数。
如果你的回答是 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
温馨提示:为了更好的表达你的程序,小甲鱼再次呼吁有些括号还是不能省下的,毕竟不是所有程序员都跟你一样都将优先级烂透于心的。
这种行为被称为短路逻辑(short-circuit logic)或者惰性求值(lazy evaluation),这种行为同样也应用与 or 操作符 ,实际上,Python 的做法是如果 x 为假,表达式会返回 x 的值(0),否则它就会返回 y 的值(例子参考楼上)。
我的理解 :
还有很关键的一句 : and的左侧为Ture 以及 or的左侧为 False , 都不能使用 短路逻辑 ,这句话小甲鱼没说 , 依此重新分析 :
(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 [注意 :0 or 0 or 4 这一段不适用短路逻辑 ]
== 0 or 4 or 6 or 9
== 4 or 6 or 9 [这时候 短路逻辑 开始生效]
== 4 or 9
== 4
这样就明白了 !
因为上节课我们还没有教大家“求余”的操作,所以小甲鱼使用了“if year/400 == int(year/400)”这样的方式来“委曲求全”。
0. 请写一个程序打印出 0~100 所有的奇数。
if i % 2 != 0:
print(i, end=' ')
i += 1
else:
i += 1
print(2 ** 2 ** 32)一般很多机子都会在一会儿之后:Memory Overflow,内存不够用。
设计到幂操作,结果都是惊人滴。
题目:请编程求解该阶梯至少有多少阶?
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
print('阶梯数是:', x)
print('在程序限定的范围内找不到答案!')
stepright = 0
markit = True
while not (stepright%2 ==1 and stepright%3 == 2 and stepright%5 == 4 and stepright%6 == 5 and stepright%7 == 0):
stepright = stepright+1
print("满足要求的最小步数是: ",stepright)