第一章重置

程序是什么

程序是一系列定义计算机如何执行计算 (computation) 的指令。这种计算可以是数学上的计算,例如寻找公式的解或多项式的根,也可以是一个符号计算 (symbolic compu-tation),例如在文档中搜索并替换文本或者图片,就像处理图片或播放视频。

不同编程语言所写程序的细节各不一样,但是一些基本的指令几乎出现在每种语言当中:

输入 (input): 从键盘、文件、网络或者其他设备获取数据。
输出 (output): 在屏幕上显示数据,将数据保存至文件,通过网络传送数据,等等。
数学 (math): 执行基本的数学运算,如加法和乘法。
有条件执行 (conditional execution): 检查符合某个条件后,执行相应的代码。
重复 (repetition): 检查符合某个条件后,执行相应的代码。

因此,你可以认为编程就是将庞大、复杂的任务分解为越来越小的子任务,直到这些子任务简单到可以用这其中的一个基本指令执行。

Python 的解释器 是一个读取并执行 Python 代码的程序。根据你的电脑环境不同,你可以通过双击图标,或者在命令行输入 python 的方式来启动解释器。

>>>   #这个是提示符prompt

表明你可以在解释器中输入代码了。如果你输入一行代码然后按回车 (Enter),解释器就会显示结果

>>>print('hello,world!') #这里引号不会出现在结尾中,括号说明print是一个函数
hello,world!

Python 提供了许多代表加法和乘法等运算的特殊符号,叫做运算符(operators)。运算符 + 、 − 和 * 分别执行加法、减法和乘法, / 执行浮点除法运算。^属于一种位运算符,叫做XOR。

值 (value) 是程序处理的基本数据之一,一个单词或一个数字都是值的实例。不同的值属于不同的类型(type), 2 是一个整型数 (integer), 42.0 是一个浮点型数(floating point number),而 'Hello, ␣ World!' 则是一个字符串 (string),这么称呼是因为其中的字符被串 (strung together/string together) 在了一起。

>>>1,000,000
(1,0,0)

自然语言 (natural language) 是人们交流所使用的语言,例如英语、西班牙语和法语。
它们不是人为设计出来的(尽管有人试图这样做);而是自然演变而来。

形式语言 (formal languages) 是人类为了特殊用途而设计出来的。例如,数学家使用的
记号 (notation) 就是形式语言,特别擅长表示数字和符号之间的关系。化学家使用形式
语言表示分子的化学结构。

编程语言是被设计用于表达计算的形式语言。

形式语言通常拥有严格的语法 规则,规定了详细的语句结构。例如,3 + 3 = 6 是语法
正确的数学表达式,而 3 + = 3$6 则不是;H 2 O 是语法正确的化学式,而 2 Zz 则不是。
语法规则有两种类型,分别涉及记号 (tokens) 和结构。记号是语言的基本元素,例如单
词、数字和化学元素。3 + = 3$6 这个式子的问题之一,就是 $ 在数学中不是一个合法
的记号(至少据我所知)。类似的, 2 Zz 也不合法,因为没有一个元素的简写是 Zz 。

第二种语法规则与标记的组合方式有关。3 + = 3 这个方程是非法的,因为即使 + 和 =
都是合法的记号,但是你却不能把它们俩紧挨在一起。类似的,在化学式中,下标位于
元素之后,而不是之前。

This is @ well-structured Engli$h sentence with invalid t*kens in it. This sentence allvalid tokens has, but invalid structure with.
两句英文都是不符合语法的,一个包含非法标记,另一个结构不符合语法。
当你读一个用英语写的句子或者用形式语言写的语句时,你都必须要理清各自的结构
(尽管在阅读自然语言时,你是下意识地进行的)。这个过程被称为解析 (parsing)。

自然语言 形式语言
歧义性 充满歧义 无歧义
冗余性 冗长 简洁
字面性 有隐喻,典故 字面意思
相同点 都具有标记语法结构

术语表

问题求解 (problem solving): 将问题形式化、寻找并表达解决方案的过程。
高级语言 (high-level language): 像 Python 这样被设计成人类容易阅读和编写的编
程语言。
低级语言 (low-level language): 被设计成计算机容易运行的编程语言;也被称为
‘‘机器语言” (machine language ) 或 ‘‘汇编语言” (assembly language)。
可移植性 (portability): 程序能够在多种计算机上运行的特性。
解释器 (interpreter): 读取另一个程序并执行该程序的程序。
提示符 (prompt): 解释器所显示的字符,表明已准备好接受用户的输入。
程序 (program): 一组定义了计算内容的指令。
打印语句 (print statement): 使 Python 解释器在屏幕上显示某个值的指令。

运算符 (operator): 代表类似加法、乘法或者字符串连接 (string concatenation) 等简
单计算的特殊符号。
值 (value): 程序所处理数据的基本元素之一,例如数字或字符串。
类型 (type): 值的类别。我们目前接触的类型有整型数(类型为 int )、浮点数(类型
为 float )和字符串(类型为 str )。
整型数 (integer): 代表整数的类型。
浮点数 (floating-point): 代表一个有小数点的数字的类型。
字符串 (string): A type that represents sequences of characters.
自然语言 (natural language): 任何的人们日常使用的、由自然演变而来的语言。
形式语言 (formal language): 任何由人类为了某种目的而设计的语言,例如用来表示
数学概念或者电脑程序;所有的编程语言都是形式语言。
记号 (token): 程序语法结构中的基本元素之一,与自然语言中的单词类似。
语法 (syntax): 规定了程序结构的规则。
解析 (parse): 阅读程序,并分析其语法结构的过程
故障 (bug): 程序中的错误。
调试 (debugging): 寻找并解决错误的过程。

python基础教程

Python 是一种解释型、面向对象、动态数据类型的高级程序设计语言。

Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。

Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。

  • Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。
  • Python 是交互式语言: 这意味着,您可以在一个 Python 提示符 >>> 后直接执行代码。
  • Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。
  • Python 是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏。

ipython 是一个 python 的交互式 shell,比默认的 python shell 好用得多,支持变量自动补全,自动缩进,支持 bash shell 命令,内置了许多很有用的功能和函数。

此 ipython 中的 i 代表 “交互(interaction)”。

官方地址:https://ipython.org/install.html

使用:

ipython

标识符

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

在 Python 3 中,可以用中文作为变量名,非 ASCII 标识符也是允许的了。

保留字即关键字,我们不能把它们用作任何标识符名称。Python 的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字:

>>> 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']

python最具特色的就是使用缩进来表示代码块,不需要使用大括号 {}

缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。

多行语句

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

total = item_one + \
        item_two + \
        item_three

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

total = ['item_one', 'item_two', 'item_three',
        'item_four', 'item_five']

数字(Number)类型

python中数字有四种类型:整数、布尔型、浮点数和复数。

  • int (整数), 如 1, 只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。
  • bool (布尔), 如 True。
  • float (浮点数), 如 1.23、3E-2
  • complex (复数), 如 1 + 2j、 1.1 + 2.2j

字符串(String)

  • python中单引号和双引号使用完全相同。
  • 使用三引号('''或""")可以指定一个多行字符串。
  • 转义符 ''
  • 反斜杠可以用来转义,使用r可以让反斜杠不发生转义。。 如 r"this is a line with \n" 则\n会显示,并不是换行。
  • 按字面意义级联字符串,如"this " "is " "string"会被自动转换为this is string。
  • 字符串可以用 + 运算符连接在一起,用 * 运算符重复。
  • Python 中的字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始。
  • Python中的字符串不能改变。
  • Python 没有单独的字符类型,一个字符就是长度为 1 的字符串。
str='Runoob'
print('hello\nrunoob')      # 使用反斜杠(\)+n转义特殊字符
print(r'hello\nrunoob')     # 在字符串前面添加一个 r,表示原始字符串,不会发生转义
hello
runoob
hello\nrunoob

空行

函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。

空行与代码缩进不同,空行并不是Python语法的一部分。书写时不插入空行,Python解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。

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

等待用户输入

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

input("\n\n按下 enter 键后退出。")

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

Python可以在同一行中使用多条语句,语句之间使用分号(;)分割,

缩进相同的一组语句构成一个代码块,我们称之代码组。

像if、while、def和class这样的复合语句,首行以关键字开始,以冒号( : )结束,该行之后的一行或多行代码构成代码组。

我们将首行及后面的代码组称为一个子句(clause)。

如下实例:

if expression : 
   suite
elif expression : 
   suite 
else : 
   suite

print 默认输出是换行的,如果要实现不换行需要在变量末尾加上 end=""

实例(Python 3.0+)

x="a"

y="b" # 换行输出

print( x )

print( y )

print('---------') #

不换行输出

print( x, end=" " )

print( y, end=" " )

print()

以上实例执行结果为:

a
b
---------
a b

import 与 from...import

在 python 用 import 或者 from...import 来导入相应的模块。

将整个模块(somemodule)导入,格式为: import somemodule

从某个模块中导入某个函数,格式为: from somemodule import somefunction

从某个模块中导入多个函数,格式为: from somemodule import firstfunc, secondfunc, thirdfunc

将某个模块中的全部函数导入,格式为: from somemodule import *

关于注释,也可以使用 ''' ''' 的格式在三引号之间书写较长的注释;

''' ''' 还可以用于在函数的首部对函数进行一个说明:

def example(anything):
    '''形参为任意类型的对象,
       这个示例函数会将其原样返回。
    '''
    return anything

help() 函数

调用 python 的 help() 函数可以打印输出一个函数的文档字符串:

# 如下实例,查看 max 内置函数的参数列表和规范的文档
>>> help(max)
……显示帮助信息……

按下 : q 两个按键即退出说明文档

如果仅仅想得到文档字符串:

>>> print(max.__doc__)    # 注意,doc的前后分别是两个下划线
max(iterable, *[, default=obj, key=func]) -> value
max(arg1, arg2, *args, *[, key=func]) -> value

With a single iterable argument, return its biggest item. The
default keyword-only argument specifies an object to return if
the provided iterable is empty.
With two or more arguments, return the largest argument.

要善用 help() 方法

通过命令 help(print) 我们知道这个方法里第三个为缺省参数 sep=' '

这里表示我们使用分隔符为一个空格。

>>> help(print)
Help on built-in function print in module builtins:
print(...)
    print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
    Prints the values to a stream, or to sys.stdout by default.
    Optional keyword arguments:
    file:  a file-like object (stream); defaults to the current sys.stdout.
    sep:   string inserted between values, default a space.
    end:   string appended after the last value, default a newline.
    flush: whether to forcibly flush the stream.

清屏

“Windows 命令行窗口”下清屏,可用下面两种方法。

第一种方法,在命令行窗口输入:

>>> import os
>>> i=os.system("cls")

第二种方法,在命令行窗口输入:

>>> import subprocess
>>> i=subprocess.call("cls", shell=True)

关于 import 的小结

以 time 模块为例:

1、将整个模块导入,例如:import time,在引用时格式为:time.sleep(1)

2、将整个模块中全部函数导入,例如:from time import *,在引用时格式为:sleep(1)

3、将模块中特定函数导入,例如:from time import sleep,在引用时格式为:sleep(1)

4、将模块换个别名,例如:import time as abc,在引用时格式为:abc.sleep(1)

当字符串内容为浮点型要转换为整型时,无法直接用 int() 转换:

a='2.1'  # 这是一个字符串
print(int(a))

会报错 "invalid literal for int() "

需要把字符串先转化成 float 型再转换成 int 型:

a='2.1'
print(int(float(a)))

输出 2

Python 中也可以所用 syssys.argv 来获取命令行参数:

  • sys.argv 是命令行参数列表。
  • len(sys.argv) 是命令行参数个数。

注:sys.argv[0] 表示脚本名。

Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。

在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。

等号(=)用来给变量赋值。

标准数据类型

Python3 中有六个标准的数据类型:

  • Number(数字)
  • String(字符串)
  • List(列表)
  • Tuple(元组)
  • Set(集合)
  • Dictionary(字典)

Python3 的六个标准数据类型中:

  • 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
  • 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。
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'>

此外还可以用 isinstance 来判断:

实例

>>> a = 111
>>> isinstance(a, int)
True
>>>

isinstance 和 type 的区别在于:

  • type()不会认为子类是一种父类类型。
  • isinstance()会认为子类是一种父类类型。

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

del var
del var_a, var_b
  • 1、Python可以同时为多个变量赋值,如a, b = 1, 2。
  • 2、一个变量可以通过赋值指向不同类型的对象。
  • 3、数值的除法包含两个运算符:/ 返回一个浮点数,// 返回一个整数。

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

Python中的字符串用单引号 ' 或双引号 " 括起来,同时使用反斜杠 ** 转义特殊字符。

Python 使用反斜杠 ** 转义特殊字符,如果你不想让反斜杠发生转义,可以在字符串前面添加一个 r,表示原始字符串:

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

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

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

List(列表)

List(列表) 是 Python 中使用最频繁的数据类型。

列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。

列表是写在方括号 [] 之间、用逗号分隔开的元素列表。

和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。

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

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() 等等,这在后面会讲到。

def reverseWords(input):

# 通过空格将字符串分隔符,把各个单词分隔为列表
inputWords = input.split(" ")

# 翻转字符串
# 假设列表 list = [1,2,3,4],
# list[0]=1, list[1]=2 ,而 -1 表示最后一个元素 list[-1]=4 ( 与 list[3]=4 一样)
# inputWords[-1::-1] 有三个参数
# 第一个参数 -1 表示最后一个元素
# 第二个参数为空,表示移动到列表末尾
# 第三个参数为步长,-1 表示逆向
inputWords=inputWords[-1::-1]

# 重新组合字符串
output = ' '.join(inputWords)

return output

if name == "main":
input = 'I like runoob'
rw = reverseWords(input)
print(rw)

输出结果为:

runoob like I

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')

虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表。

构造包含 0 个或 1 个元素的元组比较特殊,所以有一些额外的语法规则:

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

可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

创建格式:

parame = {value01,value02,...}
或者
set(value)

sites = {'Google', 'Taobao', 'Runoob', 'Facebook', 'Zhihu', 'Baidu'}

print(sites) # 输出集合,重复的元素被自动去掉

# 成员测试
if 'Runoob' in sites :
print('Runoob 在集合中')
else :
print('Runoob 不在集合中')

# 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 中不同时存在的元素

以上实例输出结果:

{'Zhihu', 'Baidu', 'Taobao', 'Runoob', 'Google', 'Facebook'}
Runoob 在集合中
{'b', 'c', 'a', 'r', 'd'}
{'r', 'b', 'd'}
{'b', 'c', 'a', 'z', 'm', 'r', 'l', 'd'}
{'c', 'a'}
{'z', 'b', 'm', 'r', 'l', 'd'}

#!/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', 'code': 1, 'site': 'www.runoob.com'}
dict_keys(['name', 'code', 'site'])
dict_values(['runoob', 1, 'www.runoob.com'])

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

实例

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

一般来说,函数的返回值一般为一个。

而函数返回多个值的时候,是以元组的方式返回的。

示例(命令行下):

>>>def example(a,b):
...     return (a,b)
...
>>>type(example(3,4))
<class 'tuple'>
>>>

针对楼上的 字典 拓展,做测试的时候,想要输出 kye:value的组合发现可以这样:

for c in dict:
    print(c,':',dict[c])

或者

for c in dict:
    print(c,end=':');
    print(dict[c])
list = [ 'abcd', 786 , 2.23, 'runoob', 70.2 ]
print (list[2])
print (list[2:3])

这两句话打印的内容其实是一样的:

2.23
[2.23]

但注意是不同的类型,用变量接收一下:

a = list[2]
b = list[2:3]
type(a) -> <class 'float'>
type(b) -> <class 'list'>

字典(小拓展)

输入 dict 的键值对,可直接用 items() 函数:

dict1 = {'abc':1,"cde":2,"d":4,"c":567,"d":"key1"}
for k,v in dict1.items():
    print(k,":",v)
>>> dict_1 = dict([('a',1),('b',2),('c',3)]) #元素为元组的列表
>>> dict_1
{'a': 1, 'b': 2, 'c': 3}
>>> dict_2 = dict({('a',1),('b',2),('c',3)})#元素为元组的集合
>>> dict_2
{'b': 2, 'c': 3, 'a': 1}
>>> dict_3 = dict([['a',1],['b',2],['c',3]])#元素为列表的列表
>>> dict_3
{'a': 1, 'b': 2, 'c': 3}
>>> dict_4 = dict((('a',1),('b',2),('c',3)))#元素为元组的元组
>>> dict_4
{'a': 1, 'b': 2, 'c': 3}

Python 中布尔值使用常量 TrueFalse 来表示。

1、在数值上下文环境中,True 被当作 1False 被当作 0,例如:

>>> True+3
4
>>> False+2
2
>>> def example(a,b):
...     return (a,b)
... 
>>> type(example(3,4))
<type 'tuple'>
>>> def example(a,b):
...     return a,b
... 
>>> type(example(3,4))
<type 'tuple'>
>>> def example(a,b):
...     return [a,b]
... 
>>> type(example(3,4))
<type 'list'>

列表和元组不会把相同的值合并,但是集合会把相同的合并。

>>> clist = ['tom','tom','jerry']                #测试列表功能
>>> print (clist)
['tom','tom','jerry']

>>>ctuple = ('tom','tom','jerry')           #测试元组功能
>>>print(ctuple)
('tom','tom','jerry') 

>>>cset = {'tom','tom','jerry'}                #测试集合功能
>>>print(cset)
{'tom','jerry'}
>>> o = {1, 2, 3}
>>> type(o)
<class 'set'>
>>> o = {}
>>> type(o)
<class 'dict'>
x = ['A','B','C','D']
y = ['a','b','c','d']
n = {i:j for i,j in zip(x,y)}
print("n:",n)
'''
n: {'A': 'a', 'B': 'b', 'C': 'c', 'D': 'd'}
'''
s = {x:x.strip() for x in ('he','she','I')}
print("s:",s)
'''
s: {'he': 'he', 'she': 'she', 'I': 'I'}
'''

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', 'code': 1, 'site': 'www.runoob.com'}
dict_keys(['name', 'code', 'site'])
dict_values(['runoob', 1, 'www.runoob.com'])

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

另外,字典类型也有一些内置的函数,例如clear()、keys()、values()等。

注意:

  • 1、字典是一种映射类型,它的元素是键值对。
  • 2、字典的关键字必须为不可变类型,且不能重复。
  • 3、创建空字典使用 { }
posted @ 2020-07-01 00:04  HuangB2ydjm  阅读(108)  评论(0编辑  收藏  举报