摘要:《零基础学Python》一书的学习记录,学习笔记。
写在前面的话:暑假过去一半了,辗转在Java视频学习与书籍之间,没有状态,而自己对于Python的掌握像是没有做熟的生饭,说会也不精通,说不会却也写过些许脚本,借着这本《零基础学Python》(张志强 张越等编著)来过一遍,目标是真正会写,摆脱首鼠两端良久也写不出几行来的尴尬境地。再说一下本书,这本书豆瓣评分7.7,名为“零基础”但并非零基础,需要有一定的语言基础,我所看重的则是本书的全面性。
篇一 Python语言基础
关于Python的由来、优势、搭建Python开发环境等毋须再谈,从Python的语法讲起。(关于环境配置与开发环境搭建还是很必要的,但是类似的教程有很多,也许以后会写一篇)
Python基础语法
Python文件类型
Python的文件类型分为三种分别是:源代码、字节代码、优化代码。都可以直接运行,不需要编译或者链接。
- 源代码
源代码以py拓展名结尾,可在控制台下运行,可以直接使用文本编辑工具打开和修改。
- 字节代码
Python源文件编译后生成pyc后缀的文件,pyc是编译过的字节文件,不可以使用文本编辑工具打开或修改。pyc文件是与平台无关的;py文件直接运行后可以得到pyc类型的文件,或通过脚本生成这种类型的文件,如下面的脚本可以将hello.py
编译成hello.pyc
import py_compile
py_compile.compile('hello.py')
- 优化代码
拓展名为pyo
,是经过优化的源文件,pyo类型的文件需要用命令行工具生成;同样不可以使用文本编辑工具打开或修改。例如下面把hello.py
编译成hello.pyo
python -O -m py_compile hello.py
-O 表示生成优化代码;-m表示把导入的py_compile模块作为脚本运行;编译hello.pyo需要调用py_compile模块的compile()方法
Python编码规范
命名规范
变量名、包名、模块名通常采用小写,可以使用下划线
类名首字母大写,对象名采用小写
类的属性和方法名以对象作为前缀,类的私有变量、私有方法以两个下划线为前缀
函数名通常采用小写,并用下划线或单词首字母大写的方式增加可读性,导入的函数以模块名为前缀。
变量、函数命名时也可以采用国际通用的“匈牙利命名法”和“驼峰式命名法”。匈牙利命名法,变量首字母大写,并用变量的类型的缩写(一两个字母)作为前缀。匈牙利命名法分为两种,系统匈牙利命名法和匈牙利应用命名法,区别就在于前缀的目的,系统匈牙利命名法的前缀表示了变量的数据类型,匈牙利应用命名法前缀给出变量目的的提示。驼峰式命名法可以意会,就像getStudentNumber
,可以直接了当得明白变量的作用,通常首字母小写。
代码缩进与冒号
代码缩进是指通过在每行前输入空格或制表符的方式,表示每行代码之间的层次关系。采用缩进的代码风格有利于提高可读性,并且美观;而对于Python而言,缩进也是一种语法。
以C语言为例,实际上很多语言也是如此,采用花括号括起表示一个代码块,函数体、循环体、判断执行语句块等广泛使用,在Python中没有花括号或begin...end...来分隔代码块,使用缩进来表示代码的层次。例如:
在C中:
void sum(void)
{
int p1=1;
int p2=99;
int p3;
if(p1>p2)
{
p3 = p1;
p1 = p2;
p2 = p3;
}
else
{
p3 = p1 +p2;
printf("p3=%d",p3);
}
}
在Python中实现同样的功能:
def sum():
p1 = 1
p2 = 99
if(p1>p2):
p3 = p1
p1 =p2
p2 = p3
else
p3 = p1 + p2
print("p3="+p3)
可以看出缩进对于Python至关重要,于此同时,Python对于缩进的要求也非常严格,程序中若采用错误的缩进风格,将会产生IndentationError
的错误。同时,要注意的是在不同的代码编辑器中的TAB缩进有可能会不同,Python不关心缩进究竟是4个空格还是8个空格,重要的是要在一篇代码的前后文保持一致,最好使用四个空格的缩进。
模块导入的规范
模块是函数的集合,用来处理一类问题。
Python的强大之处就在于有庞大的官方模块库和非官方的库供我们使用。模块实际上是他人写下的用来解决一类问题的函数的集合,方便其他人在遇到同样或相似问题时直接使用或稍作修改就能直接使用。
在程序中需要调用标准库或其他第三方库的类,需要先使用import
或from...import
语句导入相关的模块。
例如:
import sys
print (sys.path)
print (sys.argv)
sys是Python内置的模块,两句print将分别打印Python环境下的查找路径的集合,和打印存储输入参数的列表,默认情况下,argv自带的参数是文件名。
使用from...import...语句如下:
from sys import path
from sys import argv
print (path)
print (argv)
可以看出的不同之处在于,第二种方法可以直接调用函数,不需要使用模块加点的形式调用。
第一种方式直接将模块导入,第二种凡是只导入模块中的特定函数;在程序不太复杂的时候,明显使用第二种方法更加的方便简捷,但是当一个程序相对复杂,需要调用多个模块时,不同的模块可能出现相同名称的函数而起冲突,因此更加推荐第一种方式。
使用空行分隔代码
函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数的入口之间也用一行空行分隔,突出函数入口的开始。空行并不像缩进一样属于Python的语法,就算没有也并不会引起Python解释器报错,主要是增强代码的可读性,便于日后维护。
使用正确的注释
Python中的单行注释使用井号(#),整段注释采用是哪个连用的双引号标志开始和结尾。
特殊注释:
# -*- coding: utf-8 -*-
当我们在代码中出现中文时(注释),需要在文件的最前面加上此行。
#! /usr/bin/python
跨平台注释;在Linux、Unix等平台上时,需要此行来指出解释器的路径。
正确地分隔语句
在C、C++、Java等语言中每一句的结束,需要使用分号,Python毋须使用分号来作为语句的结束标志,但Python同样支持例如下面两条语句是等价的。
print ("Hello world!")
print ("Hello world!");
但是当多条语句写进同一行时,则必须使用分号来分隔;Python也同样支持多行写一条语句,使用反斜杠\
作为换行符。
分号并不是Python推荐使用的符号,Python更倾向于使用换行符作为每条语句的分隔