Python3 基础语法

1.1.编码

默 认 情 况 下 , Python 3 源 码 文 件 以 UTF-8 编 码 , 所 有 字 符 串 都 是 unicode 字 符 串 。 当 然 你 也 可
以 为 源 码 文 件 指 定 不 同 的 编 码 :

# -*- coding: cp-1252 -*-

1.2.标识符
第 一 个 字 符 必 须 是 字 母 表 中 字 母 或 下 划 线 '_'。
标 识 符 的 其 他 的 部 分 有 字 母 、 数 字 和 下 划 线 组 成 。
标 识 符 对 大 小 写 敏 感 。

 

在 Python 3 中 , 非 -ASCII 标 识 符 也 是 允 许 的 了 。

1.3.python 保留字
保 留 字 即 关 键 字 , 我 们 不 能 把 它 们 用 作 任 何 标 识 符 名 称 。 Python 的 标 准 库 提 供 了 一 个 keyword
module, 可 以 输 出 当 前 版 本 的 所 有 关 键 字 :
>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del',
'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is',
'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with',

 

 

'yield']

 

 

1.4.注释
Python 中 单 行 注 释 以 # 开 头 , 实 例 如 下 :

 

#!/usr/bin/python3
# 第 一 个 注 释
print ("Hello, Python!") # 第 二 个 注 释

执 行 以 上 代 码 , 输 出 结 果 为 :

 

Hello, Python!

多 行 注 释 可 以 用 多 个 # 号 :

 

#!/usr/bin/python3
# 第 一 个 注 释
# 第 二 个 注 释
print ("Hello, Python!")

执 行 以 上 代 码 , 输 出 结 果 为 :

Hello, Python!

1.5.行与缩进
python 最 具 特 色 的 就 是 使 用 缩 进 来 表 示 代 码 块 , 不 需 要 使 用 大 括 号 ({})。
缩 进 的 空 格 数 是 可 变 的 , 但 是 同 一 个 代 码 块 的 语 句 必 须 包 含 相 同 的 缩 进 空 格 数 。 实 例 如 下 

    
if True:
    print ("True")
else:
    print ("False")

 

以 下 代 码 最 后 一 行 语 句 缩 进 数 的 空 格 数 不 一 致 , 会 导 致 运 行 错 误 :

 

if True:
    print ("Answer")
    print ("True")
else:
    print ("Answer")

 print ("False") # 缩 进 不 一 致 , 会 导 致 运 行 错 误

 

以 上 程 序 由 于 缩 进 不 一 致 , 执 行 后 会 出 现 类 似 以 下 错 误 :

 

File "test.py", line 6

print("False")    #缩进不一致,会导致运行错误。


IndentationError: unindent does not match any outer indentation level

1.6.多行语句
Python 通 常 是 一 行 写 完 一 条 语 句 , 但 如 果 语 句 很 长 , 我 们 可 以 使 用 反 斜 杠 (\)来 实 现 多 行 语 句 , 例
如 :

 

total = item_one + \
item_two + \
item_three

在 [], {}, 或 () 中 的 多 行 语 句 , 不 需 要 使 用 反 斜 杠 (\), 例 如 :

 

 

 

total = ['item_one', 'item_two', 'item_three',

'item_four', 'item_five']

1.7.数据类型
python 中 数 有 四 种 类 型 : 整 数 、 长 整 数 、 浮 点 数 和 复 数 。
整 数 , 如 1
长 整 数 是 比 较 大 的 整 数
浮 点 数 如 1.23、 3E-2

 

复 数 如 1 + 2j、 1.1 + 2.2j

1.8.字符串
python 中 单 引 号 和 双 引 号 使 用 完 全 相 同 。
使 用 三 引 号 ('''或 """)可 以 指 定 一 个 多 行 字 符 串 。
转 义 符 '\'
自 然 字 符 串 , 通 过 在 字 符 串 前 加 r 或 R。 如 r"this is a line with \n" 则 \n 会 显 示 , 并 不 是
换 行 。 python 允 许 处 理 unicode 字 符 串 , 加 前 缀 u 或 U, 如 u"this is an unicode string"。 字
符 串 是 不 可 变 的 。 按 字 面 意 义 级 联 字 符 串 , 如 "this " "is " "string" 会 被 自 动 转 换 为 this is
string。
word = '字 符 串 '
sentence = "这 是 一 个 句 子 。 "
paragraph = """这 是 一 个 段 落 ,

 

 

可 以 由 多 行 组 成 """

1.9.空行
    函 数 之 间 或 类 的 方 法 之 间 用 空 行 分 隔 , 表 示 一 段 新 的 代 码 的 开 始 。 类 和 函 数 入 口 之 间 也 用 一 行 空 行分 隔 , 以 突 出 函 数 入 口 的 开 始 。
    空 行 与 代 码 缩 进 不 同 , 空 行 并 不 是 Python 语 法 的 一 部 分 。 书 写 时 不 插 入 空 行 , Python 解 释 器 运 行也 不 会 出 错 。 但 是 空 行 的 作 用 在 于 分 隔 两 段 不 同 功 能 或 含 义 的 代 码 , 便 于 日 后 代 码 的 维 护 或 重 构 。

 

 

    记 住 : 空 行 也 是 程 序 代 码 的 一 部 分 。

1.10. 等待用户输入
执 行 下 面 的 程 序 在 按 回 车 键 后 就 会 等 待 用 户 输 入 :

 

 

#!/usr/bin/python3
input("\n\n 按 下 enter 键 后 退 出 。 ")

以 上 代 码 中 , "\n\n"在 结 果 输 出 前 会 输 出 两 个 新 的 空 行 。 一 旦 用 户 按 下 键 时 , 程 序 将 退 出 。

1.11. 同一行显示多条语句
Python 可 以 在 同 一 行 中 使 用 多 条 语 句 , 语 句 之 间 使 用 分 号 (;)分 割 , 以 下 是 一 个 简 单 的 实 例 :

 

#!/usr/bin/python3
import sys; x = 'runoob'; sys.stdout.write(x + '\n')

执 行 以 上 代 码 , 输 入 结 果 为 :

 

$ python3 test.py
runoob

1.12. 多个语句构成代码组
    缩 进 相 同 的 一 组 语 句 构 成 一 个 代 码 块 , 我 们 称 之 代 码 组 。
    像 if、 while、 def 和 class 这 样 的 复 合 语 句 , 首 行 以 关 键 字 开 始 , 以 冒 号 ( : )结 束 , 该 行 之 后 的
一 行 或 多 行 代 码 构 成 代 码 组 。
我 们 将 首 行 及 后 面 的 代 码 组 称 为 一 个 子 句 (clause)。
如 下 实 例 :

 

if expression :
    suite
elif expression :
    suite
else :
    suite

1.13. 命令行参数
很 多 程 序 可 以 执 行 一 些 操 作 来 查 看 一 些 基 本 信 , Python 可 以 使 用 -h 参 数 查 看 各 参 数 帮 助 信 息 :
$ python -h
usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ...
Options and arguments (and corresponding environment variables):
-c cmd : program passed in as string (terminates option list)
-d : debug output from parser (also PYTHONDEBUG=x)
-E : ignore environment variables (such as PYTHONPATH)
-h : print this help message and exit

我 们 在 使 用 脚 本 形 式 执 行 Python 时 , 可 以 接 收 命 令 行 输 入 的 参 数 , 具 体 使 用 可 以 参 照 Python 3 命
令 行 参 数 。

2. Python3 基本数据类型
Python 中 的 变 量 不 需 要 声 明 。 每 个 变 量 在 使 用 前 都 必 须 赋 值 , 变 量 赋 值 以 后 该 变 量 才 会 被 创 建 。 在
Python 中 , 变 量 就 是 变 量 , 它 没 有 类 型 , 我 们 所 说 的 "类 型 "是 变 量 所 指 的 内 存 中 对 象 的 类 型 。
等 号 (=) 用 来 给 变 量 赋 值 。 等 号 (=) 运 算 符 左 边 是 一 个 变 量 名 ,等 号 (=) 运 算 符 右 边 是 存 储 在 变
量 中 的 值 。 例 如 :

 

counter	=100	#	整 型 变 量
miles=1000.0	#	浮 点 型 变 量
name="runoob"	#	字 符 串
print(counter)
print(miles)
print(name)

执 行 以 上 程 序 会 输 出 如 下 结 果 :

 

100
1000.0
runoob

2.1.多个变量赋值
Python 允 许 你 同 时 为 多 个 变 量 赋 值 。 例 如 :
    a = b = c = 1
以 上 实 例 , 创 建 一 个 整 型 对 象 , 值 为 1, 三 个 变 量 被 分 配 到 相 同 的 内 存 空 间 上 。
您 也 可 以 为 多 个 对 象 指 定 多 个 变 量 。 例 如 :
    a, b, c = 1, 2, "runoob"

 

以 上 实 例 , 两 个 整 型 对 象 1 和 2 的 分 配 给 变 量 a 和 b, 字 符 串 对 象 "runoob" 分 配 给 变 量 c。

2.2.标准数据类型
Python3 中 有 六 个 标 准 的 数 据 类 型 :
    Number(数 字 ) String(字 符 串 ) List(列 表 )
    Tuple(元 组 ) Sets(集 合 ) Dictionary(字 典 )

2.2.1.Number(数字)

 

 

    Python3 支 持 int、 float、 bool、 complex(复 数 ) 。

在 Python 3 里 , 只 有 一 种 整 数 类 型 int, 表 示 为 长 整 型 , 没 有 python2 中 的 Long。
像 大 多 数 语 言 一 样 , 数 值 类 型 的 赋 值 和 计 算 都 是 很 直 观 的 。
第 6 页 共 117 页
内 置 的 type()函 数 可 以 用 来 查 询 变 量 所 指 的 对 象 类 型 。

 

 

 >>> a, b, c, d = 20, 5.5, True, 4+3j
 >>> print(type(a), type(b), type(c), type(d))
 <class 'int'> <class 'float'> <class 'bool'> <class 'complex'>

注 意 : 在 Python2 中 是 没 有 布 尔 型 的 , 它 用 数 字 0 表 示 False, 用 1 表 示 True。 到 Python3 中 , 把
True 和 False 定 义 成 关 键 字 了 , 但 它 们 的 值 还 是 1 和 0, 它 们 可 以 和 数 字 相 加 。
当 你 指 定 一 个 值 时 , Number 对 象 就 会 被 创 建 :

 

 

var1 = 1
var2 = 10

您 也 可 以 使 用 del 语 句 删 除 一 些 对 象 引 用 。
del 语 句 的 语 法 是 :

 

 

del var1[,var2[,var3[....,varN]]]]

您 可 以 通 过 使 用 del 语 句 删 除 单 个 或 多 个 对 象 。 例 如 :

 

del var
del var_a, var_b

数 值 运 算

 

>>> 5 + 4 # 加 法
9 >
>> 4.3 - 2 # 减 法
2.3
>>> 3 * 7 # 乘 法
21
>>> 2 / 4 # 除 法 , 得 到 一 个 浮 点 数
0.5
>>> 2 // 4 # 除 法 , 得 到 一 个 整 数
0 >
>> 17 % 3 # 取 余
2 >
>> 2 ** 5 # 乘 方
32

注 意 :
1、 Python 可 以 同 时 为 多 个 变 量 赋 值 , 如 a, b = 1, 2。
2、 一 个 变 量 可 以 通 过 赋 值 指 向 不 同 类 型 的 对 象 。
3、 数 值 的 除 法 (/) 总 是 返 回 一 个 浮 点 数 , 要 获 取 整 数 使 用 //操 作 符 。

 

4、 在 混 合 计 算 时 , Python 会 把 整 型 转 换 成 为 浮 点 数 。

数 值 类 型 实 例
Python 还 支 持 复 数 , 复 数 由 实 数 部 分 和 虚 数 部 分 构 成 , 可 以 用 a + bj,或 者 complex(a,b)表 示 , 复

 

 

数 的 实 部 a 和 虚 部 b 都 是 浮 点 型

2.2.2.String(字符串)
    Python 中 的 字 符 串 用 单 引 号 (')或 双 引 号 (")括 起 来 , 同 时 使 用 反 斜 杠 (\)转 义 特 殊 字 符 。 字 符 串 的
截 取 的 语 法 格 式 如 下 :
  

 

  变 量 [头 下 标 :尾 下 标 ]

索 引 值 以 0 为 开 始 值 , -1 为 从 末 尾 的 开 始 位 置 。
加 号 (+) 是 字 符 串 的 连 接 符 , 星 号 (*) 表 示 复 制 当 前 字 符 串 , 紧 跟 的 数 字 为 复 制 的 次 数 。 实 例
如 下 :

#!/usr/bin/python3
str = 'Runoob'
print(str)	#输 出 字 符 串
print(str[0:-1])#输 出 第 一 个 个 到 倒 数 第 二 个 的 所 有 字 符
print(str[0])	#输 出 字 符 串 第 一 个 字 符
print(str[2:5])	#输 出 从 第 三 个 开 始 到 第 五 个 的 字 符
print(str[2:])	#输 出 从 第 三 个 开 始 的 后 的 所 有 字 符
print(str*2)    #输 出 字 符 串 两 次
print(str+"TEST")#连 接 字 符 串

 

执 行 以 上 程 序 会 输 出 如 下 结 果 :

 

Runoob
Runoo
R n
oo
noob
RunoobRunoob
RunoobTEST

Python 使 用 反 斜 杠 (\)转 义 特 殊 字 符 , 如 果 你 不 想 让 反 斜 杠 发 生 转 义 , 可 以 在 字 符 串 前 面 添 加 一 个

r, 表 示 原 始 字 符 串 :

>>> print('Ru\noob')
Ru
oob
>>> print(r'Ru\noob')
Ru\noob
>>>

另 外 , 反 斜 杠 (\) 可 以 作 为 续 行 符 , 表 示 下 一 行 是 上 一 行 的 延 续 。 也 可 以 使 用 """...""" 或 者
'''...''' 跨 越 多 行 。

注 意 , Python 没 有 单 独 的 字 符 类 型 , 一 个 字 符 就 是 长 度 为 1 的 字 符 串 。

>>> print('Ru\noob')
Ru
oob
>>> print(r'Ru\noob')
Ru\noob
>>>

与 C 字 符 串 不 同 的 是 , Python 字 符 串 不 能 被 改 变 。 向 一 个 索 引 位 置 赋 值 , 比 如 word[0] = 'm'会

导 致 错 误 。

 

注 意 :
1、 反 斜 杠 可 以 用 来 转 义 , 使 用 r 可 以 让 反 斜 杠 不 发 生 转 义 。
2、 字 符 串 可 以 用 +运 算 符 连 接 在 一 起 , 用 *运 算 符 重 复 。
3、 Python 中 的 字 符 串 有 两 种 索 引 方 式 , 从 左 往 右 以 0 开 始 , 从 右 往 左 以 -1 开 始 。

 

4、 Python 中 的 字 符 串 不 能 改 变 。

2.2.3.List(列表)

 

List(列 表 ) 是 Python 中 使 用 最 频 繁 的 数 据 类 型 。
列 表 可 以 完 成 大 多 数 集 合 类 的 数 据 结 构 实 现 。 列 表 中 元 素 的 类 型 可 以 不 相 同 , 它 支 持 数 字 , 字 符 串,甚 至 可 以 包 含 列 表 (所 谓 嵌 套 ) 。 列 表 是 写 在 方 括 号 ([])之 间 、 用 逗 号 分 隔 开 的 元 素 列 表 。 和 字 符串 一 样 , 列 表 同 样 可 以 被 索 引 和 截 取 , 列 表 被 截 取 后 返 回 一 个 包 含 所 需 元 素 的 新 列 表 。

 

列 表 截 取 的 语 法 格 式 如 下 :

变 量 [头 下 标 :尾 下 标 ]

索 引 值 以 0 为 开 始 值 , -1 为 从 末 尾 的 开 始 位 置 。
加 号 (+) 是 列 表 连 接 运 算 符 , 星 号 (*) 是 重 复 操 作 。 如 下 实 例 :

#!/usr/bin/python3
list = [ 'abcd', 786 , 2.23, 'runoob', 70.2 ]
tinylist=[123,'runoob']
print(list)	#输 出 完 整 列 表
print(list[0])	#输 出 列 表 第 一 个 元 素
print(list[1:3])#从 第 二 个 开 始 输 出 到 第 三 个 元 素
print(list[2:])	#输 出 从 第 三 个 元 素 开 始 的 所 有 元 素
print(tinylist*2)#输 出 两 次 列 表
print(list+tinylist)#连 接 列 表

 

以 上 实 例 输 出 结 果 :

 

['abcd', 786, 2.23, 'runoob', 70.2]
abcd
[786, 2.23]
[2.23, 'runoob', 70.2]
[123, 'runoob', 123, 'runoob']
['abcd', 786, 2.23, 'runoob', 70.2, 123, 'runoob']

与 Python 字 符 串 不 一 样 的 是 , 列 表 中 的 元 素 是 可 以 改 变 的 :

>>> a = [1, 2, 3, 4, 5, 6]
>>> a[0] = 9
>>> a[2:5] = [13, 14, 15]
>>> a
[9, 2, 13, 14, 15, 6]
>>> a[2:5] = [] # 删 除
>>> a
[9, 2, 6]

List 内 置 了 有 很 多 方 法 , 例 如 append()、 pop()等 等 , 这 在 后 面 会 讲 到 。

 

注 意 :
1、 List 写 在 方 括 号 之 间 , 元 素 用 逗 号 隔 开 。
2、 和 字 符 串 一 样 , list 可 以 被 索 引 和 切 片 。
3、 List 可 以 使 用 +操 作 符 进 行 拼 接 。

 

4、 List 中 的 元 素 是 可 以 改 变 的 。

2.2.4.Tuple(元组)

元 组(tuple) 与 列 表 类 似 , 不 同 之 处 在 于 元 组 的 元 素 不 能 修 改 。 元 组 写 在 小 括 号 (())里 , 元 素 之 间
用 逗 号 隔 开 。
第 10 页 共 117 页
元 组 中 的 元 素 类 型 也 可 以 不 相 同 :

 

#!/usr/bin/python3
tuple = ( 'abcd', 786 , 2.23, 'runoob', 70.2 )
tinytuple = (123, 'runoob')
print(tuple)	#输 出 完 整 元 组
print(tuple[0])	#输 出 元 组 的 第 一 个 元 素
print(tuple[1:3])#输 出 从 第 二 个 元 素 开 始 到 第 三 个 元 素
print(tuple[2:])#输 出 从 第 三 个 元 素 开 始 的 所 有 元 素
print(tinytuple*2)#输 出 两 次 元 组
print(tuple+tinytuple)#连 接 元 组

以 上 实 例 输 出 结 果 :

 

('abcd', 786, 2.23, 'runoob', 70.2)
abcd
(786, 2.23)
(2.23, 'runoob', 70.2)
(123, 'runoob', 123, 'runoob')
('abcd', 786, 2.23, 'runoob', 70.2, 123, 'runoob')

元 组 与 字 符 串 类 似 , 可 以 被 索 引 且 下 标 索 引 从 0 开 始 , -1 为 从 末 尾 开 始 的 位 置 。 也 可 以 进 行 截 取(看上 面 , 这 里 不 再 赘 述 ) 。
其 实 , 可 以 把 字 符 串 看 作 一 种 特 殊 的 元 组 。

 

>>> tup = (1, 2, 3, 4, 5, 6)
>>> print(tup[0])
1 
>>> print(tup[1:5])
(2, 3, 4, 5)
>>> tup[0] = 11 # 修 改 元 组 元 素 的 操 作 是 非 法 的
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>># 修 改 元 组 元 素 的 操 作 是 非 法 的
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>>

虽 然 tuple 的 元 素 不 可 改 变 , 但 它 可 以 包 含 可 变 的 对 象 , 比 如 list 列 表 。
构 造 包 含 0 个 或 1 个 元 素 的 元 组 比 较 特 殊 , 所 以 有 一 些 额 外 的 语 法 规 则 :

 

 

tup1 = () # 空 元 组
tup2 = (20,) # 一 个 元 素 , 需 要 在 元 素 后 添 加 逗 号# 空 元 组
tup2 = (20,) # 一 个 元 素 , 需 要 在 元 素 后 添 加 逗 号

 

string、 list 和 tuple 都 属 于 sequence(序 列 ) 。

 

注 意 :
1、 与 字 符 串 一 样 , 元 组 的 元 素 不 能 修 改 。
2、 元 组 也 可 以 被 索 引 和 切 片 , 方 法 一 样 。
3、 注 意 构 造 包 含 0 或 1 个 元 素 的 元 组 的 特 殊 语 法 规 则 。

 

4、 元 组 也 可 以 使 用 +操 作 符 进 行 拼 接 。

2.2.5.Set(集合)

 

集 合 (set) 是 一 个 无 序 不 重 复 元 素 的 序 列 。
基 本 功 能 是 进 行 成 员 关 系 测 试 和 删 除 重 复 元 素 。
可 以 使 用 大 括 号 ({})或 者 set()函 数 创 建 集 合 , 注 意 : 创 建 一 个 空 集 合 必 须 用 set() 而 不 是 { },

 

因 为 { } 是 用 来 创 建 一 个 空 字 典 。

 
#!/usr/bin/python3
student = ({'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}) 
print(student) # 输 出 集 合 , 重 复 的 元 素 被 自 动 去 掉
# 成 员 测 试
if('Rose' in student) :
    print('Rose 在 集 合 中 ')
else :
    print('Rose 不 在 集 合 中 ')
# set 可 以 进 行 集 合 运 算
a = set('abracadabra')
b = set('alacazam')
print(a)
print(a	-b)	#a 和 b 的 差 集
print(a	|b)	#a 和 b 的 并 集
print(a	&b)	#a 和 b 的 交 集
print(a	^b)	#a 和 b 中 不 同 时 存 在 的 元 素

以 上 实 例 输 出 结 果 :

{'Mary', 'Jim', 'Rose', 'Jack', 'Tom'}
Rose 在 集 合 中
{'b', 'a', 'c', 'r', 'd'}
{'b', 'd', 'r'}
{'l', 'r', 'a', 'c', 'z', 'm', 'b', 'd'}
{'a', 'c'}
{'l', 'r', 'z', 'm', 'b', 'd'}

2.2.6.Dictionary(字典)

 

字 典 (dictionary) 是 Python 中 另 一 个 非 常 有 用 的 内 置 数 据 类 型 。
列 表 是 有 序 的 对 象 结 合 , 字 典 是 无 序 的 对 象 集 合 。 两 者 之 间 的 区 别 在 于 : 字 典 当 中 的 元 素 是 通 过 键来 存 取 的 , 而 不 是 通 过 偏 移 存 取 。
字 典 是 一 种 映 射 类 型 , 字 典 用 "{ }"标 识 , 它 是 一 个 无 序 的 键 (key) : 值 (value)对 集 合 。
键 (key)必 须 使 用 不 可 变 类 型 。
在 同 一 个 字 典 中 , 键 (key)必 须 是 唯 一 的 。

 

#!/usr/bin/python3
dict = {}
dict['one']="1-菜 鸟 教 程 "
dict[2]	="2-菜 鸟 工 具 "
tinydict={'name':'runoob','code':1,'site':'www.runoob.com'}
print(dict['one'])	#输出键为'one'的值
print(dict[2])         #输出键为2的值
print(tinydict)         #输出完整的字典
print(tinydict.keys()) #输出所有键
print(tinydict.values()) #输出所有值

 

以 上 实 例 输 出 结 果 :

 

1 - 菜 鸟 教 程
2 - 菜 鸟 工 具
{'name': 'runoob', 'site': 'www.runoob.com', 'code': 1}
dict_keys(['name', 'site', 'code'])
dict_values(['runoob', 'www.runoob.com', 1])

构 造 函 数 dict() 可 以 直 接 从 键 值 对 序 列 中 构 建 字 典 如 下 :

>>> dict([('Runoob', 1), ('Google', 2), ('Taobao', 3)])
{'Taobao': 3, 'Runoob': 1, 'Google': 2}
>>> {x: x**2 for x in (2, 4, 6)}
{2: 4, 4: 16, 6: 36}
>>> dict(Runoob=1, Google=2, Taobao=3)
{'Taobao': 3, 'Runoob': 1, 'Google': 2}

 

另 外 , 字 典 类 型 也 有 一 些 内 置 的 函 数 , 例 如 clear()、 keys()、 values()等 。
注 意 :
1、 字 典 是 一 种 映 射 类 型 , 它 的 元 素 是 键 值 对 。
2、 字 典 的 关 键 字 必 须 为 不 可 变 类 型 , 且 不 能 重 复 。

 

3、 创 建 空 字 典 使 用 { }

2.3.Python 数据类型转换

 

有 时 候 , 我 们 需 要 对 数 据 内 置 的 类 型 进 行 转 换 , 数 据 类 型 的 转 换 , 你 只 需 要 将 数 据 类 型 作 为 函 数 名
即 可 。

 

以 下 几 个 内 置 的 函 数 可 以 执 行 数 据 类 型 之 间 的 转 换 。 这 些 函 数 返 回 一 个 新 的 对 象 , 表 示 转 换 的 值 。

      函数                  描述

int(x [,base])         将 x 转换为一个整数
float(x)               将 x 转换到一个浮点数
complex(real [,imag])  创建一个复数
str(x)                 将对象 x 转换为字符串
repr(x)                将对象 x 转换为表达式字符串
eval(str)              用来计算在字符串中的有效 Python 表达式,并返回一个对象
tuple(s)               将序列 s 转换为一个元组
list(s)                将序列 s 转换为一个列表
set(s)                 转换为可变集合
dict(d)                创建一个字典。d必须是一个序列 (key,value)元组。
frozenset(s)           转换为不可变集合
chr(x)                 将一个整数转换为一个字符
unichr(x)              将一个整数转换为 Unicode 字符
ord(x)                 将一个字符转换为它的整数值
hex(x)                 将一个整数转换为一个十六进制字符串
oct(x)                 将一个整数转换为一个八进制字符串 

 

3. Python3 解释器

 

Linux/Unix 的 系 统 上 , 一 般 默 认 的 python 版 本 为 2.x , 我 们 可 以 将 python3.x 安 装 在
/usr/local/python3 目 录 中 。
安 装 完 成 后 , 我 们 可 以 将 路 径 /usr/local/python3/bin 添 加 到 您 的 Linux/Unix 操 作 系 统 的 环 境
变 量 中 , 这 样 您 就 可 以 通 过 shell 终 端 输 入 下 面 的 命 令 来 启 动 Python3 。
$ PATH=$PATH:/usr/local/python3/bin/python3 # 设 置 环 境 变 量
$ python3 --version
Python 3.4.0
在 Window 系 统 下 你 可 以 通 过 以 下 命 令 来 设 置 Python 的 环 境 变 量 , 假 设 你 的 Python 安 装 在
C:\Python34 下 :

 

set path=%path%;C:\python34

3.1.交互式编程

我 们 可 以 在 命 令 提 示 符 中 输 入 "Python"命 令 来 启 动 Python 解 释 器 :

$ python3

执 行 以 上 命 令 后 , 出 现 如 下 窗 口 信 息 :

$ python3
Python 3.4.0 (default, Apr 11 2014, 13:05:11)
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

在 python 提 示 符 中 输 入 以 下 语 句 , 然 后 按 回 车 键 查 看 运 行 效 果 :

print ("Hello, Python!");

以 上 命 令 执 行 结 果 如 下 :

Hello, Python!

当 键 入 一 个 多 行 结 构 时 , 续 行 是 必 须 的 。 我 们 可 以 看 下 如 下 if 语 句 :

 
>>> flag=True
>>> if flag:
... print("flag条 件 为	True!")
...
flag条件为True!

 


3.2.脚本式编程

 

将 如 下 代 码 拷 贝 至 hello.py 文 件 中 :
print ("Hello, Python!");
通 过 以 下 命 令 执 行 该 脚 本 :
python3 hello.py
输 出 结 果 为 :
Hello, Python!
在 Linux/Unix 系 统 中 , 你 可 以 在 脚 本 顶 部 添 加 以 下 命 令 让 Python 脚 本 可 以 像 SHELL 脚 本 一 样 可 直
接 执 行 :
#! /usr/bin/env python3
然 后 修 改 脚 本 权 限 , 使 其 有 执 行 权 限 , 命 令 如 下 :
$ chmod +x hello.py
执 行 以 下 命 令 :
./hello.py
输 出 结 果 为 :
Hello, Python!4. Python3 注释
确 保 对 模 块 , 函 数 , 方 法 和 行 内 注 释 使 用 正 确 的 风 格
Python 中 的 注 释 有 单 行 注 释 和 多 行 注 释 :
Python 中 单 行 注 释 以 #开 头 , 例 如 : :
# 这 是 一 个 注 释
print("Hello, World!")
多 行 注 释 用 三 个 单 引 号 (''') 或 者 三 个 双 引 号 (""") 将 注 释 括 起 来 , 例 如 :
1、 单 引 号 (''')
#!/usr/bin/python3
'''
这 是 多 行 注 释 , 用 三 个 单 引 号
这 是 多 行 注 释 , 用 三 个 单 引 号
'''
print("Hello, World!")
2、 双 引 号 (""")
第 16 页 共 117 页
#!/usr/bin/python3
"""
这 是 多 行 注 释 , 用 三 个 单 引 号
这 是 多 行 注 释 , 用 三 个 单 引 号
"""
print("Hello, World!")
5. Python3 运算符
5.1.什么是运算符?
本 章 节 主 要 说 明 Python 的 运 算 符 。 举 个 简 单 的 例 子 4 +5 = 9 。 例 子 中 , 4 和 5 被 称 为 操 作 数 ,
"+" 称 为 运 算 符 。
Python 语 言 支 持 以 下 类 型 的 运 算 符 :
算 术 运 算 符 比 较 (关 系 ) 运 算 符 赋 值 运 算 符 逻 辑 运 算 符
位 运 算 符 成 员 运 算 符 身 份 运 算 符 运 算 符 优 先 级

接 下 来 让 我 们 一 个 个 来 学 习 Python 的 运 算 符 。
5.2.Python 算术运算符
以 下 假 设 变 量 a 为 10, 变 量 b 为 21:

 

 

运算符 描述 实例
+ - 两个对象相加 a + b 输出结果 31
- - 得到负数或是一个数减去另一个数 a - b 输出结果 -11
* - 两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 210
/ - x 除以 y b / a 输出结果 2.1
% 取模 - 返回除法的余数 b % a 输出结果 1
** - 返回 x y 次幂 a**b 10 21 次方
// 取整除 - 返回商的整数部分 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0


以 下 实 例 演 示 了 Python 所 有 算 术 运 算 符 的 操 作 :
#!/usr/bin/python3
a = 21
b = 10
c = 0
c = a + b
第 17 页 共 117 页
print ("1 - c 的 值 为 : ", c)
c = a - b
print ("2 - c 的 值 为 : ", c)
c = a * b
print ("3 - c 的 值 为 : ", c)
c = a / b
print ("4 - c 的 值 为 : ", c)
c = a % b
print ("5 - c 的 值 为 : ", c)
# 修 改 变 量 a 、 b 、 c
a = 2
b = 3
c = a**b
print ("6 - c 的 值 为 : ", c)
a = 10
b = 5
c = a//b
print ("7 - c 的 值 为 : ", c)
以 上 实 例 输 出 结 果 :
1 - c 的 值 为 : 31
2 - c 的 值 为 : 11
3 - c 的 值 为 : 210
4 - c 的 值 为 : 2.1
5 - c 的 值 为 : 1
6 - c 的 值 为 : 8
7 - c 的 值 为 : 2
Python 比 较 运 算 符
以 下 假 设 变 量 a 为 10, 变 量 b 为 20:

 

 

运算符 描述 实例
== 等于 - 比较对象是否相等 (a == b) 返回 False
!= 不等于 - 比较两个对象是否不相等 (a != b) 返回 true.

 


第 18 页 共 117 页

 

 

> 大于 - 返回 x 是否大于 y (a > b) 返回 False
< 小于 - 返回 x 是否小于 y。 所有比较运算符返回 1
示真, 返回
0 表示假。 这分别与特殊的变量 True
False 等价。 注意, 这些变量名的大写。
(a < b) 返回 true
>= 大于等于 - 返回 x 是否大于等于 y (a >= b) 返回 False
<= 小于等于 - 返回 x 是否小于等于 y (a <= b) 返回 true


以 下 实 例 演 示 了 Python 所 有 比 较 运 算 符 的 操 作 :
#!/usr/bin/python3
a = 21
b = 10
c = 0
if ( a == b ):
print ("1 - a 等 于 b")
else:
print ("1 - a 不 等 于 b")
if ( a != b ):
print ("2 - a 不 等 于 b")
else:
print ("2 - a 等 于 b")
if ( a < b ):
print ("3 - a 小 于 b")
else:
print ("3 - a 大 于 等 于 b")
if ( a > b ):
print ("4 - a 大 于 b")
else:
print ("4 - a 小 于 等 于 b")
# 修 改 变 量 a 和 b 的 值
a = 5;
b = 20;
if ( a <= b ):
第 19 页 共 117 页
print ("5 - a 小 于 等 于 b")
else:
print ("5 - a 大 于 b")
if ( b >= a ):
print ("6 - b 大 于 等 于 a")
else:
print ("6 - b 小 于 a")
以 上 实 例 输 出 结 果 :
1 - a 不 等 于 b
2 - a 不 等 于 b
3 - a 大 于 等 于 b
4 - a 大 于 b
5 - a 小 于 等 于 b
6 - b 大 于 等 于 a
5.3.Python 赋值运算符
以 下 假 设 变 量 a 为 10, 变 量 b 为 20:

 

 

运算符 描述 实例
= 简单的赋值运算符 c = a + b a + b 的运算结果赋值为 c
+= 加法赋值运算符 c += a 等效于 c = c + a
-= 减法赋值运算符 c -= a 等效于 c = c - a
*= 乘法赋值运算符 c *= a 等效于 c = c * a
/= 除法赋值运算符 c /= a 等效于 c = c / a
%= 取模赋值运算符 c %= a 等效于 c = c % a
**= 幂赋值运算符 c **= a 等效于 c = c ** a
//= 取整除赋值运算符 c //= a 等效于 c = c // a


以 下 实 例 演 示 了 Python 所 有 赋 值 运 算 符 的 操 作 :
#!/usr/bin/python3
a = 21
b = 10
c = 0
第 20 页 共 117 页
c = a + b
print ("1 - c 的 值 为 : ", c)
c += a
print ("2 - c 的 值 为 : ", c)
c *= a
print ("3 - c 的 值 为 : ", c)
c /= a
print ("4 - c 的 值 为 : ", c)
c = 2
c %= a
print ("5 - c 的 值 为 : ", c)
c **= a
print ("6 - c 的 值 为 : ", c)
c //= a
print ("7 - c 的 值 为 : ", c)
以 上 实 例 输 出 结 果 :
1 - c 的 值 为 : 31
2 - c 的 值 为 : 52
3 - c 的 值 为 : 1092
4 - c 的 值 为 : 52.0
5 - c 的 值 为 : 2
6 - c 的 值 为 : 2097152
7 - c 的 值 为 : 99864
5.4.Python 位运算符
按 位 运 算 符 是 把 数 字 看 作 二 进 制 来 进 行 计 算 的 。 Python 中 的 按 位 运 算 法 则 如 下 :
下 表 中 变 量 a 为 60, b 为 13 二 进 制 格 式 如 下 :
a = 0011 1100
b = 0000 1101
-----------------
a&b = 0000 1100
a|b = 0011 1101
a^b = 0011 0001
第 21 页 共 117 页
~a = 1100 0011

 

 

运算符 描述 实例
& 按位与运算符: 参与运算的两个值,如果两个相应位都为
1,则该位的结果为 1,否则为 0
(a & b) 输出结果 12 , 二进制解释: 0000 1100
| 按位或运算符: 只要对应的二个二进位有一个为 1 时, 结
果位就为
1
(a | b) 输出结果 61 , 二进制解释: 0011 1101
^ 按位异或运算符: 当两对应的二进位相异时, 结果为 1 (a ^ b) 输出结果 49 , 二进制解释: 0011 0001
~ 按位取反运算符: 对数据的每个二进制位取反,即把 1 变为
0,0 变为 1
(~a ) 输出结果 -61 , 二进制解释: 1100 0011, 在
一个有符号二进制数的补码形式。
<< 左移动运算符: 运算数的各二进位全部左移若干位, 由"<<"
右边的数指定移动的位数, 高位丢弃, 低位补 0
a << 2 输出结果 240 , 二进制解释: 1111 0000
>> 右移动运算符: 把">>"左边的运算数的各二进位全部右移
若干位,
">>"右边的数指定移动的位数
a >> 2 输出结果 15 , 二进制解释: 0000 1111


以 下 实 例 演 示 了 Python 所 有 位 运 算 符 的 操 作 :
#!/usr/bin/python3
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = 0
c = a & b; # 12 = 0000 1100
print ("1 - c 的 值 为 : &#

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值