fightclub 发表于 2022-9-2 21:33:19

为什么不用elif会导致打印结果中其他字符(others)的个数不对

本帖最后由 fightclub 于 2022-9-2 21:38 编辑

def count(*param):
    num = 1
    for each in param:
      letter = 0
      digit = 0
      space = 0
      others = 0
      for i in range(len(each)):
            if each.isspace():
                space += 1
            if each.isdigit():
                digit += 1
            if each.isalpha():
                letter += 1
            else:
                others += 1
      print('第%d个字符串共有:英文字母%d个,数字%d个,空格%d个,其他字符%d个。'%(num,letter,digit,space,others))
      num += 1
count('I love fishc.com.','I love you, you love me.')

tommyyu 发表于 2022-9-2 21:39:31

本帖最后由 tommyyu 于 2022-9-2 21:40 编辑

if each.isspace():
    space += 1
if each.isdigit():
    digit += 1
if each.isalpha(): #只有这个条件不满足的时候,才会执行 else 语句,所以应该用elif,这样才可以在三个条件都不满足的时候才执行else语句
    letter += 1
else:
    others += 1

fightclub 发表于 2022-9-2 21:48:01

tommyyu 发表于 2022-9-2 21:39


哦哦我懂了,谢谢你{:5_109:}
页: [1]
查看完整版本: 为什么不用elif会导致打印结果中其他字符(others)的个数不对