Python笔记(一):基础知识

本文着重于Python基础知识的梳理,并没有涉及Python环境的搭建、具体使用方法和技巧。

0x00. Python简介

Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。

——摘自廖雪峰的Python教程

Python的特点

Python is powerful... and fast;

plays well with others;

runs everywhere;

is friendly & easy to learn;

is Open.

——摘自Python官网

Python的设计原则

Python的设计哲学是“优雅”、“明确”、“简单”。

简单:源码可以直接运行,就算没有任何编程基础的同学,在配置好Python环境以后都可以轻松打印出大名鼎鼎的Hello World!(只需一行代码)

# Python 3.x
print('Hello World!')
# Python 2.x
print 'Hello World!'

明确:There should be one-- and preferably only one --obvious way to do it. 用一种方法,最好是只有一种方法来做一件事。

优雅: Python没有使用花括号{}作为语句块的划分界限,而是使用了严格的字符缩进(一般4个字符),这使得代码更易于阅读和维护。

Python的进化史

--1989: 诞生

--1991: 第一个发行版本

--2011: 被TIOBE编程语言排行榜评为2010年度语言。

0x01. 为什么选择Python

在学习Python之前一直使用Java语言,接触Python语言给我的第一感觉就是语法简洁,不需要复杂的类和函数声明,一行代码就是一个完整可运行的程序。

另外,由于Python语言可读性强,即使没有编程基础的人也能比较容易读懂Python代码,e.g:

>>> print('True' if True else 'False')
True

“龟叔”将Python作为ABC语言的一种继承,他认为ABC语言虽然非常优美且强大,但是没有获得成功的主要原因是非开放造成的。所以Python从设计之处就是开放源代码的,这也为Python以后的发展奠定了基础。

很多Python爱好者基于Python语言开发了大量优秀且高质量的扩展库,使得Python语言在各个领域都有很好的表现,尤其是在科学计算,图形处理,文本处理,网络编程等方面。

以下是一些Python中优秀的扩展:

Numpy:提供大量标准数学库的接口

PIL:使我们能够方便进行图形处理

Pillow:能用在Python3.x版本的PIL库的继承与扩展

Tkinter:能用来创建简单图形化界面

PyOpenGL:封装了OpenGL应用程序编程接口,能进行二维和三维图形处理

Flask:轻量级的web框架,能快速搭建基于SGI的web服务

0x02. Python的基本使用

了解了Python的基本情况,既然Python那么优秀,一定要了解一下Python的用法咯。

python数据类型

数据类型 描述 例子 备注
bytes 一个由字节组成的不可更改的有串行 b'Hello World!'
str 字符串类型 'Hello World!'
"Hello World!"
"""一般做文档注释"""
'''Hello World!'''
r'Hello \n World!'
在字符串前面加r,则字符串中的 \ 不转义
list 列表 [22, 'hello', 'male']
tuple 元组,元素初始化时就被固定,不可更改 (1, '3', 5) 当元组中只有一个元素时,该元素后面要加,
e.g:(1,)
�dict 字典,以键值对形式出现 {'name':'lovexiaov', 'age':25} 只能是不可变类型对象
set 不包含重复元素的集合 {1, 'hello', (1, 2)} 一个set中各元素的类型可以不同
int 精度不限的整数 3,-5 python 没有short、long类型
float 浮点数,精度与系统有关 3.14,-0.02,2.2e3
bool 逻辑值,只有两个值 True,False
complex 复数 3.2+4j
NoneType 空值,只有一个值 NoneType 不是null

Python语法

如上面提到的,Python的语法足够简洁,下面是常用的语法:

a) 方法定义: 使用def关键字定义方法:

def fun():

b) 类定义: 使用class关键字定义类:

class MyClass():

c) 代码块管理: 使用4个字符的缩进管理代码块:

def say_hello():
    print('Hello World!')
print('out of function say_hello()')

d) 模块导入: 使用from, import, as关键字导入模块,有以下几种形式:

import os
import os.path as pt
from os import *
from os import path as pt

分支与循环

a) 分支if...elseif...elif...else

# if...else
age = 16
if age > 18:
    print('you can drunk now')
else:
    print('you are too yong to drunk')
    
# if...elif...else
score = 89
if score < 60:
    print('oh, no~~~')
elif score < 75:
    print('you must study hard!')
elif score < 90:
    print('you performed well')
else:
    print('shit, that is so good')

b) 循环: whilefor...in

# while loop
while True:
    print('dead loop')

# for...in loop

for i in range(5):
    print('i is %d' % i)

异常处理

俗话说,写代码,三分写,七分调,写代码的过程中不出bug是几乎不可能的事情,出错其实并不可怕,每一个bug对我们来说都是一种经验的积累(废话真多~)。

下面我们看一下在Python中怎么处理异常。

a) try...except...finally

如果遇到我们自己能够处理的错误,那我们就把它直接处理掉:

try:
    result = 10 / 0
except ZeroDivisionError as err:
    print('division by zero')
finally:
    print('do what must do whether there is an error or not')

b) raise

有些问题,就算我们知道了也没有能力去解决,那么此时就应该把问题抛给上层解决:

try:
    result = 10 / 0
except ZeroDivisionError as err:
    print('division by zero')
    raise
finally:
    print('finally...')

在上面的代码中,虽然我们捕获到了异常,但是我们在记录下异常信息后就将该异常通过raise关键字原封不动的抛给了上层去处理。

今天的分享到此结束,下面的文章会总结Python中的一些高级特性,主要有如下几点:

高阶函数

面向对象编程

内置函数

常用标准库

...

0x03. 参考链接

·Python官网

·Python百度百科

·廖雪峰的Python教程

·Python中文学习大本营

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

推荐阅读更多精彩内容

  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    aimaile阅读 26,454评论 6 428
  • 前言 Python的创始人为Guido van Rossum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打...
    依依玖玥阅读 3,565评论 6 37
  • GitHub 上有一个 Awesome - XXX 系列的资源整理,资源非常丰富,涉及面非常广。awesome-p...
    若与阅读 18,630评论 4 418
  • 环境管理管理Python版本和环境的工具。p–非常简单的交互式python版本管理工具。pyenv–简单的Pyth...
    MrHamster阅读 3,790评论 1 61
  • 张爱玲的一句“出名要趁早”不知点醒了多少人,也不知误导了多少人。这是我在读《倾城之恋》之前对她唯一的了解。我知她命...
    不覚阅读 1,605评论 0 1