如何使用For循环和==运算符分隔字符串?

时间:2014-01-01 17:40:59

标签: python string for-loop substring

这个类赋值旨在教我们使用for循环来分离和比较子串

s = '456+123'                 # separate the two strings, convert them to int and add them

for char in range(0,len(s)-1): # use the for loop 
   if '+' == str(char):        # string comparison
      substring1 = s[0:char]   # slice 1st string
      substring2 = s[char + 1:len(s)-1] # slice second string

      print(substring1)
      print(substring2)
else:
   print('Cannot separate the string')

** CSC滑铁卢(在线)学生的剧透警报! ** ...感谢您的答案......以下是我用于作业的正确代码

s = '123+456'
for char in range(0,len(s)-1):
if s[char] == '+':
    substring1 = int(s[0:char])
    substring2 = int(s[char:len(s)])
    print(substring1 + substring2)

2 个答案:

答案 0 :(得分:0)

你的循环不起作用,因为char不是s中的字符,而是一个整数,范围从0(含)到长度 - s - 减1 (不包括)。

拆分输入字符串:

value1, value2 = s.split('+')
result = int(value1) + int(value2)

如果您 使用for循环,请考虑您循环索引,检索带索引的原始字符:

for i in range(len(s)):
    if s[i] == '+':
        value1 = s[:i]
        value2 = s[i + 1:]
        break
else:
    print('Cannot separate the string')

但即便如此,您也可以使用str.find()代替:

index = s.find('+')
if index > -1:
    value1 = s[:i]
    value2 = s[i + 1:]
else:
    print('Cannot separate the string')

答案 1 :(得分:0)

假设你的问题是“为什么这不起作用?”:

  1. for char in range(0,len(s)-1):为您提供s分配给char的索引,而不是字符本身。因此,您的比较应为if '+' == s[char]:;
  2. for: else:语法中,else子句发生,除非循环breakreturn,因此将始终在您的代码中运行;和
  3. 您实际上从未使用int()并执行添加。