当前位置 博文首页 > 一个混错圈儿的小测试:python:坐标移动
开发一个坐标计算工具,?A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。
输入:
合法坐标为A(或者D或者W或者S)?+?数字(两位以内)
坐标之间以;分隔。
非法坐标点需要进行丢弃。如AA10;??A1A;??$%$;??YAD;?等。
下面是一个简单的例子?如:
A10;S20;W10;D30;X;A1A;B10A11;;A10;
处理过程:
起点(0,0)
+???A10???=??(-10,0)
+???S20???=??(-10,-20)
+???W10??=??(-10,-10)
+???D30??=??(20,-10)
+???x????=??无效
+???A1A???=??无效
+???B10A11???=??无效
+??一个空?不影响
+???A10??=??(10,-10)
结果?(10,?-10)
注意请处理多组输入输出
?
一行字符串
?
最终坐标,以逗号分隔
?
输入
A10;S20;W10;D30;X;A1A;B10A11;;A10;
?输出
10,-10
def move(coordinates):
? ? first = [0, 0]
? ? for coordinate in coordinates:
? ? ? ? if 2 <= len(coordinate) <= 3:
? ? ? ? ? ? try:
? ? ? ? ? ? ? ? if coordinate[0] == 'A':
? ? ? ? ? ? ? ? ? ? num = int(coordinate[1:])
? ? ? ? ? ? ? ? ? ? first[0] -= num
? ? ? ? ? ? ? ? elif coordinate[0] == 'D':
? ? ? ? ? ? ? ? ? ? num = int(coordinate[1:])
? ? ? ? ? ? ? ? ? ? first[0] += num
? ? ? ? ? ? ? ? elif coordinate[0] == 'W':
? ? ? ? ? ? ? ? ? ? num = int(coordinate[1:])
? ? ? ? ? ? ? ? ? ? first[1] += num
? ? ? ? ? ? ? ? elif coordinate[0] == 'S':
? ? ? ? ? ? ? ? ? ? num = int(coordinate[1:])
? ? ? ? ? ? ? ? ? ? first[1] -= num
? ? ? ? ? ? except:
? ? ? ? ? ? ? ? continue
? ? ? ? else:
? ? ? ? ? ? continue
? ? return first
string = input()
coordinates = string.strip().split(';')
last = move(coordinates)
print("{},{}".format(last[0], last[1]))
?
cs