鱼C论坛

 找回密码
 立即注册
查看: 2072|回复: 2

[已解决]定义了一个功能函数,返回值怎么也取不到

[复制链接]
发表于 2023-4-27 19:08:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
如下代码,运行中,if elif else之中,只有else时将wancheng变成True,但是实际中,wancheng却一直True

def minhpcure():
    global one,two,three,four,five,wancheng
    driver.execute_script('useCut(2);')
    sleep(0.5)
    a1 = driver.find_element(By.ID,'zhiLiaoSel').is_displayed()
    a2 = driver.find_element(By.ID, 'castWin').get_attribute('style')
    if a1:
        min_values = []
        for i in range(1, 6):
            try:
                in1 = driver.find_element(By.XPATH, f'/html/body/mw[2]/con/table/tbody/tr[{i}]/td[2]').get_attribute(
                    'textContent')
                in1 = in1[0:in1.rfind('/'):]
                value = eval(in1)
                min_values.append((i, value))
            except:
                pass

        if min_values:
            min_item = min(min_values, key=lambda x: x[1])
            min_index = min_item[0]
            a = driver.find_element(By.XPATH, f'/html/body/mw[2]/con/table/tbody/tr[{min_index}]').get_attribute(
                'onclick')
            driver.execute_script(f'{a}')
            bskill()
            wancheng = False
    elif a2.find('99999'):
         sleep(2.35)
         wancheng = False
    else:wancheng = True
    return wancheng


        while 判断战():
            minhpcure()
            while not minhpcure():
                minhpcure()
最佳答案
2023-4-27 19:13:37
在您的代码中,`wancheng` 变量的值会在每次调用 `minhpcure()` 函数时根据条件进行更新。根据您的描述,似乎 `wancheng` 的值一直为 `True`,这可能是因为 `a1` 和 `a2.find('99999')` 都不满足条件,所以 `else` 分支被执行了。

在给定的代码中,我发现一个可能的问题是 `a2.find('99999')`。`str.find()` 函数返回的是子字符串在原字符串中第一次出现的索引,如果没有找到子字符串,则返回 `-1`。这里,您应该检查 `a2.find('99999')` 的返回值是否不等于 `-1`。所以,您需要将其更改为 `a2.find('99999') != -1`。

修改后的代码:
def minhpcure():
    global one, two, three, four, five, wancheng
    driver.execute_script('useCut(2);')
    sleep(0.5)
    a1 = driver.find_element(By.ID, 'zhiLiaoSel').is_displayed()
    a2 = driver.find_element(By.ID, 'castWin').get_attribute('style')
    if a1:
        # ... (省略其他代码)
        wancheng = False
    elif a2.find('99999') != -1:
        sleep(2.35)
        wancheng = False
    else:
        wancheng = True
    return wancheng


while 判断战():
    minhpcure()
    while not minhpcure():
        minhpcure()

另外,请确保其他条件能够正确地执行。如果在实际使用过程中仍然出现问题,请提供更多关于问题的上下文,以便我们更好地帮助您。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-4-27 19:13:37 | 显示全部楼层    本楼为最佳答案   
在您的代码中,`wancheng` 变量的值会在每次调用 `minhpcure()` 函数时根据条件进行更新。根据您的描述,似乎 `wancheng` 的值一直为 `True`,这可能是因为 `a1` 和 `a2.find('99999')` 都不满足条件,所以 `else` 分支被执行了。

在给定的代码中,我发现一个可能的问题是 `a2.find('99999')`。`str.find()` 函数返回的是子字符串在原字符串中第一次出现的索引,如果没有找到子字符串,则返回 `-1`。这里,您应该检查 `a2.find('99999')` 的返回值是否不等于 `-1`。所以,您需要将其更改为 `a2.find('99999') != -1`。

修改后的代码:
def minhpcure():
    global one, two, three, four, five, wancheng
    driver.execute_script('useCut(2);')
    sleep(0.5)
    a1 = driver.find_element(By.ID, 'zhiLiaoSel').is_displayed()
    a2 = driver.find_element(By.ID, 'castWin').get_attribute('style')
    if a1:
        # ... (省略其他代码)
        wancheng = False
    elif a2.find('99999') != -1:
        sleep(2.35)
        wancheng = False
    else:
        wancheng = True
    return wancheng


while 判断战():
    minhpcure()
    while not minhpcure():
        minhpcure()

另外,请确保其他条件能够正确地执行。如果在实际使用过程中仍然出现问题,请提供更多关于问题的上下文,以便我们更好地帮助您。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-4-27 19:24:01 | 显示全部楼层
isdkz 发表于 2023-4-27 19:13
在您的代码中,`wancheng` 变量的值会在每次调用 `minhpcure()` 函数时根据条件进行更新。根据您的描述,似 ...

谢谢大佬,就是您指出的这个问题导致的,现在修改好,已经测试完成了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-23 13:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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