鱼C论坛

 找回密码
 立即注册
查看: 3143|回复: 3

不知道哪里出了问题,看代码。

[复制链接]
发表于 2022-10-22 16:31:56 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 zjyklxk 于 2022-10-23 15:17 编辑

#这是小甲鱼22课,课后作业里提到的‘摩尔投票法’选出数量最多的两个对象
#这我自己写的,答案还没看。然后不知道哪里出了问题。
#for循环过去之后输出两个num值,其中一个会被认定为False,但是检查type和值都正常的


# 这两个列表可以把后面那个#了就可以执行前面这个
l = [3,1,5,3,3,1,6,1,1,3]
l = [1,2,3,1,2,3,1,3]

# 初始化
count1 = count2 = num1 = num2 = 0

for x in l:
    print('此轮x值:',x,'\n上轮结果:',num1,num2,'\n判定结果',end=' ') # debug
    if count1 == 0 or x == num1:
        num1 = x
        count1 += 1
        print('1位增加') # debug
    elif count2 == 0 or x == num2:
        num2 = x
        count2 += 1
        print('2位增加') # debug
    else:
        count1 -= 1
        count2 -= 1
        print('双位同减') # debug

    print('本轮结果:',num1,'c'+str(count1),num2,'c'+str(count2)) # debug
    print()


'''
前面都正常,到这里问题出现了
在最后判定的这里,num1或者num2的其中一个会被判False,但是两个都是有数据的
'''

print(num1, type(num1), bool(num1 == True)) # 检查num1的数据
print(num2, type(num2), bool(num2 == True)) # 检查num2的数据


if num1 == True and l.count(num1) > len(l)//3:
    count1 = -1
    print('1位通过') # 1位验证成功

else:
    num1 = ''
    count1 = 0
    print('1位失败') # 1位验证失败

if num2 == True and l.count(num2) > len(l)//3:
    count2 = -1
    print('2位通过') # 2位验证成功

else:
    num2 = ''
    count2 = 0
    print('2位失败') # 2位验证失败

# 输出结果
if count1 + count2 == -2:
    print(num1,'和',num2,'是数量最多的两个')
elif count1 + count2 == 0:
    print('数列里没有数量超过三分之一的')
else:
    print('数列里数量超过三分之一的只有',num1,num2)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-10-23 15:24:56 | 显示全部楼层
离谱的来了!!!
我把其他代码删了只剩这个

num1 = 1
num2 = 2
print(num1, type(num1), bool(num1 == True)) # 检查num1的数据
print(num2, type(num2), bool(num2 == True)) # 检查num2的数据

一毛一样的代码,一个输出True一个输出False
我人都傻了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-10-23 15:27:45 | 显示全部楼层
发现问题了。num1 == True表示的是num1 == 1   这个True是1
这里得用bool(num1)来判定  属实学艺不精了 告辞!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-10-24 12:06:07 | 显示全部楼层
问题已解决,此帖终结!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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