我需要编写一个程序,接受一行“数字1” +“数字2”形式的输出,并输出两个数字的和。
以下内容无效:
S = input()
s_len = len(S)
for i in range(0, s_len):
if i == '+':
num1 = int(S[:i])
num2 = int(S[:i])
add = num1+num2
print(add)
答案 0 :(得分:2)
我想您想解决这样的问题:
S = input()
sum = 0
num = 0
for i in range(0, len(S)):
if S[i] != '+':
num = num * 10 + int(S[i]) #Assuming «number1>> and «number2» can have multiple digits
else:
sum += num
num = 0
sum += num
print (sum)
如该答案的评论中所述,您可能希望降低铸造成本:
S = input()
sum = 0
num = 0
start = 0
for i in range(0, len(S)):
if S[i] == '+':
sum += int(S[start:i])
start = i + 1
sum += int(S[start:len(S)])
print (sum)
假设:您的字符串始终采用您提到的格式。
答案 1 :(得分:2)
如果您真的想使用 for 循环来计算总和,则可以通过这种方式修改程序
S = input()
s_len = len(S)
for i in range(s_len):
if S[i] == "+":
num1 = int(S[:i])
num2 = int(S[i+1:])
add = num1 + num2
print(add)
break
但是请记住,程序可以通过多种方式执行相同的操作,主要区别始终在于程序的最优性,使用迭代器并不是解决此问题的最佳方法。解决方案没有任何灵活性,也没有机会在输入数据时出现用户错误,必须明确指定
答案 2 :(得分:1)
您正在比较if条件中的int
和str
,将条件替换为S[i] == '+'
。另外请注意,num2
的分片应改为S[i+1:]
。
但是,您不应使用'+'
来遍历字符以在str.split
处进行拆分。
s = input()
nums = s.split('+')
sum_ = sum(int(x) for x in nums)
答案 3 :(得分:1)
您可以使用map将字符串转换为整数,然后将其添加。这是一个方便的班轮。
sum_ = sum(map(int, input().split('+')))