我是编程的新手,并且正在滑铁卢大学的计算机科学界工作,并且坚持进行以下练习:https://i.stack.imgur.com/ltVu9.png 图像中的代码是我到目前为止提出的。
本练习希望我从“ +”字符之前和之后获取子字符串,并使用for循环将它们添加在一起,但我不知道如何获取子字符串。到目前为止,我已经尝试过
print(S[0:len(char)])
答案 0 :(得分:1)
要获取'+'符号之前和之后的字符的子字符串,您需要获取'+'char当前位置之前和之后的字符。
S = '12+5'
for pos in range(len(S)):
char = S[pos]
if char == '+':
sub_1 = S[:pos] # Get string before pos
sub_2 = S[pos + 1:] # Get string after pos
print('{} + {}'.format(sub_1, sub_2))
# Output: 12 + 5
但是,如果您只是想要最简单的解决方案而不考虑手动操作,那么就像其他人所说的那样,使用.split()
会使事情变得简单。由于.split()
会将字符串拆分为由特定字符分隔的字符串列表。
使用.split()
,代码可以像这样:
S = '12+5'
split_S = S.split('+') # Creates a list of ['12', '5']
# Make sure our list has 2 items in it to print
if len(split_S) == 2:
print('{} + {}'.format(split_S[0], split_s[1])
# Output: 12 + 5
答案 1 :(得分:0)
我建议这样做:
nums = S.split('+')
print(int(nums[0])+int(nums[1]))
答案 2 :(得分:0)
sum([int(c) for c in input().split('+')])
5+12
Out: 17
答案 3 :(得分:0)
Epicdaface25是正确的,您可以简单地使用
exclusive
但是,如果您需要使用import numpy as np
# set up matrix
x = np.zeros((5,5))
# add a single point
x[2,-1] = 1
# get coordinates of point as array
r, c = np.where(x)
# convert to python scalars
r = r[0]
c = c[0]
# get boundaries of array
m, n = x.shape
coords = []
# loop over possible locations
for i in [-1, 0, 1]:
for j in [-1, 0, 1]:
# check if location is within boundary
if 0 <= r + i < m and 0 <= c + j < n:
coords.append((r + i, c + j))
print(coords)
>>> [(1, 3), (1, 4), (2, 3), (2, 4), (3, 3), (3, 4)]
循环,那么Karl的答案是更好的选择。但是,您不会
nums = S.split('+')
print(int(nums[0])+int(nums[1]))
您需要打印for
才能让Python实际上将两个数字相加并显示总和,而不是数学表达式。