2012-09-05 20 views
1

这就是我陷入困境,试图用网络课程学习Python的地方。用for-loop将输入分成两部分

编写一个程序,采取以下形式«NUMBER1»的单个输入线+«NUMBER2»,其中这两个代表正整数,并输出两个数的总和。例如在输入5 + 12的输出应为17

我们不应该使用分裂()或任何进口。

我认为解决方案是使用字符和它的值43和那种方式子字符串,但我不知道。我确信唯一的解决方案是简单的没有花哨的功能或进口需要。

以下是我认为可能接近解决

S = input() 
for position in range(0,len(S): 
     #code for substrings 5 to number1, and 12 to number2 
result = int(number1)+int(number2) 
print(result) 
+0

你不能只使用两个raw_input()表达式吗? –

+0

不,他们没有覆盖我们目前阅读的材料。 – Aenohe

+0

相关:[Python - 使用for循环而不是Split方法或任何其他方法提取子字符串](http://stackoverflow.com/questions/18599398/python-extracting-a-substring-using-a-for-loop -this-of-split-method-or-any) –

回答

0

使用str.partition

line = raw_input() 
num1, _, num2 = line.partition('+') 
print(int(num1) + int(num2)) 

如果您不能使用str.partition并希望使用for循环,然后enumerate应该帮助:

for i, c in enumerate(line): 
    if c == '+': 
     # what goes here? 
+0

..技术上是正确的,但是如果OP不应该使用split(),那么我认为使用'partition()'不是相当的蟋蟀。很难说没有看到描述规则的问题中没有引用的部分,而问题标题似乎提到了for循环。 – DSM

+0

是的,我们必须使用for循环和没有分区(),如果它可能避免 – Aenohe

+0

@Aenohe看到上面。 – ecatmur

0

答案

S = input() 
for position in range(0, len(S)): 
plus=S[position] 
    if (plus!="+"): 
     continue 
    number1=int(S[0:position]) 
    number2=int(S[position+1:len(S)]) 
    print(number1+number2)