如何实现四位数各位数字求和程序?现有Python代码报错求助
问题分析与代码修正
你的代码存在两个核心问题:
- 直接对字符串进行拼接而非数值求和:
ri[0]+ri[1]+ri[2]+ri[3]会把输入的四个字符直接连起来(比如输入3141会输出3141),而不是将每个字符转为整数后相加。 - 输出格式不符合需求:没有按照
数字+数字+数字+数字=总和的格式展示结果。
修正后的代码如下:
# 读取用户输入 ri = input("please enter four digits: ") # 验证输入是否为4位数字 if len(ri) == 4 and ri.isnumeric(): # 将每个字符转为整数,计算总和 digits = [int(c) for c in ri] total = sum(digits) # 构造要求的输出格式 print(f"{digits[0]}+{digits[1]}+{digits[2]}+{digits[3]}={total}") else: print("Error: should be four digits!")
代码说明:
- 用列表推导式
[int(c) for c in ri]把输入的每个字符转为整数,得到各位数字的列表。 - 用
sum()函数直接计算列表中数字的总和,简洁高效。 - 用f-string格式化输出,完美匹配需求中的
数字+数字+数字+数字=总和格式。
内容的提问来源于stack exchange,提问作者TahaAvadi
相关产品推荐
相关产品推荐

