这个类赋值旨在教我们使用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)
答案 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)
假设你的问题是“为什么这不起作用?”:
for char in range(0,len(s)-1):
为您提供s
分配给char
的索引,而不是字符本身。因此,您的比较应为if '+' == s[char]:
; for: else:
语法中,else
子句发生,除非循环break
或return
,因此将始终在您的代码中运行;和int()
并执行添加。