一. 课上代码
>>> 3 ** 2
9
>>> 3 ** 5
243
>>> 3 ** -2
0.1111111111111111
>>> not True
False
>>> not False
True
>>> not 0
True
>>> not 4
False
>>> 3 < 4 < 5
True
#优先级问题
幂运算(**)
正负号(+, -)
算数操作符(*, /, //, +, -)
比较操作符(<, <=, >, >=, ==, !=)
逻辑运算符(not, and, or)
二. 测试题
- 说出答案: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 8 and 9)
== 0 or 0 or 4 or 6 or 9
== 4
三. 动动手
- 请写一个程序打印出0~100所有的奇数
#个人代码
for i in range(0, 101):
if i % 2 == 1:
print(i)
#参考代码
i = 0
while i <= 100:
if i % 2 != 0:
print(i, end = ' ')
i += 1
else:
i += 1
- 写一个程序让计算机崩溃
#个人代码
while 1:
print("I love you.")
#参考代码
print(2 ** 2 ** 32)
#那为何print((2 ** 2) ** 32)就可以计算出结果呢?
- 爱因斯坦出过一道数学题,有一个长梯子,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。求解该阶梯至少有多少阶?
#个人代码
for i in range(1, 100):
k = 7 * i
if k % 2 == 1 and k % 3 == 2 and k % 5 == 4 and k % 6 == 5
print(k, end = '')
#此代码不能求出最小值,只能求得范围之内的所有值,有待改进
#参考代码
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)
i += 1
if flag == 1:
print(x)
else:
print("There is no answer in this range.")
网友评论