《Python基础知识-0入门》

1 编译器与解释器

1.1 编译与解释

  (参考链接:你知道「编译」与「解释」的区别吗?
  计算机不能直接地理解高级语言,只能直接理解机器语言。所以必须要把高级语言翻译成机器语言,计算机才能够执行高级语言编写的程序。翻译的方式有两种:编译解释

图1 编译型语言和解释型语言的执行流程。

  ● 编译型语言:程序在执行之前需要一个专门的编译过程,把程序编译成为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差。如 C、C++、Golang、Pascal 等;
  ● 解释型语言:解释型语言编写的程序不进行预先编译,以文本方式存储程序代码,会将代码一句一句直接运行。在发布程序时,看起来省了道编译工序,但是在运行程序的时候,必须先解释再运行。如 Python、JavaScript、PHP、Shell、MATLAB 等。

1.2 主要区别

  ● 速度:一般编译型语言的运行效率比解释型语言更高,但是不能一概而论,部分解释型语言的解释器通过在运行时动态优化代码,甚至能使解释型语言的性能超过编译型语言;
  ● 跨平台性:解释型语言比编译型语言跨平台性好。编译型语言依赖于编译器,编译之后如果需要修改就要将整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。

2 面向对象与面向过程

  (参考链接:如何通俗易懂地举例说明「面向对象」和「面向过程」有什么区别?面向对象和面向过程面向对象和面向过程的区别和联系
  面向过程是一种以过程为中心的编程思想,它首先分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,在使用时依次调用,是一种基础的顺序的思维方式(自顶向下,逐步细化)。面向过程开发方式是对计算机底层结构的一层抽象,它将程序分为数据和操纵数据的操作两部分,其核心问题是数据结构和算法的开发和优化。常见的支持面向过程的编程语言有 C、COBOL 等。
  面向对象是按人们认识客观世界的系统思维方式,采用基于对象(实体)的概念建立模型,模拟客观世界分析、设计、实现软件的编程思想,通过面向对象的理念使计算机软件系统能与现实世界中的系统一一对应。面向对象方法直接把所有事物都当作独立的对象,处理问题过程中所思考的不再主要是怎样用数据结构来描述问题,而是直接考虑重现问题中各个对象之间的关系。面向对象方法的基础实现中也包含面向过程的思想。常见的支持面向对象的编程语言有 C++、C#、Java 等。

面向对象面向过程
特性抽象、继承、封装、多态功能模块化,代码流程化
优点易维护、易复用、易扩展、低耦合性能高,适合资源紧张、实时性强的场合
缺点性能比面向过程低没有面向对象易维护、易复用、易扩展

  为了进一步理解面向对象和面向过程的不同,以设计一个五子棋程序为例,面向过程的设计思路是,首先分析问题的步骤:① 开始游戏;② 黑子先走;③ 绘制画面;④ 判断输赢;⑤ 轮到白子;⑥ 绘制画面;⑦ 判断输赢;⑧ 返回步骤 ②;⑨ 输出最后结果,然后将上面每个步骤用程序来实现即可。
  面向对象的设计则将程序分为三类对象:① 黑白双方,这两方的行为是一模一样的;② 棋盘系统,负责绘制画面;③ 规则系统,负责判定诸如犯规、输赢等。第 ① 类对象(玩家对象)负责接受用户输入,并告知第 ② 类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上面显示出这种变化,同时利用第 ③ 类对象(规则系统)来对棋局进行判定。
  可见,面向对象是以功能来划分问题,而不是步骤。同样是绘制棋局,这样的行为在面向过程的设计中分散在了多个步骤中,很可能出现不同的绘制版本,而面向对象的设计中,绘图只可能在棋盘对象中出现,从而保证了绘图的统一。功能上的统一保证了面向对象设计的可扩展性。
  如要加入悔棋功能,若是面向过程设计,则从输入到判断到显示的若干步骤都要改动,甚至步骤之间的先后顺序都可能需要调整。而若是面向对象设计,则只需改动第 ② 类对象(棋盘对象)即可,棋盘对象保存了黑白双方的棋谱和落子先后顺序,简单回溯操作即可实现悔棋功能,并不涉及显示和规则部分,改动是局部可控的。

3 Pycharm基础

  (参考链接:Pycharm 使用教程

3.1 Pycharm设置

1)中文语言包

  安装流程:File -> Settings -> Plugins,搜索并安装 Chinese (Simplified) Language Pack / 中文语言包

2)字体显示

  设置流程:File -> Settings -> Editor -> Font (Color Scheme)

3)颜色设置

  设置流程:File -> Settings -> Appearance & Behavior -> Appearance -> Theme

4)Editor颜色设置

  设置流程:File -> Settings -> Editor -> Color Scheme -> General -> Text -> Default Text

  在原始 Scheme 上调整设置之后,Scheme 会改变颜色(上图 Darcula 变为蓝色)代表进行过更改。点击小齿轮 Restore Defaults 可以恢复初始设置。选择 Duplicate,可以建立属于自己的主题,并导出 Export 以保存主题设置。

5)Tab键与空格

  设置流程:File -> Settings -> Editor -> Code Style -> Python

6)默认行长

  设置流程:File -> Settings -> Editor -> Code Style -> Hard wrap at _ columns


3.2 程序与调试

  (参考链接:Debug

  • Step Over(F8):在单步执行时,函数内遇到子函数时不会进入子函数内单步执行,而是将整个子函数执行完再停止,也就是把子函数整个作为一步。在不存在子函数的情况下和 Step Into 一样(简而言之,越过子函数,但子函数会执行)。
  • Step Into(F7):单步执行,遇到子函数就进入并且继续单步执行(简而言之,进入子函数)。
  • Step Into My Code(Alt + Shift + F7):进入自己编写的函数,而不进入系统函数。
  • Step Out(Shift + F8):当单步执行到子函数内时,用 Step Out 就可以执行完子函数余下部分,并返回到上一层函数。
  • Run to Cursor(Alt + F9):一直执行,到光标处停止,用在循环内部时,点击一次就执行一个循环。
  • Resume Program(F9):从当前断点跳转到下一个断点。


3.3 常用快捷键

快捷键描述快捷键描述
Ctrl + /注释Tab缩进四个空格
Ctrl + Shift + /块注释Shift + Tab反向缩进
Ctrl + D复制并粘贴,直接在下一行粘贴该行整行(或选中)的内容Shift + F10Run
Ctrl + Z撤回Shift + F9Debug
Ctrl + Shift + Z重做,撤销上一次撤回Ctrl + Enter在下方新建行但不移动光标
Ctrl + A全选Shift + Enter在下方新建行并移动到行首
Ctrl + Q查看快速文档Alt + Enter优化代码,提示信息实现自动导包
Shift + F1查看Web文档Alt + Insert定制生成类的各项基本方法

4 代码格式与注意事项

4.1 设置代码格式

  (参考链接:PEP 8 – Style Guide for Python CodePython风格指南

1)缩进

  PEP 8 建议每级缩进都使用四个空格,这既可提高可读性,又留下了足够的多级缩进空间。在字处理文档中,大家常常使用制表符而不是空格来缩进。对于字处理文档来说,这样做的效果很好,但混合使用制表符和空格会让Python解释器感到迷惑。每款文本编辑器都提供了一种设置,可将输入的制表符转换为指定数量的空格(参考3.1 Tab键与空格)。在编写代码时可以使用制表符键,但一定要对编辑器进行设置,使其在文档中插入空格而不是制表符。
  在程序中混合使用制表符和空格可能导致极难解决的问题。如果你混合使用了制表符和空格,可将文件中所有的制表符转换为空格,大多数编辑器都提供了这样的功能。

2)行长

  很多Python程序员都建议每行不超过80字符(参考3.1 默认行长)。最初制定这样的指南时,在大多数计算机中,终端窗口每行只能容纳79字符;当前,计算机屏幕每行可容纳的字符数多得多,为何还要使用79字符的标准行长呢?这里有别的原因。专业程序员通常会在同一个屏幕上打开多个文件,使用标准行长可以让他们在屏幕上并排打开两三个文件时能同时看到各个文件的完整行。PEP 8 还建议注释的行长都不超过72字符,因为有些工具为大型项目自动生成文档时, 会在每行注释开头添加格式化字符。
  PEP 8 中有关行长的指南并非不可逾越的红线,有些小组将最大行长设置为99字符。在学习期间,你不用过多地考虑代码的行长,但别忘了,协作编写程序时,大家几乎都遵守PEP 8 指南。在大多数编辑器中,都可设置一个视觉标志——通常是一条竖线,让你知道不能越过的界线在什么地方。

4.2 注意事项

1)使用字符串时避免语法错误

  语法错误是一种时不时会遇到的错误。程序中包含非法的Python代码时,就会导致语法错误。例如,在用单引号括起的字符串中,如果包含撇号,就将导致错误。这是因为这会导致Python将第一个单引号和撇号之间的内容视为一个字符串,进而将余下的文本视为Python代码,从而引发错误。
  例如:

In [1]: message = 'One of Python's strengths is its diverse community.'
In [2]: print(message)
Out[2]:   File "C:/Users/Sussurro/Desktop/pythonProject/Test.py", line 1
            message = 'One of Python's strengths is its diverse community.'
                             ^
        SyntaxError: invalid syntax

2)使用列表时避免索引错误

  刚开始使用列表时,经常会遇到一种错误。假设你有一个包含三个元素的列表,却要求获取第四个元素,这将导致索引错误。索引错误意味着Python无法理解你指定的索引。程序发生索引错误时,请尝试将你指定的索引减1,然后再次运行程序,看看结果是否正确别忘了,每当需要访问最后一个列表元素时,都可使用索引-1 。这在任何情况下都行之有效,即便你最后一次访问列表后其长度发生了变化。
  例如:

In [1]: motorcycles = ['honda', 'yamaha', 'suzuki']
In [2]: print(motorcycles[3])
Out[2]: Traceback (most recent call last):
          File "C:/Users/Sussurro/Desktop/pythonProject/Test.py", line 2, in <module>
            print(motorcycles[3])
        IndexError: list index out of range

3)避免缩进错误

  Python根据缩进来判断代码行与前一个代码行的关系。Python通过使用缩进让代码更易读;简单地说,它要求你使用缩进让代码整洁而结构清晰。在较长的Python程序中,你将看到缩进程度各不相同的代码块,这让你对程序的组织结构有大致的认识。当你开始编写必须正确缩进的代码时,需要注意一些常见的缩进错误 。例如有时候,程序员会将不需要缩进的代码块缩进,而对于必须缩进的代码块却忘了缩进。通过查看这样的错误示例,有助于你以后避开它们,以及在它们出现在程序中时进行修复。
  例如:

In [1]: magicians = ['alice', 'david', 'carolina']
In [2]: for magician in magicians:
In [3]: print(magician)
Out[3]:   File "C:/Users/Sussurro/Desktop/pythonProject/Test.py", line 3
            print(magician)
                ^
        IndentationError: expected an indented block
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

-Sussurro-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值