【连载】《零基础学Python》笔记(一)

摘要:《零基础学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的强大之处就在于有庞大的官方模块库和非官方的库供我们使用。模块实际上是他人写下的用来解决一类问题的函数的集合,方便其他人在遇到同样或相似问题时直接使用或稍作修改就能直接使用。

在程序中需要调用标准库或其他第三方库的类,需要先使用importfrom...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更倾向于使用换行符作为每条语句的分隔

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,589评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,615评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,933评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,976评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,999评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,775评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,474评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,359评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,854评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,007评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,146评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,826评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,484评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,029评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,153评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,420评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,107评论 2 356