第006讲:Python之常用操作符 | 课后测试题及答案

测试题答案:
0.Python 的 floor 除法现在使用“//”实现,那3.0//2.0您目测会显示什么内容?
1.0
/(真除法)和//(地板除法)
python3.0
/总是执行真除法,不管操作数的类型,都返回浮点数结果(即使能整除,如4/22.0);
//执行Floor除法,会截断余数直接返回一个整数,如果有任何一个操作数是浮点数则返回浮点数
(如4//22,3//21, 4.0//22.0)
总之:在python3.0中,/为真除法,不会截断,且结果无论能否整除都是浮点数;//为地板除法,会对除法的结果进行取整返回,至于返回的结果是否是浮点数取决于操作数中有无浮点数,如两个操作数都是整数那么就直接返回一个取整后的整数,如果操作数中有浮点数则返回结果是浮点数。
注意
在3.0中,/的结果总是返回浮点数与操作数类型无关,而//的结果总是依赖于操作数的类型,如果有一个是浮点数结果就是浮点数
1.a<b<c 事实上等于?
a<b and b<c
2.不使用IDLE,你可以轻松说出5**-2的值么?
1/25
3.如何简单判断一个数是奇数还是偶数?
模2取余,等于0为偶数,等于1为奇数
4.请用最快速度说出答案:not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9
4
逻辑运算符的优先次序:not>and>or
动手答案:
1.打印1-100偶数、奇数:
num = 100
while num:
if num % 2 == 0:
print("偶数为:%s" % num,end='\n')
num -= 1##不要遗漏
else:
print('奇数为:%s' % num,end='\n ')
num -= 1
附加:
print("输出0~100所有的奇数")
for i in range(100):
if i%2 == 1:
print(i)
2.爱因斯坦蹭出过这样一道有趣的数学题:有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。算出阶梯数:
i = 1
x = 7
flag = 0
while i < 100:
i = i + 1
if (x%2==1)and(x%3==2)and(x%5==4)and(x%6==5):
flag = 1
else:
x = 7*i
if flag ==1:
print("阶梯数是:",x)
else:
print("请扩大范围!")
附上小甲鱼代码:
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('在程序限定的范围内找不到答案!')
有问题的代码(待完善):
n = 1 ##num=7*n
num = 7
flag = 0
while n < 100:
n = n + 1
x = (7 * n - 1) / 2
y = (7 * n - 2) / 3
z = (7 * n - 4)/ 5
m = (7 * n - 5) / 6
num = 7 * n
#X、y、z、m小数位为0,则继续执行
#if isinstance(x,int) and isinstance(x,int)
if (2 * x + 1 == num) and (3 * y + 2==num) and (5 * z + 4==num)and (6 * m + 5 == num):
flag = 1
else:
num = 7 * n
if flag == 1:
##print("阶梯数是:", num, "x,y,z,m,n分别是:", 2 * x + 1 , 3 * y + 2, 5 * z + 4, 6 * m + 5, n,type(n))
print("阶梯数是:", num, "x,y,z,m,n分别是:", x , y , z , m , n, type(n))
else:
print("请扩大范围!")
输出结果:
阶梯数是: 700 x,y,z,m,n分别是: 699 698 699 695 100
本文深入解析Python中的各类操作符,包括真除法与地板除法的区别,并通过实例演示了如何利用这些操作符解决实际问题,如判断奇偶数、求解复杂数学题目等。
641

被折叠的 条评论
为什么被折叠?



