初学Python Ⅰ

序章

简要说明

初学Python。

还未购入相关书籍,主要通过 廖雪峰的官方网站 学习。

版本 Python 3.5 。

第一个程序

1
>>> print('hello, world')

Py2 的输出print之后的括号可加可不加,Py3 就强制要加了。

Python 基础

数据类型和变量

整型

我看到了这么一句话:

Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样。

看到之后很好奇这任意大小是多少,据说是Python支持大数,所以可以无限大?

先留个空等待论证。

浮点型

浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示。

复数

复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。

1
2
3
4
5
>>> c = 2 - 3j
>>> c.real
2.0
>>> c.imag
-3.0
1
2
3
4
5
>>> c = complex(4,-5)
>>> c.real
4.0
>>> c.imag
-5.0

字符串

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

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

输出的结果为:

1
I'm "OK"!

如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Python还允许用r''表示''内部的字符串默认不转义:

1
2
3
4
>>> print('\\\t\\')
\ \
>>> print(r'\\\t\\')
\\\t\\

如果字符串内部有很多换行,用\n写在一行里不好阅读,为了简化,Python允许用'''...'''的格式表示多行内容,可以试试:

1
2
3
4
5
6
>>> print('''line1
... line2
... line3''')
line1
line2
line3

当然,'''...''' 的前面也可以加上r

布尔值

注意大小写:True False

空值

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

变量

Python是动态语言,意味着同一个变量可以反复赋值为不同类型的数据,例如:

1
2
3
4
5
6
7
>>> a = 'hello'
>>> b = 123
>>> print(a)
hello
>>> a = b
>>> print(a)
123

常量

在Python中,通常用全部大写的变量名表示常量。

有两种除法:/// (也叫地板除)

/ 的结果为浮点数。

// 的结果为整数(只保留整数部分)

字符串和编码

Python的字符串

chr() 函数:括号内是一个[0, 256) 的数字(可以十进制/十六进制),将ASCII码转化成对应字符。

unichr() 函数:功能同上,返回Unicode字符。

ord() 函数:括号内是字符,返回十进制整数。例如 ord(‘a’) = 97

hex() 函数:将一个整数转换为一个十六进制字符串

oct() 函数:将一个整数转换为一个八进制字符串

encode() 函数:str -> bytes

decode() 函数:bytes -> str

1
2
3
4
5
6
>>> s = "你好"
>>> b = s.encode('utf-8')
>>> b
b'\xe4\xbd\xa0\xe5\xa5\xbd'
>>> b.decode('utf-8')
'你好'

各种编码我其实弄不太懂,据说在爬一些网页的时候有作用,之后遇到再详细学习吧。

由于Python源代码也是一个文本文件,所以,当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为UTF-8编码。当Python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行:

1
2
3
> #!/usr/bin/env python3
> # -*- coding: utf-8 -*-
>

>

第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;

第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。

申明了UTF-8编码并不意味着你的.py文件就是UTF-8编码的,必须并且要确保文本编辑器正在使用UTF-8 without BOM编码:

输出小技巧

1
2
3
4
>>> a = 123
>>> b = 4567
>>> print(a,b,sep=',')
123,4567

sep这个参数可以控制分隔,改成'\n'可以换行,改成'' 表示无分隔。

在Python中,采用的格式化方式和C语言是一致的,用%实现,举例如下:

1
2
3
4
>>> 'Hello, %s' % 'world'
'Hello, world'
>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
'Hi, Michael, you have $1000000.'

常用占位符:

占位符 类型
%f 浮点数
%d 整数
%s 字符串
%x 十六进制整数

具体操作跟C语言十分相似。

参考资料

廖雪峰的官方网站