Python3基础篇(一)——基础知识
Python3基础篇(一)——基础知识
前言:
阅读这篇文章我能学到什么?
这是一篇Python3编程的入门开篇文章,在这篇里讲了一些最基本的Python3语法知识。比如Python3的语句结束标志、如何写注释、对缩进的要求、标识符命名规则、Python3有哪些保留字(关键字)、语句的书写规则、import的用法。掌握了这些基础知识将会为后续进一步学习python语法打下重要基础。
1 语句结束标志
Python3与c/c++、java等传统主流语言不同, ;
号作为语句结束符一般可以被省略,因为python将换行也当作语句结束符号。
1 | a = 1 |
从上面的例子可以看出一行当中最后一个语句可以省略语句结束符;
,因为python把换行也当作语句结束符,而一行当中有多个语句时,除了最后一个语句,前面的语句不能省略 ;
。
2 如何写注释
Python3的注释和c/c++语言注释类似,有行注释和块注释两种。
2.1 行注释
1 | #行注释内容 |
在一行当中从左往后第一个#号之后的内容会被编译忽视。一些人喜欢#号后面加一个空格,这是一种松散的注释风格,另一些人喜欢紧凑的风格直接接注释内容,只是风格不同而已。
2.2 块注释
1 | '''块注释 |
块注释与行注释不同在于,行注释从#号开始作用到行末结束。块注释起始和结束标志都是'''
或"""
,中间的内容会被忽视。块注释可以插入到代码语句之间而行注释只能放在代码之后,当然块注释这样用是很不规范的。当块注释插入代码语句之间时,块注释后面需要加上语句结束符;
,否则会报错,这一点和c/c++的块注释不同。需要把 ` 字符当作普通字符时,别忘了加转义字符 \ 。
3 对缩进的要求
Python3的一大特色是使用缩进来表示代码块,而不再是{}
。换句话说python对缩进要求是严格的,改变缩进会影响到Python3程序的执行,缩进是Python3语法的一部分。
1 | if True: |
如果你学过c/c++语句会知道,一些关键词之后跟复合语句,if之后的代码块1就是if语法后跟的复合语句。代码块1的具体具体缩进数不强制,但是至少得比if缩进一个空格或table,不然语法报错。代码块2由一行内的三个单语句构成,他们是一个整体,第一句按照缩进属于哪个代码块那么同一行内的其他代码也属于那个代码块。代码块3与代码块2缩进数不同,所以代码块3不属于else的复合语句。
因为不需要{}
的特性,python的代码通常是比较紧凑的(想想c/c++层层嵌套时{}
会占用多少行)。
4 标识符命名规则
- 不能重复定义已经使用的python保留字(关键词)。
- 标识符由字母、数字和下划线组成,首个字符必须是字母或下划线。
- python对大小写敏感。
- 支持非ASCII字符,比如中文或日文等(没错,就是这么任性啊)。
1 | def 和(变量1, 变量2): |
这段代码用了中文作为作为变量和函数名,完全是合法的,大家可以在Python3中试试。
5 Python3有哪些保留字(关键字)
想查看Python3的保留字(关键字)可以如下操作:
1 | import keyword |
输出如下结论:
- [‘False’, ‘None’, ‘True’, ‘and’, ‘as’, ‘assert’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’, ‘elif’, ‘else’, ‘except’, ‘finally’, ‘for’, ‘from’, ‘global’, ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’, ‘nonlocal’, ‘not’, ‘or’, ‘pass’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’]
6 语句的书写规则
1 | a = 1 |
和c/c++语言一样,python也可以使用 \
将语句拆分成多行。
1 | Week = ["Monday", "Tuesday", "Wednesday", |
包含在[]
、{}
、()
中的语句不用加\
符号,如果你加了也不算语法错误。
7 import的用法
这里把几种基本用法进行简单介绍,后面会单独写一篇细讲Python3的导入模块和导入包的问题。
import用法有两种:
- import modulename [as othername]
1 | import module1 as m1 |
import接模块名表示要将某模块导入,可以一次接多个模块名(用,
分隔),当接一个模块名时可以继续使用as给该模块取别名,这样就可以使用别名来对模块进行操作。
- from modulename import membername [as othername]
1 | from module1 import variable1 |
可以指定要导入模块的哪些变量、函数、类。*
表示导入该模块所有变量、函数、类,不推荐这种写法,会导致命名重复而发生覆盖,出现不易发现的错误。