Skip to content

Commit df98799

Browse files
committed
更新了第19课内容
1 parent 2abf138 commit df98799

14 files changed

+92
-3
lines changed

res/pycharm-activation.png

34.7 KB
Loading

res/pycharm-create-launcher.png

86.6 KB
Loading

res/pycharm-import-settings.png

26 KB
Loading

res/pycharm-install-plugins.png

173 KB
Loading

res/pycharm-installation.png

594 KB
Loading

res/pycharm-project-wizard.png

90.8 KB
Loading

res/pycharm-run-result.png

78.7 KB
Loading

res/pycharm-settings.png

120 KB
Loading

res/pycharm-ui-themes.png

260 KB
Loading

res/pycharm-welcome.png

47.1 KB
Loading

res/pycharm-workspace.png

224 KB
Loading

第017课:面向对象编程进阶.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ teacher.teach('Python程序设计')
205205
stu1.study('Python程序设计')
206206
```
207207

208-
继承的语法是在定义类的时候,在类名后的圆括号中指定当前类的父类。Python语言允许多重继承,也就是说一个类可以有一个或多个父类,关于多重继承的问题我们在后面会有更为详细的讨论。在子类的初始化方法中,我们可以通过`super().__init__()`来调用父类初始化方法,`super`函数是Python内置函数中专门为获取当前对象的父类对象而设计的。从上面的代码可以看出,子类除了可以通过继承得到父类提供的属性和方法外,还可以定义自己特有的属性和方法,所以子类比父类拥有的更多的能力。在实际开发中,我们经常会用子类对象去替换掉一个父类对象,这是面向对象编程中一个常见的行为,也叫做“里氏替换原则”(Liskov Substitution Principle)。
208+
继承的语法是在定义类的时候,在类名后的圆括号中指定当前类的父类。如果定义一个类的时候没有指定它的父类是谁,那么默认的父类是`object`类。`object`类是Python中的顶级类,这也就意味着所有的类都是它的子类,要么直接继承它,要么间接继承它。Python语言允许多重继承,也就是说一个类可以有一个或多个父类,关于多重继承的问题我们在后面会有更为详细的讨论。在子类的初始化方法中,我们可以通过`super().__init__()`来调用父类初始化方法,`super`函数是Python内置函数中专门为获取当前对象的父类对象而设计的。从上面的代码可以看出,子类除了可以通过继承得到父类提供的属性和方法外,还可以定义自己特有的属性和方法,所以子类比父类拥有的更多的能力。在实际开发中,我们经常会用子类对象去替换掉一个父类对象,这是面向对象编程中一个常见的行为,也叫做“里氏替换原则”(Liskov Substitution Principle)。
209209

210210
子类继承父类的方法后,还可以对方法进行重写(重新实现该方法),不同的子类可以对父类的同一个方法给出不同的实现版本,这样的方法在程序运行时就会表现出多态行为(调用相同的方法,做了不同的事情)。多态是面向对象编程中最精髓的部分,当然也是对初学者来说最难以理解和灵活运用的部分,我们会在下一节课中用专门的例子来讲解多态这个知识点。
211211

第018课:面向对象编程应用.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ print(card1, card2) # ♠5 ♥K
5959
import random
6060

6161

62-
class Poker(object):
62+
class Poker:
6363
"""扑克"""
6464

6565
def __init__(self):
@@ -98,7 +98,7 @@ print(poker.cards)
9898
定义玩家类。
9999

100100
```Python
101-
class Player(object):
101+
class Player:
102102
"""玩家"""
103103

104104
def __init__(self, name):
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
## 第019课:使用PyCharm开发Python应用程序
2+
3+
坚持学习完前18课的小伙伴应该已经感受到了,随着我们对Python语言的认知在逐步加深,我们写的代码也越来越复杂了。“工欲善其事,必先利其器”,如果希望能够更快更好的写出代码,选择一个称手的开发工具是很有必要的。虽然我们之前推荐大家使用的VS Code已经很好了,但是对于复杂应用程序或者商业项目开发来说,我们还有更好的选择,它就是JetBrains公司出品的PyCharm。
4+
5+
### PyCharm的下载和安装
6+
7+
可以在[JetBrains公司的官方网站](<https://www.jetbrains.com/>)找到PyCharm的[下载链接](https://www.jetbrains.com/pycharm/download/),有两个可供下载的版本,一个是社区版(PyCharm CE),一个是专业版(PyCharm Professional)。社区版在Apache许可证下发布,可以免费使用;专业版在专用许可证下发布,需要购买授权后才能使用,但新用户可以试用30天。很显然,专业版提供了更为强大的功能和对企业级开发的各种支持,但是对于初学者来说,社区版已经足够强大和好用了。安装PyCharm只需要直接运行下载的安装程序,然后持续的点击“下一步”就可以啦。下面是我在Windows系统下安装PyCharm的截图。
8+
9+
![](res/pycharm-installation.png)
10+
11+
### 首次使用的设置
12+
13+
第一次使用PyCharm时,会有一个导入设置的向导,如果之前没有使用PyCharm或者没有保存过设置的就直接选择“Do not import settings”进入下一步即可,下面是我在macOS系统下第一个使用PyCharm时的截图。
14+
15+
![](./res/pycharm-import-settings.png)
16+
17+
专业版的PyCharm是需要激活的,**强烈建议大家在条件允许的情况下支付费用来支持优秀的产品**,如果不用做商业用途或者不需要使用PyCharm的高级功能,我们可以暂时选择试用30天或者使用社区版的PyCharm。如果你是一名学生,希望购买PyCharm来使用,可以看看[教育优惠官方申请指南](https://sales.jetbrains.com/hc/zh-cn/articles/207154369)
18+
19+
![](./res/pycharm-activation.png)
20+
21+
接下来是选择UI主题,这个可以根据个人喜好进行选择。
22+
23+
![](./res/pycharm-ui-themes.png)
24+
25+
再接下来是创建可以在终端(命令行)中使用PyCharm项目的启动脚本,当然也可以直接跳过这一步。
26+
27+
![](./res/pycharm-create-launcher.png)
28+
29+
然后可以选择需要安装哪些插件,我们可以暂时什么都不安装等需要的时候再来决定。
30+
31+
![](./res/pycharm-install-plugins.png)
32+
33+
最后点击上图右下角的“Start using PyCharm”就可以开始使用PyCharm了。
34+
35+
### 用PyCharm创建项目
36+
37+
启动PyCharm之后会来到一个欢迎页,在欢迎页上我们可以选择“Create New Project”(创建新项目)、“Open”(打开已有项目)和“Get from Version Control”(从版本控制系统中检出项目)。
38+
39+
![](./res/pycharm-welcome.png)
40+
41+
如果选择了“Create New Project”来创建新项目就会打一个创建项目的向导页。下图所示是PyCharm专业版创建新项目的向导页,可以看出专业版支持的项目类型非常的多,而社区版只能创建纯Python项目(Pure Python),没有这一系列的选项。
42+
43+
![](./res/pycharm-project-wizard.png)
44+
45+
接下来,我们要为项目创建专属的虚拟环境,每个Python项目最好都在自己专属的虚拟环境中运行,因为每个项目对Python解释器和三方库的需求并不相同,虚拟环境对不同的项目进行了隔离。在上图所示的界面在,我们可以选择“New environment using Virtualenv”(新建虚拟环境),这里的“Virtualenv”是PyCharm默认选择的创建虚拟环境的工具,我们就保留这个默认的选项就可以了。
46+
47+
项目创建完成后就可以开始新建各种文件来书写Python代码了,如下图所示。左侧是项目浏览器,可以看到刚才创建的项目文件夹以及虚拟环境文件夹。我们可以在项目上点击鼠标右键,选择“New”,在选择“Python File”来创建Python代码文件,下图中我们创建了两个Python文件,分别是`poker_game.py``salary_system.py`。当然,如果愿意,也可以使用复制粘贴的方式把其他地方的Python代码文件复制到项目文件夹下。
48+
49+
![](./res/pycharm-workspace.png)
50+
51+
在工作窗口点击鼠标右键可以在上下文菜单中找到“Run”选项,例如要运行`salary_system.py`文件,右键菜单会显示“Run 'salary_system'”选项,点击这个选项我们就可以运行Python代码啦,运行结果在屏幕下方的窗口可以看到,如下图所示。
52+
53+
![](res/pycharm-run-result.png)
54+
55+
### 常用操作和快捷键
56+
57+
PyCharm为写Python代码提供了自动补全和高亮语法功能,这也是PyCharm作为集成开发环境(IDE)的基本功能。PyCharm的“File”菜单有一个“Settings”菜单项(macOS上是在“PyCharm”菜单的“Preferences…”菜单项),这个菜单项会打开设置窗口,可以在此处对PyCharm进行设置,如下图所示。
58+
59+
![](res/pycharm-settings.png)
60+
61+
PyCharm的菜单项中有一个非常有用的“Code”菜单,菜单中提供了自动生成代码、自动补全代码、格式化代码、移动代码等选项,这些功能对开发者来说是非常有用的,大家可以尝试使用这些菜单项或者记住它们对应的快捷键,例如在macOS上,格式化代码这个菜单项对应的快捷键是`alt+command+L`。除此之外,“Refactor”菜单也非常有用,它提供了一些重构代码的选项。所谓重构是在不改变代码执行结果的前提下调整代码的结构,这也是资深程序员的一项重要技能。还有一个值得一提的菜单是“VCS”,VCS是“Version Control System”(版本控制系统)的缩写,这个菜单提供了对代码版本管理的支持。版本控制的知识会在其他的课程中为大家讲解。
62+
63+
下表列出了一些PyCharm中特别常用的快捷键,当然如果愿意,也可以通过设置窗口中“Keymap”菜单项自定义快捷键,PyCharm本身也针对不同的操作系统和使用习惯对快捷键进行了分组。
64+
65+
| 快捷键 | 作用 |
66+
| --------------------------------------------- | -------------------------------------- |
67+
| `command + j` | 显示可用的代码模板 |
68+
| `command + b` | 查看函数、类、方法的定义 |
69+
| `ctrl + space` | 万能代码提示快捷键,一下不行按两下 |
70+
| `command + alt + l` | 格式化代码 |
71+
| `alt + enter` | 万能代码修复快捷键 |
72+
| `ctrl + /` | 注释/反注释代码 |
73+
| `shift + shift` | 万能搜索快捷键 |
74+
| `command + d` / `command + y` | 复制/删除一行代码 |
75+
| `command + shift + -` / `command + shift + +` | 折叠/展开所有代码 |
76+
| `F2` | 快速定位到错误代码 |
77+
| `command+ alt + F7` | 查看哪些地方用到了指定的函数、类、方法 |
78+
79+
> **说明**:Windows系统下如果使用PyCharm的默认设置,可以将上面的`command`键换成`ctrl`键即可,唯一的例外是`ctrl + space`那个快捷键,因为它跟Windows系统切换输入法的快捷键是冲突的,所以在Windows系统下没有与之对应的快捷键。
80+
81+
### 简单的总结
82+
83+
PyCharm很强大,尤其是专业版的PyCharm,建议大家一边使用一边总结,这样才会用到越来越顺手,工作效率也会随之而提升。
84+
85+
> **温馨提示**:学习中如果遇到困难,可以加**QQ交流群**询问。
86+
>
87+
> 付费群:**789050736**,群一直保留,供大家学习交流讨论问题。
88+
>
89+
> 免费群:**151669801**,仅供入门新手提问,定期清理群成员。

0 commit comments

Comments
 (0)