veater 发表于 2020-4-21 22:10:09

想求助一下这个问题

毕设老师完全放养 只说让学一下python 刚看两天基础知识。。。老师让一边找程序一边学 有大佬简单讲一下这段的功能嘛看为什么运行会 Process finished with exit code 0 呢 5555


class Solution:
    def robotSim(self, commands, ob):
      """
      :type commands: List
      :type obstacles: List]
      :rtype: int
      """
      origin =
      drection = 40
      result = 0
      dx =
      dy =
      for i in commands:
            if i == -1:
                drection = (drection + 1) % 4
            elif i == -2:
                drection = (drection - 1) % 4
            else:
                d = drection % 4
                for j in range(i):
                  if + dx, origin + dy] in ob:
                        break
                  origin = + dx, origin + dy]

            result = max(pow(origin, 2) + pow(origin, 2), result)

      return result

老八秘制 发表于 2020-4-21 22:25:54

没有print,光是return是不能输出到屏幕的,只会返回给函数

txxcat 发表于 2020-4-22 01:31:33

我猜你没有正确应用这个程序,不知道你在哪个ide下运行, Process finished with exit code 0就是告诉你进程执行完毕返回代码0,这个就是说没有错误运行完进程,说明至少没表面上的、语法上的错误。
这是个类,运行后不会有任何反应,需要实例化才能调用:
>>> %Run test.py
>>> a=Solution()
>>> a.robotSim(,[,,])
9
这个程序是个机器人避障模拟程序,参数1是一组整数列表,是机器人移动指令,参数2是一组由若干两位整数的列表组成的列表,代表障碍坐标,返回值是一个整数。我吧我能看懂的部份做了注释,有点强迫症,把一个错误单词direction给改了一下:
class Solution:
    def robotSim(self, commands, ob):
      """
      :type commands: List
      :type obstacles: List]
      :rtype: int
      """
      origin =       #原始位置
      direction = 40       #圆形方向值,其实和0一样
      result = 0         #返回结果
      dx =    #x轴移动方向
      dy =    #y轴移动方向
      for i in commands:
            if i == -1:
                direction = (direction + 1) % 4    #-1表明调整方向为顺时针90°
            elif i == -2:
                direction = (direction - 1) % 4    #-2表明调整方向为逆时针90°
            else:
                d = direction % 4               #除4求模得到0,1,2,3代表走位
                for j in range(i):                #非-1-2表示步数
                  if + dx, origin + dy] in ob:    #如果移动后的坐标在障碍表里,表明碰到障碍,退出本次循环,本步作废
                        break
                  origin = + dx, origin + dy]   #进行一次移动,修改坐标

            result = max(pow(origin, 2) + pow(origin, 2), result)    #坐标的平方和?看不懂!和上一轮result值比较取较大值

      return result   

会计的会怎么念 发表于 2020-4-22 09:46:33

Process finished with exit code 0
- 意味着你的代码正常运行并结束
- 你定义了一个类,然后没有实例化也没有调用其中的方法。
- 3楼的大哥很厉害

- 我不知道你是本科还是研究生,但是很多导师都一样,就跟学生说,你去网上找点代码!很简单的!
- 自己不能乱了,这都是他们不想管,放羊!
- 自己把握好自己的论文,导师的指导都很少的

veater 发表于 2020-4-22 18:58:17

老八秘制 发表于 2020-4-21 22:25
没有print,光是return是不能输出到屏幕的,只会返回给函数

谢谢 {:7_112:}

veater 发表于 2020-4-22 18:58:58

txxcat 发表于 2020-4-22 01:31
我猜你没有正确应用这个程序,不知道你在哪个ide下运行, Process finished with exit code 0就是告诉你进 ...

谢谢 谢谢

veater 发表于 2020-4-22 18:59:33

会计的会怎么念 发表于 2020-4-22 09:46
Process finished with exit code 0
- 意味着你的代码正常运行并结束
- 你定义了一个类,然后没有实例化 ...

谢谢 本科生 老师完全不管

veater 发表于 2020-4-22 19:19:15

txxcat 发表于 2020-4-22 01:31
我猜你没有正确应用这个程序,不知道你在哪个ide下运行, Process finished with exit code 0就是告诉你进 ...

您好 那 上面这三行程序 该怎么用啊 还没看到这里 就想先运行一下看看什么样 用的pycharm

txxcat 发表于 2020-4-22 21:24:45

veater 发表于 2020-4-22 19:19
您好 那 上面这三行程序 该怎么用啊 还没看到这里 就想先运行一下看看什么样 用的pycharm

1.首先运行程序,这时候就有产生了类Solution;
2.然后a=Solution()对类实例化产生对象a;
3.最后就是用a.robotSim()调用类里的方来进行避障模拟。
参数是两个列表,第一个列表是整数列表,-1、-2是表明调整方向,其他整数是移动步数;第二个列表由若干两单位的列表组成的列表,每个单位表示的是障碍物的坐标,具体运行方式看代码注释。但是我看不懂结果,坐标x和y的平方和的最大值,我唯一能想到的是这个坐标是离原始坐标最远的一个坐标了。
你需要恶补一下类和对象了,不然这些理解起来太费劲了。
页: [1]
查看完整版本: 想求助一下这个问题