4

我正在参加一个在线 Python 课程,该课程提出了一个问题,即程序员使用 for 循环提取子字符串。一年前有人问过类似的问题,但并没有真正得到回答。

所以问题是:

编写一个程序,输入形式为 «number1»+«number2» 的单个输入行,其中这两个都表示正整数,并输出两个数字的和。例如,在输入 5+12 上,输出应为 17。

给出的第一个提示是

使用 for 循环查找字符串中的 +,然后提取 + 前后的子字符串。

这是我的尝试,我知道这是错误的,因为循环中没有位置等于“+”。如何找到“+”在字符串“5+12”中的位置?

S = input()
s_len = len(S)
for position in range (0,s_len):
   if position == '+':
      print(position[0,s_len])

**剧透警报 - 编辑以向任何 CSC 滑铁卢课程学员显示答案

S = input()
s_len = len(S)
for position in range (0,s_len):
   if S[position] == '+':
      number1 = int(S[0:position])
      number2 = int(S[position:s_len])
sum = number1 + number2
print(sum)
4

1 回答 1

2

enumerate如果您想使用循环执行此操作,请使用:

S = input()
for position, character in enumerate(S):
   if character == '+':
      print(position)
      break  # break out of the loop once the character is found

enumerate从可迭代/迭代器返回索引和项目。

>>> list(enumerate("foobar"))
[(0, 'f'), (1, 'o'), (2, 'o'), (3, 'b'), (4, 'a'), (5, 'r')]

您的解决方案的工作版本:

S = input()
s_len = len(S)
for position in range(0, s_len):
   if S[position] == '+':        #use indexing to fetch items from the string.
      print(position)
于 2013-09-03T18:49:45.987 回答