3

我最近发布了一个关于在实例化字符时拆分字符串的问题。我想出了以下代码来计算笛卡尔坐标。但是,我收到错误 - 'TypeError: 'bool' object is unsubscriptable' -。我该如何解决?

add_x                    =   "s1"
add_y                    =   "a3"
sample                   =   ("0-0")
coordslst                =   sample.split('-')
user_coordinate_x        =   coordslst[0]
user_coordinate_y        =   coordslst[1]
if    (add_x.split('s'))[0] == ("s"):
    new_coordinate_x    =   str(int(user_coordinate_x) - int((add_x.split('a', 's'))[1]))
elif (add_x[0] == ('a'))[0] == ("a"):
    new_coordinate_x    =   str(int(user_coordinate_x) + int((add_x.split('a', 's'))[1]))
if    (add_y.split('s'))[0] == ("s"):
    new_coordinate_y    =   str(int(user_coordinate_y) - int((add_y.split('a', 's'))[1]))
elif  (add_y.split('a'))[0] == ("a"):
    new_coordinate_y    =   str(int(user_coordinate_y) + int((add_y.split('a', 's'))[1]))
new_coordinates     =   new_coordinate_x + "-" + new_coordinate_y
print new_coordinates
4

2 回答 2

4

这里是这条线

elif (add_x[0] == ('a'))[0]:

(add_x[0] == ('a'))返回False

并且您正在尝试访问它的第一个元素,例如False[0],这没有意义。

于 2012-05-06T12:56:04.110 回答
2

作为旁注,这一行:

coordslst = sample.split('-')

2--1当您的数据看起来像nor时,将无法正常工作-2--1;你需要的是:

sample = '-2--1'
pos = sample.index('-', 1)  # find first '-' after first character
x = sample[:pos]            # up to the dash
y = sample[pos+1:]          # skip the dash
于 2012-05-06T15:45:33.027 回答