def f(x:str):#判断一个指令是否合法
    if x=='':
        return False
    if x[0]=='W' or x[0]=='A' or x[0]=='S' or x[0]=='D':#判断首字母是否正确
        if len(x[1:])>2:#判断其余字符是否长度正确
            return False
        else:
            for i in x[1:]:
                if not i.isdigit():#判断其余字符是否有非数字
                    return False
        if x[1:]=='':#防止出现只有一个字母的输入,例如W;
            return False
        return True
    else:
        return False
s=input().split(';')
#print(s)
line=[]
x=0
y=0
for i in s:#创建有效指令列表
    if f(i):
        line.append(i)
for j in line:#进行坐标移动
    if j[0]=='W':
        y+=int(j[1:])
    elif j[0]=='S':
        y-=int(j[1:])
    elif j[0]=='A':
        x-=int(j[1:])
    elif j[0]=='D':
        x+=int(j[1:])
print(','.join([str(x),str(y)]))
#print(line)

我这个方法比较粗暴,查出所有的非法字符:

1.首字母不正确;2.空字符(因;分隔导致);3.坐标值过大或过小;4.无坐标值;5.坐标值内容非数字