Python新手求助:逗号分隔整数转列表并循环求和遇值错误
问题原因&解决办法
你出错的核心问题是split()方法没指定分隔符:
- 默认的
split()会按空格(包括空格、换行等)分割字符串,但你需要的是按逗号分割,所以得用split(',')。 - 另外用户输入时可能会在逗号后加空格(比如
1, 2, 3),分割后的每个元素会带空格,直接转int也会报错,所以转整数前要先去掉前后空白。
修正后的完整代码
# 获取用户输入,按逗号分割字符串 input_string = input('Enter elements of a list separated by commas: ') # 分割后去掉每个元素的空白,再转成整数列表 user_list = [int(item.strip()) for item in input_string.split(',')] # 用for循环计算总和 for_sum = 0 for num in user_list: for_sum += num # 用while循环计算总和 while_sum = 0 index = 0 while index < len(user_list): while_sum += user_list[index] index += 1 # 输出结果 print(f"For循环计算的总和: {for_sum}") print(f"While循环计算的总和: {while_sum}")
代码说明
input_string.split(','):把输入的字符串按逗号拆分成字符串列表,比如输入1,2,3会得到['1','2','3'],输入1, 2, 3会得到['1',' 2',' 3']。int(item.strip()):strip()去掉每个元素前后的空白字符,再转成整数,这样不管用户有没有加空格都能处理。- for循环直接遍历列表元素累加,逻辑简单;while循环通过索引遍历,需要维护索引变量直到遍历完整个列表。
内容的提问来源于stack exchange,提问作者basenchar
相关产品推荐
相关产品推荐

