python小白做作业求助
帮忙看看哪里不对#自动“无视”列表里的字符串并返回其他数字的求和结果
list1 = input ('请输入一个列表:')
sum1 = 0
for each in list1:
if type(each) == str:
continue
else:
sum1 = sum1 + each
print(sum1) each在list1里面是字符,所以所有的each都满足if的条件,都continue了
list1 = input ('请输入一个列表:')
sum1 = 0
for each in list1:
if '0' <= each <= '9':
sum1 += int(each)
print(sum1) 所以只需要判断里面的字符是不是数字字符,然后再把数字字符变为数字就好了
input 是接受用户输入并讲输入的数据转化为字符串,你要想弄成列表 应该要切割,而且这样做并不好,你要输入列表很规范才行
建议用 函数,然后将列表作为参数传入即可
这个就可行了代码:
list1 = input ('请输入一个列表(以英文逗号隔开列表内的元素):').split(',')# 通过切割字符串,来转为列表
for i in range(len(list1)):
if list1.isdigit():
list1 = int(list1)
else:
list1 = list1 # 因为我们输入字符串有带引号 而切割后成为字符串自己会在加上引号,所以把原有的引号去掉
# 下面的代码就可以正常运行了,你之前代码是错误的 就是 2 L 说的 因为 type 永远为 str
sum1 = 0
for each in list1:
if type(each) == str:
continue
else:
sum1 = sum1 + each
print(sum1) 大佬真给力,自己一个人零基础学真的要劝退了,有人指点真的太好了。有事脑子转不过弯,自己知道input后面的是字符串类型的,就是没想到这个问题,谢谢
这是第一次发帖,没想到效果意外的好,给了我继续前进的强大动力{:10_256:} yz7268913 发表于 2020-6-26 23:11
大佬真给力,自己一个人零基础学真的要劝退了,有人指点真的太好了。有事脑子转不过弯,自己知道input后面 ...
加油!!! 把学编程当成一种兴趣!这样你就会有无穷的动力!
https://xxx.ilovefishc.com/forum/202005/27/132745rjvcvw1z2148jthd.gif
页:
[1]