如何用ForLoop和==运算符分隔字符串?

2024-06-16 12:32:09 发布

您现在位置:Python中文网/ 问答频道 /正文

这个课堂作业的目的是教我们如何使用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)

Tags: theinforstringlenifslicerange
2条回答

循环不起作用,因为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. for char in range(0,len(s)-1):给您指定给chars内的索引,而不是字符本身。因此你的比较应该是if '+' == s[char]:
  2. for: else:语法中,else子句出现,除非循环breakreturn在代码中始终运行;并且
  3. 实际上,您从未使用int()并执行加法。你知道吗

相关问题 更多 >