半夏冬青 发表于 2020-10-30 17:15:44

python零基础 016课后习题

def sum(x) :
    h=0

   
    for i in x :

      
      if (type(i)==int) or (type(i)==float):
            
            h += i
      else :
            continue
    return h
      

   
ph=list(input())
print('sum= ',sum(ph))

为啥 我这样每次运行都是显示 sum=0
0.0

冬雪雪冬 发表于 2020-10-30 17:18:14

因为input返回的都是str类型,所以都走到else分支了。

半夏冬青 发表于 2020-10-30 17:33:29

冬雪雪冬 发表于 2020-10-30 17:18
因为input返回的都是str类型,所以都走到else分支了。

那我用int强制转换嘛?
输入字母 int转换时会报错把

冬雪雪冬 发表于 2020-10-30 18:23:10

半夏冬青 发表于 2020-10-30 17:33
那我用int强制转换嘛?
输入字母 int转换时会报错把

是的,最好采用异常处理try语句。
页: [1]
查看完整版本: python零基础 016课后习题