|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
现将不明白的问题罗列如下:
一、例子1罗列如下,问题:为什么此处的“加号:+ ”没有优先进行运算,而是按照短路逻辑从左到右?
>>> 3 and 5 + True or False ##(例子1)
二、例子2罗列如下,问题:
1、为什么阶梯首先要要赋值为7?
2、为甚么 false 要赋值为find?
3、为什么find要赋值为true?
4、steps = 7 *(i +1)代表什么意思?
5、其实整个我都没有看懂为什么可以表示阶梯计算这个问题?
steps = 7 ##(例子2)
i = 1
FIND = False
while i < 100:
if (steps % 2 == 1) and (steps % 3 == 2) and (steps % 5 == 4) and (steps % 6 == 5):
FIND = True
break
else:
steps = 7 * (i + 1)
i = i + 1
if FIND == True:
print('阶梯数是:', steps)
else:
print('在程序限定的范围内找不到答案!')
结尾:希望各位大佬耐心解答下,谢谢啦!!
本帖最后由 昨非 于 2020-11-21 00:34 编辑
第一题:
5+true(1)=6
【and :x and y 返回的结果是决定表达式结果的值。如果 x 为真,则 y 决定结果,返回 y ;如果 x 为假,x 决定了结果为假,返回 x。
由于是短路操作符,是因为and运算符必须所有的运算数都是true才会把所有的运算数都解析,并且返回最后一个变量】
3 and 6=6
【or : x or y 逻辑(or),即只要有一个是true,即停止解析运算数,返回最近为true的变量】
6 or False(0)=6
第二题:
若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。
1、初值为7,是因为7以下没有一个同时满足题目要求,从0开始没有意义
2、FIND作为标识,是判断找没找到的依据,初值为false,意思时没找到,当下面循环中找到了后,
也就是同时满足 if (steps % 2 == 1) and (steps % 3 == 2) and (steps % 5 == 4) and (steps % 6 == 5):
FIND = True
改为true,意思时找到了
3、你的目的是找同时符合这些条件的x,所以就要遵循x的规律,题目中的x一定是7的倍数,所以对应每个循环变量i,当它不满足条件时,x自动变为7 * (i + 1),也就是依次取值7,14,21,28,,,,,直到找到符合条件的值(改变find)为止。然后,根据find得值用if判断是否打印if FIND == True:
print('阶梯数是:', steps)
else:
print('在程序限定的范围内找不到答案!')
4、至于整个程序,我想我已经讲的够详细了
|
|