2012-05-06 11 views
3

文字がインスタンス化されたときに文字列を分割することについて最近質問がありました。私はデカルト座標を計算する次のコードを思いついた。しかし、私はエラーが発生しています - 'TypeError:' bool 'オブジェクトはunsubscriptableです - '。これをどうやって解決するのですか?Pythonを分割し、受け取った変数に応じて計算する

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 
+0

'(add_x [0] ==( 'a'))[0]'は何をしますか? –

答えて

2

注意点として、このライン:あなたのデータは2--1-2--1のように見えるとき

coordslst = sample.split('-') 

が正しく動作しませんが。あなたが必要とするものは次のとおりです:

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 
4

ここは

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

(add_x[0] == ('a'))戻りFalse

、あなたはそれが意味をなさないFalse[0]、などの最初の要素のアクセスしようとしている。このラインです。

関連する問題