py 一个看似简单却复杂的逻辑判断问题,分割区间
本帖最后由 一个学渣 于 2024-10-22 10:45 编辑如果条件判断要根据num的数量发生变化,代码该怎么写
如果total=1800,n=1800,下面的代码写在循环里,n从0开始遍历。
如果n=3,就把total=1800区间分为三份
***################***################***
在*的时候 pass
在#的时候 index += 1
如果n=4,就把total=1800区间分为四份
***##########***##########***##########***
total=1800
dead=(total-60*num)/num
for n in range(0, 1800):
如果 num=3,循环里的判断代码这样写
if 0<n<60:
pass
elif dead*1+60*1<n<dead*1+60*2:
pass
elif dead*2+60*2<n<dead*2+60*3:
pass
elif 60<n<total-60:
index += 1
----------------------------
如果 num=4,循环里的判断代码这样写
if 0<n<60:
pass
elif dead*1+60*1<n<dead*1+60*2:
pass
elif dead*2+60*2<n<dead*2+60*3:
pass
elif dead*3+60*3<n<dead*3+60*4:
pass
elif 60<n<total-60:
index += 1
本帖最后由 xhtdtk 于 2024-10-22 01:36 编辑
def panduan(n, num):
global frame_index
if num == 0:
return '没有找到符合判断条件的'
if dead*(num-1)+60*(num-1) < n < dead*(num-1)+60*num:
return 'pass'
elif 60 < n < total-60:
frame_index += 1
return '让frame_index+1'
return panduan(n, num-1)
dead = 10
frame_index = 0
total = 200
n = 100
num = 4
print(panduan(n, num))
print(frame_index)
#函数可以自己调用自己! 本帖最后由 一个学渣 于 2024-10-22 10:23 编辑
xhtdtk 发表于 2024-10-22 01:34
def panduan(n, num):
global frame_index
if num == 0:
好像不太对,我希望的是判断有一种分割区间的效果,num的数量决定了分割成几个区间。
在多个区间里,pass或者+1
更新了下问题,大佬可以看看 dqjyj 发表于 2024-10-22 10:03
如果你希望根据 num 的值动态改变条件判断,你可以使用循环或者将条件封装在一个函数中。
方法 1:使用 ...
这是从ai上弄的吧?我都问过了,说的都错 一个学渣 发表于 2024-10-22 10:08
好像不太对,我希望的是判断有一种分割区间的效果,num的数量决定了分割成几个区间。
在多个区间里,pas ...
根据你一楼里给的示例,我觉得二楼的答案没什么问题,运行起来就是你想要的效果,如果你不喜欢用递归,可以改成循环的方式。按我的理解,关键点在于if语句的判断条件dead*1+60*1<n<dead*1+60*2可以总结为dead* i +60* i <n<dead* i +60* (i + 1),0<= i <num,然后用循环遍历就行。
页:
[1]