题解 | #坐标移动#python3 直接按要求写 try int except判断是否合法输入

坐标移动

http://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29

根据题意,先用split()函数根据';'分割出一个列表接受N条命令。 进行for循环判断每条的命令长度是否符合,len()长度固定为2或者3。不符合则用continue跳出进行下一条的判断。 对于符合长度的命令的首字母进行判断,是AWSD的进行下一次操作。不符合则用continue跳出进行下一条的判断。 首字母通过的命令,用try尝试对命令i的第二位到末位进行int()转化,int(i[2:]),长度前面已经限制为2或者3了,不用担心为空或者超长。不能转化说明不符合数字的规则,用except continue跳出进行下一条的判断。记录数字num。 根据首字母进行xy的加减操作。最后输入即可 def func():

s = input().strip().split(";")
x = 0
y = 0
if len(s) == 0:
    print("%d,%d"%(x,y))
    return
for i in s:
    if len(i) > 3 or len(i) < 2:
        continue
    if i[0] == "A" or i[0] == "W" or i[0] == "S" or i[0] == "D":
        try:
            num = int(i[1:])  
        except:
            continue
        if i[0] == "A":
            x -= num
        elif i[0] == "D":
            x += num
        elif i[0] == "W":
            y += num
        elif i[0] == "S":
            y -= num
    else:
        continue
print("%d,%d"%(x,y))

func()

全部评论

相关推荐

nus2201602...:兄弟,你这个简历撕了丢了吧,就是一坨,去找几个项目,理解项目流程,看几遍就是你的了,看看八股就去干了,多看看牛客里别人发出来的简历,对着写,你这写的啥啊,纯一坨
点赞 评论 收藏
分享
程序员小白条:你是沟通了900个,不是投了900份简历,你能投900份,意味着对面都要回复你900次,你早就找到实习了,没亮点就是这样的,别局限地区,时间投的也要早,现在都要7月了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务