吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 499|回复: 4
收起左侧

[求助] py 一个看似简单却复杂的逻辑判断问题,分割区间

[复制链接]
一个学渣 发表于 2024-10-22 00:44
本帖最后由 一个学渣 于 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 编辑

[Python] 纯文本查看 复制代码
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
[mw_shl_code=python,true]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,然后用循环遍历就行。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-11 16:10

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表