tiancaizcx 发表于 2022-10-23 00:28:28

请教一个分支结构判断的问题

                  elif run.text.strip() == '21':
                        if len(hetong) > 1 and len(str(data.get('抵押所有人2'))) == 0:
                            run.text = str(data.get('保证合同编号'))
                        elif len(hetong) > 1:
                            run.text = str(data.get('抵押合同编号'))
                        else:
                            run.text = ''

这是我写的一段代码里面一小段
这块的代码循环我头绕晕了
如果len(hetong) > 1 同时 len(str(data.get('抵押所有人2'))) 为空
则 run.text = str(data.get('保证合同编号'))
否则 run.text = str(data.get('抵押合同编号'))
如果都不是则输出空

现在问题是 len(str(data.get('抵押所有人2'))) == 0:好像不对,做出不了判断
不知道为啥


我之前写的语句中   if pandas.isna(data.get('抵押所有人2')) or len(str(data.get('抵押所有人2'))) == 0:
                              run.text = ''
用 or 就可以正确作出判断
用and,这个判断就不对,不知道为啥

如果第二行我把len(str(data.get('抵押所有人2'))) == 0换成其他的都是可以的
我觉得 len(str(data.get('抵押所有人2'))) == 0出问题了
有没有大神教一下
PS:我是新手,感谢了!!!

lassiter 发表于 2022-10-23 01:23:03

你不如写简单点 len(hetong) > 1 and str(data.get('抵押所有人2')) == ‘’:   
建议你用pycharm或者anaconda自带的spyder断点调试程序,可以看到每个参数在每一步的值。

tiancaizcx 发表于 2022-10-23 22:26:00

lassiter 发表于 2022-10-23 01:23
你不如写简单点 len(hetong) > 1 and str(data.get('抵押所有人2')) == ‘’:   
建议你用pycharm或者a ...

我按照你说的去掉len,用str(data.get('抵押所有人2')) == ‘nan’了,这玩意在excel里面不输的话,显示nan,这样可以正确判断了,刚学这个,感觉遇到好多难题,头疼!
页: [1]
查看完整版本: 请教一个分支结构判断的问题