为了账号安全,请及时绑定邮箱和手机立即绑定

If循环无法根据变量类型做出正确的判断

If循环无法根据变量类型做出正确的判断

米脂 2021-04-14 18:14:05
在下面的代码中,if循环不采用条件(为true),而是转到elif语句。我正在尝试使用if语句来控制可以进入列表的内容和不能进入的内容:average = []def judge(result):    try:        float(result)        return True    except ValueError:        return 'please type number'list_in = input('Type in your number,type y when finished.\n')judge_result = judge(list_in)if judge_result:    aver_trac = aver_trac + 1    average.append(list_in)    print('success')elif isinstance(judge_result, str):    print(judge_result)但是,如果我指定if judge_result == True:那么这个if循环将起作用
查看完整描述

1 回答

?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

Python将非空字符串评估为True,将空字符串评估为False。


在您的情况下,该judge函数返回True,或者返回非空字符串,该字符串也为True;当您评估收益时,if judge_result:始终为True。


有效的事实if judge_result == True:是python==和ispython之间的区别的一个很好的例子


综上所述,您处理数据输入的方式有点尴尬;您可以改为执行以下操作:


average = []



while True:

    list_in = input('Type in your number,type y when finished.\n')

    if list_in == 'y':

        break

    try:

        average.append(float(list_in))

    except ValueError:

        print('please type number')


查看完整回答
反对 回复 2021-04-27
  • 1 回答
  • 0 关注
  • 175 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号