一个学渣 发表于 2024-10-22 00:44

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:34

本帖最后由 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:08

本帖最后由 一个学渣 于 2024-10-22 10:23 编辑

xhtdtk 发表于 2024-10-22 01:34
def panduan(n, num):
      global frame_index
      if num == 0:

好像不太对,我希望的是判断有一种分割区间的效果,num的数量决定了分割成几个区间。
在多个区间里,pass或者+1

更新了下问题,大佬可以看看

一个学渣 发表于 2024-10-22 10:12

dqjyj 发表于 2024-10-22 10:03
如果你希望根据 num 的值动态改变条件判断,你可以使用循环或者将条件封装在一个函数中。

方法 1:使用 ...

这是从ai上弄的吧?我都问过了,说的都错

blackfrey 发表于 2024-10-22 11:23

一个学渣 发表于 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]
查看完整版本: py 一个看似简单却复杂的逻辑判断问题,分割区间