Python,巧用Try,Except

坐标移动

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

while True:
    try:
        string = input().strip().split(';')
        start = [0, 0]
        for i in string:
            if not i: continue
            try:
                if i[0] == 'A':
                    start[0]-=int(float(i[1:]))
                if i[0] == 'D':
                    start[0]+=int(float(i[1:]))
                if i[0] == 'S':
                    start[1]-=int(float(i[1:]))
                if i[0] == 'W':
                    start[1]+=int(float(i[1:]))
            except:
                continue
        print('%d,%d'%(start[0],start[1]))
    except:
        break
全部评论
这题不是说输入一行字符串吗? 为啥循环读取input, 请大神指教
1
送花
回复 分享
发布于 2020-09-02 16:14
为啥要加float呢? while True: try: string = input().strip().split(';') start = [0, 0] for i in string: if not i: continue try: if i[0] == 'A': start[0]-=int(i[1:]) if i[0] == 'D': start[0]+=int(i[1:]) if i[0] == 'S': start[1]-=int(i[1:]) if i[0] == 'W': start[1]+=int(i[1:]) except: continue print("%s,%s"%(start[0],start[1])) except: break
1
送花
回复 分享
发布于 2021-12-09 15:40
国泰君安
校招火热招聘中
官网直投
不判断输入的合法,不会报错?
点赞
送花
回复 分享
发布于 2021-08-31 22:19
如果遇到A1A这种代码还能正常运行吗
点赞
送花
回复 分享
发布于 2021-09-30 17:57
为什么加了float,就可以把非法坐标过滤掉了呢?
点赞
送花
回复 分享
发布于 2022-01-18 19:00
不懂为什么float的可以试一下float("A10")试一下,这种是没法转换的,其实可以不用float,直接int也可以判断?
点赞
送花
回复 分享
发布于 2022-03-26 10:02
用i[1:]如果是三位数比如A111的话不是就不合法了么
点赞
送花
回复 分享
发布于 2022-07-07 19:33

相关推荐

23 6 评论
分享
牛客网
牛客企业服务