python语言笔记

原创 2018年04月16日 20:26:14

Python 基础

Python 的语法比较简单,采用缩进方式,写出来的代码就像下面的样子:

 

# print absolute value of an integer:

a = 100

if a >= 0:    

    print(a)

else:   

    print(-a)

以#开头的语句是注释,注释是给人看的,可以是任意内容,解释器会

忽略掉注释。其他每一行都是一个语句,当语句以冒号:结尾时,缩进

的语句视为代码块。

 

*(tab)4个空格

*Python 程序是大小写敏感的,如果写错了大小写,程序会报错。

 

 数据类型和变量

数据类型

整数

浮点数

字符串

''或""本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'只有 a,b,c 这 3 个字符。如果'本身也是一个字符,那就可以用""括起来,比如"I'm OK"包含的字符是 I,',m,空格,O,K这 6 个字符。

 如果字符串内部既包含'又包含"可以用转义字符\来标识,比如:

'I\'m \"OK\"!'

表示的字符串内容是:

I'm "OK"!

原理{

>>> print(' \' ')

'

>>> print('\\\n\\')

\

\  }

如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,

Python 还允许用 r' '表示' '内部的字符串默认不转义:

>>> print('\\\t\\')

\       \

>>> print(r'\\\t\\')

\\\t\\

 

如果字符串内部有很多换行,用\n 写在一行里不好阅读,为了简化,

Python 允许用'''...'''的格式表示多行内容:

>>> print('''line1

... line2

... line3''')

line1

line2

line3

>>> exit()

 

上面是在交互式命令行内输入,注意在输入多行内容时,提示符由>>>变为...,提示你可以接着上一行输入。如果写成程序,就是: print('''line1line2 line3''')

C:\Users\Mis YuT>cd desktop

C:\Users\Mis YuT\Desktop>yy.py

line1

line2

line3

 

多行字符串'''...'''还可以在前面加上 r 使用,如下:

          

C:\Users\Mis YuT\Desktop>t.py

\nline1

\n\nline2

line3

 

 

布尔值

一个布尔值只有 True、False 两种值,要么是 True,要么是 False,在Python 中,可以直接用 True、False表示布尔值:

>>> True

True

>>> False

False

>>> 3>2

True

>>> 3>5

False

布尔值可以用 and、or 和 not 运算

1、 and 运算是与运算,只有所有都为 True,and 运算结果才是 True

2、 or 运算是或运算,只要其中有一个为 True,or 运算结果就是 True

3、 not 运算是非运算,它是一个单目运算符,把 True 变成 False,False 变成 True

 

eg:

>>> True or True

True

>>> True or False

True

>>> False or False

False

>>> 5 > 3 or 1 > 3

True

>>> 3 > 5 or 1 > 3

False

>>> True and False

False

>>> not True

False

>>> not 1 > 3

True

 

空值

空值是 Python 里一个特殊的值,用 None 表示。None 不能理解为0,因

为 0 是有意义的,而 None 是一个特殊的空值

 

变量

是在计算机程序中,变量不仅可以是数字,还可以是任意数据类型。变量在程序中就是用一个变量名表示了,变量名必须是大小写英文、数字和_的组合,且不能用数字开头

 

当我们写: a = 'ABC' 时,Python解释器干了两件事情:

1. 在内存中创建了一个'ABC'的字符串;

2. 在内存中创建了一个名为 a 的变量,并把它指向'ABC'。

 

*注意:与c语言一样,按照顺序做每一步。

 

 

练习

请打印出以下变量的值:

n = 123

f = 456.789

s1 = 'Hello, world'

s2 = 'Hello, \'Adam\''

s3 = r'Hello,"Bart"'

s4 = r'''Hello, Lisa!'''

 

>>> print('n = 123')

n = 123

>>> print('f = 456.789')

f = 456.789

>>> print('s1 = \'Hello, world\'')

s1 = 'Hello, world'

>>> print('s2=\'Hello,\\\'Adam\\\'')

s2 ='Hello,\'Adam\'

>>> print('r\'Hello,\"Bart\"')

r'Hello, "Bart"

>>>print('r\'\'\'Hello,\nLisa!\'\'\'')

r'''Hello,

Lisa!'''

 

 

字符串和编码

字符编码

Unicode 标准也在不断发展,但最常用的是用两个字节表示一个字符(如

果要用到非常偏僻的字符,就需要 4 个字节)。

Python 的字符串

对于单个字符的编码,Python 提供了 ord()函数获取字符的整数表示,

chr()函数把编码转换为对应的字符:

>>> ord('A')

65

>>> ord('中')

20013

>>> chr(66)

'B'

>>> chr(25991)

'文'

 

如果知道字符的整数编码,还可以用十六进制这么写 str:

>>> '\u4e2d\u6587'

'中文'

两种写法完全等价

 

>>> 'ABC'.encode('ascii')

b'ABC'

>>> '中文'.encode('utf-8')

b'\xe4\xb8\xad\xe6\x96\x87'

>>> '中文'.encode('ascii')

Traceback (most recent call last):

File"<stdin>", line 1, in <module>

UnicodeEncodeError: 'ascii' codec can't encode characters inposition 0-1: ordinal not in range(128)

 

由于 Python 的字符串类型是str,在内存中以 Unicode 表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把str 变为以字节为单位的 bytes。

Python 对 bytes 类型的数据用带 b 前缀的单引号或双引号表示:

x = b'ABC'

要注意区分'ABC'和 b'ABC',前者是 str,后者虽然内容显示得和前者一样,但 bytes 的每个字符都只占用一个字节。

以 Unicode表示的 str 通过 encode()方法可以编码为指定的 bytes,例如:

>>> 'ABC'.encode('ascii')

b'ABC'

>>> '中文'.encode('utf-8')

b'\xe4\xb8\xad\xe6\x96\x87'

>>> '中文'.encode('ascii')

Traceback (most recent call last):

File"<stdin>", line 1, in <module>

UnicodeEncodeError: 'ascii' codec can't encode characters inposition 0-1: ordinal not in range(128)

纯英文的 str 可以用 ASCII 编码为 bytes,内容是一样的,含有中文的 str可以用 UTF-8 编码为 bytes。含有中文的 str 无法用 ASCII 编码,因为中文编码的范围超过了 ASCII 编码的范围,Python 会报错。

 

在 bytes 中,无法显示为ASCII 字符的字节,用\x##显示。

 

反过来,如果我们从网络或磁盘上读取了字节流,那么读到的数据就是bytes。要把 bytes 变为 str,就需要用decode()方法:

>>> b'ABC'.decode('ascii')

'ABC'

>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')

'中文'


要计算 str 包含多少个字符,可以用len()函数:

>>> len('ABCD')

4

20小时掌握Python语言

用最短的时间,最有趣的案例,最黄最暴力的方式,带你掌握Python语言
  • 2018年02月06日 18:54

《数据结构与算法——Python语言描述》笔记(5)

第2章 抽象数据类型和python类2.3 类的定义和使用对于类定义和方法定义等机制,有以下几点说明:执行完一个类定义,从而创建了相应的类对象后,还可以通过属性赋值的放啊为这个类(对象)增加新属性。不...
  • zhang669154
  • zhang669154
  • 2018-02-27 22:58:16
  • 185

数据结构与算法:python语言描述学习笔记Part2

第二章:抽象数据类型和python类2.1 抽象数据类型抽象数据类型(Abstract Data Type,ADT)是一种思想和方法,用于设计和实现程序模块,ADT的基本思想是抽象抽象的思想:计算层面...
  • dmbjzhh
  • dmbjzhh
  • 2018-03-04 19:49:16
  • 85

数据挖掘入门与实战笔记

  • 2017年05月27日 18:23
  • 23KB
  • 下载

OpenCV3计算机视觉Python语言实现(三):使用OpenCV3处理图像

3.1 不同色彩空间的转换 3.2 傅里叶变换 3.2.1 高通滤波器 HPF 3.2.2 低通滤波器 LPF 3.3 创建模块 3.4 边缘检测 3.5 用定制内核做卷积 3.6 修改应用 3.7...
  • u011771047
  • u011771047
  • 2017-07-18 23:35:57
  • 531

使用markdown语法书写python笔记

使用markdown语法书写python笔记,这个值得学习,对于我自己来说,可以训练自己把markdown的语法熟悉一下,还可以巩固自己的python基础知识的学习 Python3 基础语法 编...
  • zhuangailing
  • zhuangailing
  • 2018-02-17 23:24:41
  • 138

《Web接口开发与自动化测试(基于Python语言)》读书笔记(一)

之前看了虫师的《Selenium2自动化测试》,觉得简单易懂,适合入门,所以很快入手了刚上架的本书,然而,翻看了下目录,发现和我的期望不是太相符(价格有点虚高了),不过这里还是做下简单的记录。 书中...
  • xionghuixionghui
  • xionghuixionghui
  • 2017-04-17 21:26:39
  • 4534

Python语言进阶

  • 2009年05月04日 09:47
  • 270KB
  • 下载

Python语言入门.pdf

  • 2007年08月10日 11:19
  • 8.17MB
  • 下载
收藏助手
不良信息举报
您举报文章:python语言笔记
举报原因:
原因补充:

(最多只允许输入30个字)