Xfxyxbb 发表于 2020-2-25 11:39:34

大神萌,第十六课第二道动动手不知道哪里出错了

temp = input(‘请输入一串数据’)
numbers = list(temp)
tn = list()
for each in numbers:
        if not instance(each,str):
                tn.append(each)
a = sum(tn)
print(a)

运行后是这样的:

请输入一串数据:5,6,7,a

>>>



平板不知道为何没法添加图片,麻烦各位大神啦

zltzlt 发表于 2020-2-25 11:44:54

temp = input('请输入一串数据').split(',')    # 以逗号分隔
numbers = list(temp)
tn = list()
for each in numbers:
    if each.isdigit():
      tn.append(int(each))
a = sum(tn)
print(a)

jackz007 发表于 2020-2-25 12:26:10

本帖最后由 jackz007 于 2020-2-25 12:30 编辑

#-*-coding:gbk-*-
numbers = input('请输入一串数据:') . split(',')
a = 0
for each in numbers:
    if each . isdigit():
      a += int(each)
print(a)
    还可以更简单:
#-*-coding:gbk-*-
a = sum()
print(a)

Xfxyxbb 发表于 2020-2-25 14:38:42

zltzlt 发表于 2020-2-25 11:44


你好!我主要是不知道为啥我那个程序实现不了
split我查了一下是分隔的作用,但是不太理解得了
以及那个if not isinstance(each,str)可以这么使用吗
按照逻辑下来是哪个环节出错啦
麻烦您了

zltzlt 发表于 2020-2-25 14:49:28

Xfxyxbb 发表于 2020-2-25 14:38
你好!我主要是不知道为啥我那个程序实现不了
split我查了一下是分隔的作用,但是不太理解得了
以及那 ...

不可以,因为无论用户输入什么,input() 返回的结果都是字符串,当然分割后的结果也是字符串,所以要用 isdigit() 判断而不是用 isinstance()

Xfxyxbb 发表于 2020-2-25 17:12:13

zltzlt 发表于 2020-2-25 14:49
不可以,因为无论用户输入什么,input() 返回的结果都是字符串,当然分割后的结果也是字符串,所以要用 i ...

明白了!谢谢您!

Xfxyxbb 发表于 2020-2-25 17:12:48

zltzlt 发表于 2020-2-25 14:49
不可以,因为无论用户输入什么,input() 返回的结果都是字符串,当然分割后的结果也是字符串,所以要用 i ...

明白了!谢谢您!
页: [1]
查看完整版本: 大神萌,第十六课第二道动动手不知道哪里出错了