笔记
1.python中的3种除法:传统除法、精确除法、地板除。
传统除法:如果是整数除法则执行地板除,如果是浮点数除法则执行精确除法。
>>>1/2
0
>>>1.0/2.0
0.5
精确除法:除法总是会返回真实的商,不管操作数是整形还是浮点型。执行from future import division 指令就可以做到这一点。
>>>from __future__ import division
>>>1/2
0.5
>>>1.0/2.0
0.5
地板除://除法不管操作数为何种数值类型,总是会舍去小数部分,返回数字序列中比真正的商小的最接近的数字。
>>>1//2
0
>>>1.0//2
0
>>>-1//2.0
-1
2.运算符的优先级:幂运算 > 正负号 > 算术运算符 > 比较运算符 > 逻辑运算符.
测试题
1.请用最快速度说出答案:not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9。
答: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
短路逻辑:
if a and b:#如果a是false,那么跳过b的判断,结果直接false。
if a or b:#如果a为true,那么跳过b的判断,直接true
2.请写一个程序打印出 0~100 所有的奇数。
答:
i = 0
while i < 101:
if i %2 == 1:
print(i)
i += 1
else:
i += 1
按照答案修改:
i = 0
while i <= 100:
if i % 2 != 0:
print(i, end=‘ ‘)
i += 1
else:
i += 1
3.爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。
题目:请编程求解该阶梯至少有多少阶?
答:
i = 0
while 1:
if i%2==1 and i%3==2 and i%5==4 and i%6==5 and i%7==0:
print(i)
break
else:
i += 1
按照答案修改:
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(‘在程序限定的范围内找不到答案!‘)