温柔与你皆失 2022-02-03 21:36 采纳率: 100%
浏览 21
已结题

python 无论b是否等于空格,elif条件语句不触发

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
for b in translate:
        if b=='1'or'2':
            numstr=numstr+b
        elif b==' ':
            numlist.append(numstr)
            numlist.append(' ')
            numstr=''

print(numlist) #输出的值是[]

运行结果及报错内容

输出结果为[],没有报错

我的解答思路和尝试过的方法

重新翻过append(),列表的相关内容,测试后发现numstr正常输出,输出值为12 212 ,(有空格),但无论b是否等于空格,elif后的代码块都不执行

我想要达到的结果

合并字符串,中间用空格隔开,因为不让重复输入相同的符号,所以想要的结果写在下方

numstr=''
numlist=[]
translate=['1','2',' ','2','1','2',' ']
for b in translate:
        if b=='1'or'2':
              numstr=numstr+b
        elif b==' ':
              numlist.append(numstr)
              numlist.append(' ')
              numstr=''
print(numlist)   #输出的值是[]
#想达到的结果:numlist=['12',' ','121',' ']
  • 写回答

3条回答 默认 最新

  • CSDN专家-sinJack 2022-02-03 21:53
    关注
    if b=='1'or'2'
    

    因为if条件恒成立,不会执行后面的elif分支。
    这个if逻辑是
    表达式1) b=='1'
    或者
    表达式2) '2'
    表达式2是单独的,跟b没关系,所以'2'是恒成立的,所以if条件恒成立。
    你的写法应该是少了b==

    if b=='1'or b=='2'
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 2月12日
  • 已采纳回答 2月4日
  • 创建了问题 2月3日

悬赏问题

  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计