以前一直是使用jupyter的,但是后来发现有的时候需要对项目进行操作,这个时候发现,两个软件都有比较好。
但是,其他的大多数博客都是装Pycharm的同时,还要安装最原始的python,我的结论是:不需要。
下载地址:https://www.jetbrains.com/pycharm/ 下载社区版,不需要下载专业版,你也没那么专业吧。  然后下载了一个.exe文件,直接打开安装就行,中间会有一次有很多单选框得选项,全部选上就行。
然后是安装路径,随意。然后很快就安装好了。
需要你重启,我直接重启了。然后打开这个软件,不要新建项目,直接打开项目就行,你可以直接自己提前在一个目录下建一个文件夹test,然后在pycharm中打开这个文件夹作为项目就行:
pycharm会自动生成一个文件main.py:  一开始,我以为没有解释器(interpreter),从而这个代码无法解释运行,后来证明我错了。
我们可以直接点击右上角那个绿色的播放按钮,发现就可以运行了。  运行结果:  于是我看了一下,我们到底用得是哪一个解释器:  发现其竟然自动找到了我的anaconda的python安装位置,所以,完事大吉了。 
1.左下角简单介绍 
2.我们可以进一步看看我们在anaconda中的包是否这里也可以用。我之前安装过torch这个包,用它来做测试。
import torch
def print_hi(name):
print(f'Hi, {name}')
print(torch.tensor([1,2]))
if __name__ == '__main__':
print_hi('PyCharm')
成功了。 
不过,用着还是觉得没jupyter习惯,但是这个用来打开项目和调试确实更好,项目的打开前面已经说了,非常简单。调试该如何呢?  然后会弹出防火墙,点击允许。 开始的时候,默认只给了我一个调试断点,我们可以多打几个。例如下面的这两个红色断点就是我自己打的。  上面的蓝色表示当前位置,但是这个断点目前还没有运行完毕。但是只要一进入这个函数,变量name早就已经赋值了成为"PyCharm"。  我们直接执行下一步,其会运行这个断点到下一个断点之间的代码,并且及时停下。   此时,我们所得到的变量没有任何的变化,因为目前只执行了第一个断点,但是这个断点只是输出操作,并没有变量的赋值或者更改操作。 因此,继续执行下一步。  此时,我们得到了a变量的值。
再执行下一步,此时什么也没有了,因为程序执行结束,变量都释放了。 
上述有一个需要纠正的地方。 第一个箭头表示的是执行下一行代码的意思,第二个箭头表示的才是一直执行直到下一个断点的意思,上面有误。 
|