python基础之-数据类型

Python3 数字(Number)

Python 数字数据类型用于存储数值。php

数据类型是不容许改变的,这就意味着若是改变数字数据类型得值,将从新分配内存空间。html

如下实例在变量赋值时 Number 对象将被建立:python

var1 = 1 var2 = 10

您也可使用del语句删除一些数字对象的引用。git

del语句的语法是:程序员

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

您能够经过使用del语句删除单个或多个对象的引用,例如:算法

del var del var_a, var_b

Python 支持三种不一样的数值类型:api

  • 整型(Int) - 一般被称为是整型或整数,是正或负整数,不带小数点。Python3 整型是没有限制大小的,能够看成 Long 类型使用,因此 Python3 没有 Python2 的 Long 类型。
  • 浮点型(float) - 浮点型由整数部分与小数部分组成,浮点型也可使用科学计数法表示(2.5e2 = 2.5 x 102 = 250)
  • 复数( (complex)) - 复数由实数部分和虚数部分构成,能够用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。

咱们可使用十六进制和八进制来表明整数:数组

>>> number = 0xA0F # 十六进制 >>> number 2575 >>> number=0o37 # 八进制 >>> number 31
int float complex
10 0.0 3.14j
100 15.20 45.j
-786 -21.9 9.322e-36j
080 32.3+e18 .876j
-0490 -90. -.6545+0J
-0x260 -32.54e100 3e+26J
0x69 70.2-E12 4.53e-7j
  • Python支持复数,复数由实数部分和虚数部分构成,能够用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。

 


Python 数字类型转换

有时候,咱们须要对数据内置的类型进行转换,数据类型的转换,你只须要将数据类型做为函数名便可。安全

  • int(x) 将x转换为一个整数。数据结构

  • float(x) 将x转换到一个浮点数。

  • complex(x) 将x转换到一个复数,实数部分为 x,虚数部分为 0。

  • complex(x, y) 将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。x 和 y 是数字表达式。

如下实例将浮点数变量 a 转换为整数:

>>> a = 1.0 >>> int(a) 1

Python 数字运算

Python 解释器能够做为一个简单的计算器,您能够在解释器里输入一个表达式,它将输出表达式的值。

表达式的语法很直白: +, -, * 和 / 和其它语言(如Pascal或C)里同样。例如:

>>> 2 + 2 4 >>> 50 - 5*6 20 >>> (50 - 5*6) / 4 5.0 >>> 8 / 5 # 老是返回一个浮点数 1.6

注意:在不一样的机器上浮点运算的结果可能会不同。

在整数除法中,除法(/)老是返回一个浮点数,若是只想获得整数的结果,丢弃可能的分数部分,可使用运算符 // :

>>> 17 / 3 # 整数除法返回浮点型 5.666666666666667 >>> >>> 17 // 3 # 整数除法返回向下取整后的结果 5 >>> 17 % 3 # %操做符返回除法的余数 2 >>> 5 * 3 + 2 17

等号(=)用于给变量赋值。赋值以后,除了下一个提示符,解释器不会显示任何结果。

>>> width = 20 >>> height = 5*9 >>> width * height 900

Python 可使用 ** 操做来进行幂运算:

>>> 5 ** 2 # 5 的平方 25 >>> 2 ** 7 # 2的7次方 128

变量在使用前必须先"定义"(即赋予变量一个值),不然会出现错误:

>>> n # 尝试访问一个未定义的变量 Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'n' is not defined

不一样类型的数混合运算时会将整数转换为浮点数:

>>> 3 * 3.75 / 1.5 7.5 >>> 7.0 / 2 3.5

在交互模式中,最后被输出的表达式结果被赋值给变量 。例如:

>>> tax = 12.5 / 100 >>> price = 100.50 >>> price * tax 12.5625 >>> price + _ 113.0625 >>> round(_, 2) 113.06

此处, 变量应被用户视为只读变量。

 


数学函数

函数 返回值 ( 描述 )
abs(x) 返回数字的绝对值,如abs(-10) 返回 10
ceil(x) 返回数字的上入整数,如math.ceil(4.1) 返回 5

cmp(x, y)

若是 x < y 返回 -1, 若是 x == y 返回 0, 若是 x > y 返回 1。 Python 3 已废弃 。使用 使用 (x>y)-(x<y) 替换。
exp(x) 返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045
fabs(x) 返回数字的绝对值,如math.fabs(-10) 返回10.0
floor(x) 返回数字的下舍整数,如math.floor(4.9)返回 4
log(x) 如math.log(math.e)返回1.0,math.log(100,10)返回2.0
log10(x) 返回以10为基数的x的对数,如math.log10(100)返回 2.0
max(x1, x2,...) 返回给定参数的最大值,参数能够为序列。
min(x1, x2,...) 返回给定参数的最小值,参数能够为序列。
modf(x) 返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。
pow(x, y) x**y 运算后的值。
round(x [,n]) 返回浮点数x的四舍五入值,如给出n值,则表明舍入到小数点后的位数。
sqrt(x) 返回数字x的平方根,数字能够为负数,返回类型为实数,如math.sqrt(4)返回 2+0j

 


随机数函数

随机数能够用于数学,游戏,安全等领域中,还常常被嵌入到算法中,用以提升算法效率,并提升程序的安全性。

Python包含如下经常使用随机数函数:

函数 描述
choice(seq) 从序列的元素中随机挑选一个元素,好比random.choice(range(10)),从0到9中随机挑选一个整数。
randrange ([start,] stop [,step]) 从指定范围内,按指定基数递增的集合中获取一个随机数,基数缺省值为1
random() 随机生成下一个实数,它在[0,1)范围内。
seed([x]) 改变随机数生成器的种子seed。若是你不了解其原理,你没必要特别去设定seed,Python会帮你选择seed。
shuffle(lst) 将序列的全部元素随机排序
uniform(x, y) 随机生成下一个实数,它在[x,y]范围内。

 


三角函数

Python包括如下三角函数:

函数 描述
acos(x) 返回x的反余弦弧度值。
asin(x) 返回x的反正弦弧度值。  
atan(x) 返回x的反正切弧度值。
atan2(y, x) 返回给定的 X 及 Y 坐标值的反正切值。
cos(x) 返回x的弧度的余弦值。
hypot(x, y) 返回欧几里德范数 sqrt(x*x + y*y)。
sin(x) 返回的x弧度的正弦值。
tan(x) 返回x弧度的正切值。
degrees(x) 将弧度转换为角度,如degrees(math.pi/2) , 返回90.0
radians(x) 将角度转换为弧度

 


 

Python3 字符串

字符串是 Python 中最经常使用的数据类型。咱们可使用引号('或")来建立字符串。

建立字符串很简单,只要为变量分配一个值便可。例如:

var1 = 'Hello World!' var2 = "Runoob"

Python 访问字符串中的值

Python 不支持单字符类型,单字符也在Python也是做为一个字符串使用。

Python 访问子字符串,可使用方括号来截取字符串,以下实例:

实例(Python 3.0+)

#!/usr/bin/python3 var1 = 'Hello World!' var2 = "Runoob" print ("var1[0]: ", var1[0]) print ("var2[1:5]: ", var2[1:5])

以上实例执行结果:

var1[0]: H var2[1:5]: unoo

Python字符串更新

你能够对已存在的字符串进行修改,并赋值给另外一个变量,以下实例:

实例(Python 3.0+)

#!/usr/bin/python3 var1 = 'Hello World!' print ("已更新字符串 : ", var1[:6] + 'Runoob!')

以上实例执行结果

已更新字符串 : Hello Runoob!

Python转义字符

在须要在字符中使用特殊字符时,python用反斜杠(\)转义字符。以下表:

转义字符 描述
\(在行尾时) 续行符
\\ 反斜杠符号
\' 单引号
\" 双引号
\a 响铃
\b 退格(Backspace)
\e 转义
\000
\n 换行
\v 纵向制表符
\t 横向制表符
\r 回车
\f 换页
\oyy 八进制数,yy表明的字符,例如:\o12表明换行
\xyy 十六进制数,yy表明的字符,例如:\x0a表明换行
\other 其它的字符以普通格式输出

Python字符串运算符

下表实例变量a值为字符串 "Hello",b变量值为 "Python":

操做符 描述 实例
+ 字符串链接 a + b 输出结果: HelloPython
* 重复输出字符串 a*2 输出结果:HelloHello
[] 经过索引获取字符串中字符 a[1] 输出结果 e
[ : ] 截取字符串中的一部分 a[1:4] 输出结果ell
in 成员运算符 - 若是字符串中包含给定的字符返回 True H in a 输出结果 1
not in 成员运算符 - 若是字符串中不包含给定的字符返回 True M not in a 输出结果 1
r/R 原始字符串 - 原始字符串:全部的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母"r"(能够大小写)之外,与普通字符串有着几乎彻底相同的语法。 print r'\n' prints \n 和 print R'\n'prints \n
% 格式字符串 请看下一节内容。

实例(Python 3.0+)

#!/usr/bin/python3 a = "Hello" b = "Python" print("a + b 输出结果:", a + b) print("a * 2 输出结果:", a * 2) print("a[1] 输出结果:", a[1]) print("a[1:4] 输出结果:", a[1:4]) if( "H" in a) : print("H 在变量 a 中") else : print("H 不在变量 a 中") if( "M" not in a) : print("M 不在变量 a 中") else : print("M 在变量 a 中") print (r'\n') print (R'\n')

以上实例输出结果为:

a + b 输出结果: HelloPython a * 2 输出结果: HelloHello a[1] 输出结果: e a[1:4] 输出结果: ell H 在变量 a  M 不在变量 a  \n \n

Python字符串格式化

Python 支持格式化字符串的输出 。尽管这样可能会用到很是复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。

在 Python 中,字符串格式化使用与 C 中 sprintf 函数同样的语法。

实例(Python 3.0+)

#!/usr/bin/python3 print ("我叫 %s 今年 %d 岁!" % ('小明', 10))

以上实例输出结果:

我叫 小明 今年 10 岁!

python字符串格式化符号:

<tbody

    符   号 描述
      %c  格式化字符及其ASCII码
      %s  格式化字符串
      %d  格式化整数
      %u  格式化无符号整型
      %o  格式化无符号八进制数
      %x  格式化无符号十六进制数
      %X  格式化无符号十六进制数(大写)
      %f  格式化浮点数字,可指定小数点后的精度
      %e  用科学计数法格式化浮点数
      %E  做用同%e,用科学计数法格式化浮点数
      %g  %f和%e的简写
      %G  %f 和 %E 的简写
      %p  用十六进制数格式化变量的地址

格式化操做符辅助指令:

符号 功能
* 定义宽度或者小数点精度
- 用作左对齐
+ 在正数前面显示加号( + )
<sp> 在正数前面显示空格
# 在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'仍是'X')
0 显示的数字前面填充'0'而不是默认的空格
% '%%'输出一个单一的'%'
(var) 映射变量(字典参数)
m.n. m 是显示的最小总宽度,n 是小数点后的位数(若是可用的话)

Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它加强了字符串格式化的功能。


Python三引号

python三引号容许一个字符串跨多行,字符串中能够包含换行符、制表符以及其余特殊字符。实例以下

实例(Python 3.0+)

#!/usr/bin/python3 para_str = """这是一个多行字符串的实例 多行字符串可使用制表符 TAB ( \t )。 也可使用换行符 [ \n ]。 """ print (para_str)

以上实例执行结果为:

这是一个多行字符串的实例 多行字符串可使用制表符 TAB ( )。 也可使用换行符 [ ]。

三引号让程序员从引号和特殊字符串的泥潭里面解脱出来,自始至终保持一小块字符串的格式是所谓的WYSIWYG(所见即所得)格式的。

一个典型的用例是,当你须要一块HTML或者SQL时,这时用字符串组合,特殊字符串转义将会很是的繁琐。

errHTML = ''' <HTML><HEAD><TITLE> Friends CGI Demo</TITLE></HEAD> <BODY><H3>ERROR</H3> <B>%s</B><P> <FORM><INPUT TYPE=button VALUE=Back ONCLICK="window.history.back()"></FORM> </BODY></HTML> ''' cursor.execute(''' CREATE TABLE users ( login VARCHAR(8), uid INTEGER, prid INTEGER) ''')

Unicode 字符串

在Python2中,普通字符串是以8位ASCII码进行存储的,而Unicode字符串则存储为16位unicode字符串,这样可以表示更多的字符集。使用的语法是在字符串前面加上前缀 u

在Python3中,全部的字符串都是Unicode字符串。


Python 的字符串内建函数

Python 的字符串经常使用内建函数以下:

 

序号 方法及描述
1

capitalize()
将字符串的第一个字符转换为大写

2

center(width, fillchar)


返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。
3

count(str, beg= 0,end=len(string))


返回 str 在 string 里面出现的次数,若是 beg 或者 end 指定则返回指定范围内 str 出现的次数
4

bytes.decode(encoding="utf-8", errors="strict")


Python3 中没有 decode 方法,但咱们可使用 bytes 对象的 decode() 方法来解码给定的 bytes 对象,这个 bytes 对象能够由 str.encode() 来编码返回。
5

encode(encoding='UTF-8',errors='strict')


以 encoding 指定的编码格式编码字符串,若是出错默认报一个ValueError 的异常,除非 errors 指定的是'ignore'或者'replace'
6

endswith(suffix, beg=0, end=len(string))
检查字符串是否以 obj 结束,若是beg 或者 end 指定则检查指定的范围内是否以 obj 结束,若是是,返回 True,不然返回 False.

7

expandtabs(tabsize=8)


把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8 。
8

find(str, beg=0 end=len(string))


检测 str 是否包含在字符串中 中,若是 beg 和 end 指定范围,则检查是否包含在指定范围内,若是是返回开始的索引值,不然返回-1
9

index(str, beg=0, end=len(string))


跟find()方法同样,只不过若是str不在字符串中会报一个异常.
10

isalnum()


若是字符串至少有一个字符而且全部字符都是字母或数字则返 回 True,不然返回 False
11

isalpha()


若是字符串至少有一个字符而且全部字符都是字母则返回 True, 不然返回 False
12

isdigit()


若是字符串只包含数字则返回 True 不然返回 False..
13

islower()


若是字符串中包含至少一个区分大小写的字符,而且全部这些(区分大小写的)字符都是小写,则返回 True,不然返回 False
14

isnumeric()


若是字符串中只包含数字字符,则返回 True,不然返回 False
15

isspace()


若是字符串中只包含空格,则返回 True,不然返回 False.
16

istitle()


若是字符串是标题化的(见 title())则返回 True,不然返回 False
17

isupper()


若是字符串中包含至少一个区分大小写的字符,而且全部这些(区分大小写的)字符都是大写,则返回 True,不然返回 False
18

join(seq)


以指定字符串做为分隔符,将 seq 中全部的元素(的字符串表示)合并为一个新的字符串
19

len(string)


返回字符串长度
20

ljust(width[, fillchar])


返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。
21

lower()


转换字符串中全部大写字符为小写.
22

lstrip()


截掉字符串左边的空格
23

maketrans()


建立字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示须要转换的字符,第二个参数也是字符串表示转换的目标。
24

max(str)


返回字符串 str 中最大的字母。
25

min(str)


返回字符串 str 中最小的字母。
26

replace(old, new [, max])


把 将字符串中的 str1 替换成 str2,若是 max 指定,则替换不超过 max 次。
27

rfind(str, beg=0,end=len(string))


相似于 find()函数,不过是从右边开始查找.
28

rindex( str, beg=0, end=len(string))


相似于 index(),不过是从右边开始.
29

rjust(width,[, fillchar])


返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串
30

rstrip()


删除字符串字符串末尾的空格.
31

split(str="", num=string.count(str))


num=string.count(str)) 以 str 为分隔符截取字符串,若是 num 有指定值,则仅截取 num 个子字符串
32

splitlines([keepends])


按照行('\r', '\r\n', \n')分隔,返回一个包含各行做为元素的列表,若是参数 keepends 为 False,不包含换行符,若是为 True,则保留换行符。
33

startswith(str, beg=0,end=len(string))


检查字符串是不是以 obj 开头,是则返回 True,不然返回 False。若是beg 和 end 指定值,则在指定范围内检查。
34

strip([chars])


在字符串上执行 lstrip()和 rstrip()
35

swapcase()


将字符串中大写转换为小写,小写转换为大写
36

title()


返回"标题化"的字符串,就是说全部单词都是以大写开始,其他字母均为小写(见 istitle())
37

translate(table, deletechars="")


根据 str 给出的表(包含 256 个字符)转换 string 的字符, 要过滤掉的字符放到 deletechars 参数中
38

upper()


转换字符串中的小写字母为大写
39

zfill (width)


返回长度为 width 的字符串,原字符串右对齐,前面填充0
40

isdecimal()


检查字符串是否只包含十进制字符,若是是返回 true,不然返回 false。

 

Python3 列表

序列是Python中最基本的数据结构。序列中的每一个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。

Python有6个序列的内置类型,但最多见的是列表和元组。

序列均可以进行的操做包括索引,切片,加,乘,检查成员。

此外,Python已经内置肯定序列的长度以及肯定最大和最小的元素的方法。

列表是最经常使用的Python数据类型,它能够做为一个方括号内的逗号分隔值出现。

列表的数据项不须要具备相同的类型

建立一个列表,只要把逗号分隔的不一样的数据项使用方括号括起来便可。以下所示:

list1 = ['Google', 'Runoob', 1997, 2000]; list2 = [1, 2, 3, 4, 5 ]; list3 = ["a", "b", "c", "d"];

与字符串的索引同样,列表索引从0开始。列表能够进行截取、组合等。


访问列表中的值

使用下标索引来访问列表中的值,一样你也可使用方括号的形式截取字符,以下所示:

实例(Python 3.0+)

#!/usr/bin/python3 list1 = ['Google', 'Runoob', 1997, 2000]; list2 = [1, 2, 3, 4, 5, 6, 7 ]; print ("list1[0]: ", list1[0]) print ("list2[1:5]: ", list2[1:5])

运行实例 »

以上实例输出结果:

list1[0]: Google list2[1:5]: [2, 3, 4, 5]

更新列表

你能够对列表的数据项进行修改或更新,你也可使用append()方法来添加列表项,以下所示:

实例(Python 3.0+)

#!/usr/bin/python3 list = ['Google', 'Runoob', 1997, 2000] print ("第三个元素为 : ", list[2]) list[2] = 2001 print ("更新后的第三个元素为 : ", list[2])

注意:咱们会在接下来的章节讨论append()方法的使用

以上实例输出结果:

第三个元素为 : 1997 更新后的第三个元素为 : 2001

删除列表元素

可使用 del 语句来删除列表的的元素,以下实例:

实例(Python 3.0+)

#!/usr/bin/python3 list = ['Google', 'Runoob', 1997, 2000] print (list) del list[2] print ("删除第三个元素 : ", list) </pre> <p>以上实例输出结果:</p>

删除第三个元素 : ['Google', 'Runoob', 2000]

注意:咱们会在接下来的章节讨论remove()方法的使用


Python列表脚本操做符

列表对 + 和 * 的操做符与字符串类似。+ 号用于组合列表,* 号用于重复列表。

以下所示:

Python 表达式 结果 描述
len([1, 2, 3]) 3 长度
[1, 2, 3] + [4, 5, 6] [1, 2, 3, 4, 5, 6] 组合
['Hi!'] * 4 ['Hi!', 'Hi!', 'Hi!', 'Hi!'] 重复
3 in [1, 2, 3] True 元素是否存在于列表中
for x in [1, 2, 3]: print(x, end=" ") 1 2 3 迭代

Python列表截取与拼接

Python的列表截取与字符串操做类型,以下所示:

L=['Google', 'Runoob', 'Taobao']

操做:

Python 表达式 结果 描述
L[2] 'Taobao' 读取第三个元素
L[-2] 'Runoob' 从右侧开始读取倒数第二个元素: count from the right
L[1:] ['Runoob', 'Taobao'] 输出从第二个元素开始后的全部元素
>>>L=['Google', 'Runoob', 'Taobao'] >>> L[2] 'Taobao' >>> L[-2] 'Runoob' >>> L[1:] ['Runoob', 'Taobao'] >>>

列表还支持拼接操做:

>>>squares = [1, 4, 9, 16, 25] >>> squares + [36, 49, 64, 81, 100] [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

嵌套列表

使用嵌套列表即在列表里建立其它列表,例如:

>>>a = ['a', 'b', 'c'] >>> n = [1, 2, 3] >>> x = [a, n] >>> x [['a', 'b', 'c'], [1, 2, 3]] >>> x[0] ['a', 'b', 'c'] >>> x[0][1] 'b'

Python列表函数&方法

Python包含如下函数:

序号 函数
1 len(list)
列表元素个数
2 max(list)
返回列表元素最大值
3 min(list)
返回列表元素最小值
4 list(seq)
将元组转换为列表

Python包含如下方法:

 

序号 方法
1 list.append(obj)
在列表末尾添加新的对象
2 list.count(obj)
统计某个元素在列表中出现的次数
3 list.extend(seq)
在列表末尾一次性追加另外一个序列中的多个值(用新列表扩展原来的列表)
4 list.index(obj)
从列表中找出某个值第一个匹配项的索引位置
5 list.insert(index, obj)
将对象插入列表
6 list.pop(obj=list[-1])
移除列表中的一个元素(默认最后一个元素),而且返回该元素的值
7 list.remove(obj)
移除列表中某个值的第一个匹配项
8 list.reverse()
反向列表中元素
9 list.sort([func])
对原列表进行排序
10 list.clear()
清空列表
11 list.copy()
复制列表

 

 

Python3 元组

Python 的元组与列表相似,不一样之处在于元组的元素不能修改。

元组使用小括号,列表使用方括号。

元组建立很简单,只须要在括号中添加元素,并使用逗号隔开便可。

以下实例:

tup1 = ('Google', 'Runoob', 1997, 2000); tup2 = (1, 2, 3, 4, 5 ); tup3 = "a", "b", "c", "d";

建立空元组

tup1 = ();

元组中只包含一个元素时,须要在元素后面添加逗号

tup1 = (50,);

元组与字符串相似,下标索引从0开始,能够进行截取,组合等。


访问元组

元组可使用下标索引来访问元组中的值,以下实例:

#!/usr/bin/python3 tup1 = ('Google', 'Runoob', 1997, 2000) tup2 = (1, 2, 3, 4, 5, 6, 7 ) print ("tup1[0]: ", tup1[0]) print ("tup2[1:5]: ", tup2[1:5])

以上实例输出结果:

tup1[0]: Google tup2[1:5]: (2, 3, 4, 5)

修改元组

元组中的元素值是不容许修改的,但咱们能够对元组进行链接组合,以下实例:

#!/usr/bin/python3 tup1 = (12, 34.56); tup2 = ('abc', 'xyz') # 如下修改元组元素操做是非法的。 # tup1[0] = 100 # 建立一个新的元组 tup3 = tup1 + tup2; print (tup3)

以上实例输出结果:

(12, 34.56, 'abc', 'xyz')

删除元组

元组中的元素值是不容许删除的,但咱们可使用del语句来删除整个元组,以下实例:

#!/usr/bin/python3 tup = ('Google', 'Runoob', 1997, 2000) print (tup) del tup; print ("删除后的元组 tup : ") print (tup)

以上实例元组被删除后,输出变量会有异常信息,输出以下所示:

删除后的元组 tup : Traceback (most recent call last): File "test.py", line 8, in <module> print (tup) NameError: name 'tup' is not defined

元组运算符

与字符串同样,元组之间可使用 + 号和 * 号进行运算。这就意味着他们能够组合和复制,运算后会生成一个新的元组。

Python 表达式 结果 描述
len((1, 2, 3)) 3 计算元素个数
(1, 2, 3) + (4, 5, 6) (1, 2, 3, 4, 5, 6) 链接
('Hi!',) * 4 ('Hi!', 'Hi!', 'Hi!', 'Hi!') 复制
3 in (1, 2, 3) True 元素是否存在
for x in (1, 2, 3): print x, 1 2 3 迭代

元组索引,截取

由于元组也是一个序列,因此咱们能够访问元组中的指定位置的元素,也能够截取索引中的一段元素,以下所示:

元组:

L = ('Google', 'Taobao', 'Runoob')
Python 表达式 结果 描述
L[2] 'Runoob!' 读取第三个元素
L[-2] 'Taobao' 反向读取;读取倒数第二个元素
L[1:] ('Taobao', 'Runoob!') 截取元素,从第二个开始后的全部元素。

运行实例以下:

>>> L = ('Google', 'Taobao', 'Runoob') >>> L[2] 'Runoob' >>> L[-2] 'Taobao' >>> L[1:] ('Taobao', 'Runoob')

元组内置函数

Python元组包含了如下内置函数

序号 方法及描述 实例
1 len(tuple)
计算元组元素个数。
>>> tuple1 = ('Google', 'Runoob', 'Taobao') >>> len(tuple1) 3 >>>
2 max(tuple)
返回元组中元素最大值。
>>> tuple2 = ('5', '4', '8') >>> max(tuple2) '8' >>>
3 min(tuple)
返回元组中元素最小值。
>>> tuple2 = ('5', '4', '8') >>> min(tuple2) '4' >>>
4 tuple(seq)
将列表转换为元组。
>>> list1= ['Google', 'Taobao', 'Runoob', 'Baidu'] >>> tuple1=tuple(list1) >>> tuple1 ('Google', 'Taobao', 'Runoob', 'Baidu')

 

 

Python3 字典

字典是另外一种可变容器模型,且可存储任意类型对象。

字典的每一个键值(key=>value)对用冒号(:)分割,每一个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式以下所示:

d = {key1 : value1, key2 : value2 }

键必须是惟一的,但值则没必要。

值能够取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

一个简单的字典实例:

dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}

也可如此建立字典:

dict1 = { 'abc': 456 }; dict2 = { 'abc': 123, 98.6: 37 };

访问字典里的值

把相应的键放入熟悉的方括弧,以下实例:

#!/usr/bin/python3 dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} print ("dict['Name']: ", dict['Name']) print ("dict['Age']: ", dict['Age'])

以上实例输出结果:

dict['Name']: Runoob dict['Age']: 7

若是用字典里没有的键访问数据,会输出错误以下:

#!/usr/bin/python3 dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}; print ("dict['Alice']: ", dict['Alice'])

以上实例输出结果:

Traceback (most recent call last): File "test.py", line 5, in <module> print ("dict['Alice']: ", dict['Alice']) KeyError: 'Alice'

 


修改字典

向字典添加新内容的方法是增长新的键/值对,修改或删除已有键/值对以下实例:

#!/usr/bin/python3 dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} dict['Age'] = 8; # 更新 Age dict['School'] = "菜鸟教程" # 添加信息 print ("dict['Age']: ", dict['Age']) print ("dict['School']: ", dict['School'])

以上实例输出结果:

dict['Age']: 8 dict['School']: 菜鸟教程

 


删除字典元素

能删单一的元素也能清空字典,清空只需一项操做。

显示删除一个字典用del命令,以下实例:

#!/usr/bin/python3 dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} del dict['Name'] # 删除键 'Name' dict.clear() # 删除字典 del dict # 删除字典 print ("dict['Age']: ", dict['Age']) print ("dict['School']: ", dict['School'])

但这会引起一个异常,由于用执行 del 操做后字典再也不存在:

Traceback (most recent call last): File "test.py", line 9, in <module> print ("dict['Age']: ", dict['Age']) TypeError: 'type' object is not subscriptable

注:del() 方法后面也会讨论。

 

字典键的特性

字典值能够没有限制地取任何python对象,既能够是标准的对象,也能够是用户定义的,但键不行。

两个重要的点须要记住:

 

1)不容许同一个键出现两次。建立时若是同一个键被赋值两次,后一个值会被记住,以下实例:

 

#!/usr/bin/python3 dict = {'Name': 'Runoob', 'Age': 7, 'Name': '小菜鸟'} print ("dict['Name']: ", dict['Name'])

以上实例输出结果:

dict['Name']: 小菜鸟

2)键必须不可变,因此能够用数字,字符串或元组充当,而用列表就不行,以下实例:

#!/usr/bin/python3 dict = {['Name']: 'Runoob', 'Age': 7} print ("dict['Name']: ", dict['Name'])

以上实例输出结果:

Traceback (most recent call last): File "test.py", line 3, in <module> dict = {['Name']: 'Runoob', 'Age': 7} TypeError: unhashable type: 'list'

 


字典内置函数&方法

Python字典包含了如下内置函数:

序号 函数及描述 实例
1 len(dict)
计算字典元素个数,即键的总数。
>>> dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} >>> len(dict) 3
2 str(dict)
输出字典,以可打印的字符串表示。
>>> dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} >>> str(dict) "{'Name': 'Runoob', 'Class': 'First', 'Age': 7}"
3 type(variable)
返回输入的变量类型,若是变量是字典就返回字典类型。
>>> dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} >>> type(dict) <class 'dict'>

Python字典包含了如下内置方法:

 

序号 函数及描述
1 radiansdict.clear()
删除字典内全部元素
2 radiansdict.copy()
返回一个字典的浅复制
3 radiansdict.fromkeys()
建立一个新字典,以序列seq中元素作字典的键,val为字典全部键对应的初始值
4 radiansdict.get(key, default=None)
返回指定键的值,若是值不在字典中返回default值
5 key in dict
若是键在字典dict里返回true,不然返回false
6 radiansdict.items()
以列表返回可遍历的(键, 值) 元组数组
7 radiansdict.keys()
以列表返回一个字典全部的键
8 radiansdict.setdefault(key, default=None)
和get()相似, 但若是键不存在于字典中,将会添加键并将值设为default
9 radiansdict.update(dict2)
把字典dict2的键/值对更新到dict里
10 radiansdict.values()
以列表返回字典中的全部值
11 pop(key[,default])
删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 不然,返回default值。
12 popitem()随机返回并删除字典中的一对键和值。
相关文章
相关标签/搜索