一、python是一门编程语言,它是众多编程语言中的一种; html
二、语法简洁、优雅、编写的程序容易阅读; python
三、跨平台,可运行在Windows、Linux以及MacOS; git
四、易于学习。站在非计算机专业的角度来说,若是把编程看成解决问题的工具,python确实相较于C++、Java、JavaScript等语言要易于学习和掌握; 程序员
五、极为强大的标准库与第三方库,好比电子邮件,好比图形GUI界面;web
六、python是面向对象的语言;(面向对象就是一个思想) 算法
一、简洁,灵活,优雅,哲学;(python之禅) express
二、易于上手难于精通; 编程
三、python既有动态脚本的特性,又有面向对象的特性,很是具备本身的特色; api
四、应用:爬虫,大数据,测试,web,AI,脚本处理 数组
一、慢(感受不到),相较于C、C++、Java,运行效率较慢 编译型语言(C,C++)、解释型语言(JavaScript,python),Java和C##是一个中间语言(他们的归类不重要) 运行效率与开发效率,鱼和熊掌不可兼得,语言适合的才是最好的 一个学习编程的经典误区 世界上不是只有web,还有许多的问题须要使用编程来解决。不要把思惟局限在web上,这只是编程的一个应用方向
一、爬虫
二、大数据与数据分析(Spark)
三、自动化运维与自动化测试
四、Web开发:Flask,Django
五、机器学习(Tensor Flow)
六、胶水语言:混合其余如C++、Java等来编程。可以把用其余语言制做的各类模块(尤为是C/C++)很轻松地联合在一块儿 怎么面对python:当你遇到问题是,随手拿起python,编写一个工具,这才是python的正确打开方式
默认状况下,Python 3 源码文件以 UTF-8 编码,全部字符串都是 unicode 字符串。 固然你也能够为源码文件指定不一样的编码:
# -*- coding: cp-1252 -*-复制代码
上述定义容许在源文件中使用 Windows-1252 字符集中的字符编码,对应适合语言为保加利亚语、白罗斯语、马其顿语、俄语、塞尔维亚语。
在 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 3.0+)
# 第一个注释
print ("Hello, Python!") # 第二个注释复制代码
执行以上代码,输出结果为:
Hello, Python!复制代码
多行注释能够用多个 # 号,还有 ''' 和 """:
实例(Python 3.0+)
# 第一个注释
# 第二个注释
''' 第三注释 第四注释 '''
""" 第五注释 第六注释 """
print ("Hello, Python!")复制代码
执行以上代码,输出结果为:
Hello, Python!复制代码
python最具特点的就是使用缩进来表示代码块,不须要使用大括号 {} 。
缩进的空格数是可变的,可是同一个代码块的语句必须包含相同的缩进空格数。实例以下:
实例(Python 3.0+)
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复制代码
Python 一般是一行写完一条语句,但若是语句很长,咱们可使用反斜杠(\)来实现多行语句,例如:
total = item_one + \
item_two + \
item_three复制代码
在 [], {}, 或 () 中的多行语句,不须要使用反斜杠(\),例如:
total = ['item_one', 'item_two', 'item_three',
'item_four', 'item_five']复制代码
python中数字有四种类型:整数、布尔型、浮点数和复数。
word = '字符串'
sentence = "这是一个句子。"
paragraph = """这是一个段落, 能够由多行组成"""复制代码
实例(Python 3.0+)
str='Runoob'
print(str) # 输出字符串
print(str[0:-1]) # 输出第一个到倒数第二个的全部字符
print(str[0]) # 输出字符串第一个字符
print(str[2:5]) # 输出从第三个开始到第五个的字符
print(str[2:]) # 输出从第三个开始后的全部字符
print(str * 2) # 输出字符串两次
print(str + '你好') # 链接字符串
print('------------------------------')
print('hello\nrunoob') # 使用反斜杠(\)+n转义特殊字符
print(r'hello\nrunoob') # 在字符串前面添加一个 r,表示原始字符串,不会发生转义复制代码
这里的 r 指 raw,即 raw string。
输出结果为:
Runoob
Runoo
R
noo
noob
RunoobRunoob
Runoob你好
------------------------------
hello
runoob
hello\nrunoob复制代码
函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。
空行与代码缩进不一样,空行并非Python语法的一部分。书写时不插入空行,Python解释器运行也不会出错。可是空行的做用在于分隔两段不一样功能或含义的代码,便于往后代码的维护或重构。
记住:空行也是程序代码的一部分。
执行下面的程序在按回车键后就会等待用户输入:
实例(Python 3.0+)
input("\n\n按下 enter 键后退出。")复制代码
以上代码中 ,"\n\n"在结果输出前会输出两个新的空行。一旦用户按下 enter 键时,程序将退出。
Python能够在同一行中使用多条语句,语句之间使用分号(;)分割,如下是一个简单的实例:
实例(Python 3.0+)
import sys; x = 'runoob'; sys.stdout.write(x + '\n')复制代码
使用脚本执行以上代码,输出结果为:
runoob复制代码
使用交互式命令行执行,输出结果为:
>>> import sys; x = 'runoob'; sys.stdout.write(x + '\n')
runoob
7复制代码
此处的 7 表示字符数。
缩进相同的一组语句构成一个代码块,咱们称之代码组。
像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复制代码
在 python
用 import
或者 from...import
来导入相应的模块。
将整个模块(somemodule)导入,格式为: import somemodule
从某个模块中导入某个函数,格式为: from somemodule import somefunction
从某个模块中导入多个函数,格式为: from somemodule import firstfunc, secondfunc, thirdfunc
将某个模块中的所有函数导入,格式为: from somemodule import *
import sys
print('================Python import mode==========================')
print ('命令行参数为:')
for i in sys.argv:
print (i)
print ('\n python 路径为',sys.path)复制代码
from sys import argv,path # 导入特定的成员
print('================python from import===================================')
print('path:',path) # 由于已经导入path成员,因此此处引用时不须要加sys.path复制代码
不少程序能够执行一些操做来查看一些基本信息,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
[ etc. ]复制代码
Python 中的变量不须要声明。每一个变量在使用前都必须赋值,变量赋值之后该变量才会被建立。
在 Python 中,变量就是变量,它没有类型,咱们所说的"类型"是变量所指的内存中对象的类型。
等号(=)用来给变量赋值。
等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。例如:
实例(Python 3.0+)
counter = 100 # 整型变量
miles = 1000.0 # 浮点型变量
name = "runoob" # 字符串
print (counter)
print (miles)
print (name)复制代码
执行以上程序会输出以下结果:
100
1000.0
runoob复制代码
Python容许你同时为多个变量赋值。例如:
a = b = c = 1复制代码
以上实例,建立一个整型对象,值为 1,从后向前赋值,三个变量被赋予相同的数值。
您也能够为多个对象指定多个变量。例如:
a, b, c = 1, 2, "runoob"复制代码
以上实例,两个整型对象 1 和 2 的分配给变量 a 和 b,字符串对象 "runoob" 分配给变量 c。
Python3 中有六个标准的数据类型:
Python3 的六个标准数据类型中:
Python3 支持 int(整数)、float(浮点数)、bool(布尔)、complex(复数)。
在Python 3里,只有一种整数类型 int
,表示为长整型,没有 python2 中的 Long。
像大多数语言同样,数值类型的赋值和计算都是很直观的。
内置的 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'>复制代码
此外还能够用 isinstance
来判断:
实例
>>>a = 111
>>> isinstance(a, int)
True
>>>复制代码
isinstance
和 type
的区别在于:
type()
不会认为子类是一种父类类型。isinstance()
会认为子类是一种父类类型。>>> class A:
... pass
...
>>> class B(A):
... pass
...
>>> isinstance(A(), A)
True
>>> type(A()) == A
True
>>> isinstance(B(), A)
True
>>> type(B()) == A
False复制代码
注意:在 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复制代码
注意:
int | float | complex |
---|---|---|
10 | 0.0 | 3.14j |
100 | 15.20 | 45.j |
-786 | -21.9 | 9.322e-36j |
080 | 32.3e+18 | .876j |
-0490 | -90. | -.6545+0J |
-0x260 | -32.54e100 | 3e+26J |
0x69 | 70.2E-12 | 4.53e-7j |
Python还支持复数,复数由实数部分和虚数部分构成,能够用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型
Python中的字符串用单引号 ' 或双引号 " 括起来,同时使用反斜杠 \ 转义特殊字符。
字符串的截取的语法格式以下:
变量[头下标:尾下标]复制代码
索引值以 0 为开始值,-1 为从末尾的开始位置。
加号 + 是字符串的链接符, 星号 * 表示复制当前字符串,紧跟的数字为复制的次数。实例以下:
实例
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
noo
noob
RunoobRunoob
RunoobTEST复制代码
Python 使用反斜杠(\)转义特殊字符,若是你不想让反斜杠发生转义,能够在字符串前面添加一个 r,表示原始字符串:
>>> print('Ru\noob')
Ru
oob
>>> print(r'Ru\noob')
Ru\noob
>>> 复制代码
另外,反斜杠(\)能够做为续行符,表示下一行是上一行的延续。也可使用 """...""" 或者 '''...''' 跨越多行。
注意,Python 没有单独的字符类型,一个字符就是长度为1的字符串。
实例
>>>word = 'Python'
>>> print(word[0], word[5])
P n
>>> print(word[-1], word[-6])
n P复制代码
与 C 字符串不一样的是,Python 字符串不能被改变。向一个索引位置赋值,好比word[0] = 'm'会致使错误。
注意:
List(列表) 是 Python 中使用最频繁的数据类型。
列表能够完成大多数集合类的数据结构实现。列表中元素的类型能够不相同,它支持数字,字符串甚至能够包含列表(所谓嵌套)。
列表是写在方括号 [] 之间、用逗号分隔开的元素列表。
和字符串同样,列表一样能够被索引和截取,列表被截取后返回一个包含所需元素的新列表。
列表截取的语法格式以下:
变量[头下标:尾下标]复制代码
索引值以 0 为开始值,-1 为从末尾的开始位置。
加号 + 是列表链接运算符,星号 * 是重复操做。以下实例:
实例
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() 等等,这在后面会讲到。
注意:
Python 列表截取能够接收第三个参数,参数做用是截取的步长,如下实例在索引 1 到索引 4 的位置并设置为步长为 2(间隔一个位置)来截取字符串:
若是第三个参数为负数表示逆向读取,如下实例用于翻转字符串:
实例
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)与列表相似,不一样之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。
元组中的元素类型也能够不相同:
实例
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
>>>复制代码
虽然tuple的元素不可改变,但它能够包含可变的对象,好比list列表。
构造包含 0 个或 1 个元素的元组比较特殊,因此有一些额外的语法规则:
tup1 = () # 空元组
tup2 = (20,) # 一个元素,须要在元素后添加逗号复制代码
string、list 和 tuple 都属于 sequence(序列)。
注意:
集合(set)是由一个或数个形态万千的大小总体组成的,构成集合的事物或对象称做元素或是成员。
基本功能是进行成员关系测试和删除重复元素。
可使用大括号 { } 或者 set() 函数建立集合,注意:建立一个空集合必须用 set() 而不是 { },由于 { } 是用来建立一个空字典。
建立格式:
parame = {value01,value02,...}
或者
set(value)复制代码
实例
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'}复制代码
字典(dictionary)是Python中另外一个很是有用的内置数据类型。
列表是有序的对象集合,字典是无序的对象集合。二者之间的区别在于:字典当中的元素是经过键来存取的,而不是经过偏移存取。
字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。
键(key)必须使用不可变类型。
在同一个字典中,键(key)必须是惟一的。
实例
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)])
{'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)
{'Runoob': 1, 'Google': 2, 'Taobao': 3}复制代码
另外,字典类型也有一些内置的函数,例如clear()、keys()、values()等。
注意:
有时候,咱们须要对数据内置的类型进行转换,数据类型的转换,你只须要将数据类型做为函数名便可。
如下几个内置的函数能够执行数据类型之间的转换。这些函数返回一个新的对象,表示转换的值。
函数 | 描述 |
---|---|
将x转换为一个整数 |
|
将x转换到一个浮点数 |
|
建立一个复数 |
|
将对象 x 转换为字符串 |
|
将对象 x 转换为表达式字符串 |
|
用来计算在字符串中的有效Python表达式,并返回一个对象 |
|
将序列 s 转换为一个元组 |
|
将序列 s 转换为一个列表 |
|
转换为可变集合 |
|
建立一个字典。d 必须是一个 (key, value)元组序列。 |
|
转换为不可变集合 |
|
将一个整数转换为一个字符 |
|
将一个字符转换为它的整数值 |
|
将一个整数转换为一个十六进制字符串 |
|
将一个整数转换为一个八进制字符串 |
确保对模块, 函数, 方法和行内注释使用正确的风格
Python中的注释有单行注释和多行注释:
Python中单行注释以 # 开头,例如::
多行注释用三个单引号 ''' 或者三个双引号 """ 将注释括起来,例如:
''' 这是多行注释,用三个单引号 这是多行注释,用三个单引号 这是多行注释,用三个单引号 '''
print("Hello, World!")复制代码
""" 这是多行注释,用三个双引号 这是多行注释,用三个双引号 这是多行注释,用三个双引号 """
print("Hello, World!")复制代码
本章节主要说明Python的运算符。举个简单的例子 4 +5 = 9 。 例子中,4 和 5 被称为操做数,"+" 称为运算符。
Python语言支持如下类型的运算符:
接下来让咱们一个个来学习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//2
-5复制代码 |
如下实例演示了Python全部算术运算符的操做:
实例(Python 3.0+)
#!/usr/bin/python3
a = 21
b = 10
c = 0
c = a + b
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复制代码
如下假设变量a为10,变量b为20:
运算符 | 描述 | 实例 |
---|---|---|
== | 等于 - 比较对象是否相等 | (a == b) 返回 False。 |
!= | 不等于 - 比较两个对象是否不相等 | (a != b) 返回 True。 |
> | 大于 - 返回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全部比较运算符的操做:
实例(Python 3.0+)
#!/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 ):
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复制代码
如下假设变量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 |
:= | 海象运算符,可在表达式内部为变量赋值。Python3.8 版本新增运算符。 | 在这个示例中,赋值表达式能够避免调用 len() 两次: if (n := len(a)) > 10:
print(f"List is too long ({n} elements, expected <= 10)")复制代码 |
如下实例演示了Python全部赋值运算符的操做:
实例(Python 3.0+)
#!/usr/bin/python3
a = 21
b = 10
c = 0
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复制代码
按位运算符是把数字看做二进制来进行计算的。Python中的按位运算法则以下:
下表中变量 a 为 60,b 为 13二进制格式以下:
a = 0011 1100
b = 0000 1101
-----------------
a&b = 0000 1100
a|b = 0011 1101
a^b = 0011 0001
~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。~x 相似于 -x-1 | (~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。 |
<< | 左移动运算符:运算数的各二进位所有左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。 | a << 2 输出结果 240 ,二进制解释: 1111 0000 |
>> | 右移动运算符:把">>"左边的运算数的各二进位所有右移若干位,">>"右边的数指定移动的位数 | a >> 2 输出结果 15 ,二进制解释: 0000 1111 |
如下实例演示了Python全部位运算符的操做:
实例(Python 3.0+)
#!/usr/bin/python3
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = 0
c = a & b; # 12 = 0000 1100
print ("1 - c 的值为:", c)
c = a | b; # 61 = 0011 1101
print ("2 - c 的值为:", c)
c = a ^ b; # 49 = 0011 0001
print ("3 - c 的值为:", c)
c = ~a; # -61 = 1100 0011
print ("4 - c 的值为:", c)
c = a << 2; # 240 = 1111 0000
print ("5 - c 的值为:", c)
c = a >> 2; # 15 = 0000 1111
print ("6 - c 的值为:", c)复制代码
以上实例输出结果:
1 - c 的值为: 12
2 - c 的值为: 61
3 - c 的值为: 49
4 - c 的值为: -61
5 - c 的值为: 240
6 - c 的值为: 15复制代码
6. Python逻辑运算符
Python语言支持逻辑运算符,如下假设变量 a 为 10, b为 20:
运算符 | 逻辑表达式 | 描述 | 实例 |
---|---|---|---|
and | x and y | 布尔"与" - 若是 x 为 False,x and y 返回 False,不然它返回 y 的计算值。 | (a and b) 返回 20。 |
or | x or y | 布尔"或" - 若是 x 是 True,它返回 x 的值,不然它返回 y 的计算值。 | (a or b) 返回 10。 |
not | not x | 布尔"非" - 若是 x 为 True,返回 False 。若是 x 为 False,它返回 True。 | not(a and b) 返回 False |
以上实例输出结果:
实例(Python 3.0+)
#!/usr/bin/python3
a = 10
b = 20
if ( a and b ):
print ("1 - 变量 a 和 b 都为 true")
else:
print ("1 - 变量 a 和 b 有一个不为 true")
if ( a or b ):
print ("2 - 变量 a 和 b 都为 true,或其中一个变量为 true")
else:
print ("2 - 变量 a 和 b 都不为 true")
# 修改变量 a 的值
a = 0
if ( a and b ):
print ("3 - 变量 a 和 b 都为 true")
else:
print ("3 - 变量 a 和 b 有一个不为 true")
if ( a or b ):
print ("4 - 变量 a 和 b 都为 true,或其中一个变量为 true")
else:
print ("4 - 变量 a 和 b 都不为 true")
if not( a and b ):
print ("5 - 变量 a 和 b 都为 false,或其中一个变量为 false")
else:
print ("5 - 变量 a 和 b 都为 true")复制代码
以上实例输出结果:
1 - 变量 a 和 b 都为 true
2 - 变量 a 和 b 都为 true,或其中一个变量为 true
3 - 变量 a 和 b 有一个不为 true
4 - 变量 a 和 b 都为 true,或其中一个变量为 true
5 - 变量 a 和 b 都为 false,或其中一个变量为 false复制代码
7. Python成员运算符
除了以上的一些运算符以外,Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。
运算符 | 描述 | 实例 |
---|---|---|
in | 若是在指定的序列中找到值返回 True,不然返回 False。 | x 在 y 序列中 , 若是 x 在 y 序列中返回 True。 |
not in | 若是在指定的序列中没有找到值返回 True,不然返回 False。 | x 不在 y 序列中 , 若是 x 不在 y 序列中返回 True。 |
如下实例演示了Python全部成员运算符的操做:
实例(Python 3.0+)
#!/usr/bin/python3
a = 10
b = 20
list = [1, 2, 3, 4, 5 ];
if ( a in list ):
print ("1 - 变量 a 在给定的列表中 list 中")
else:
print ("1 - 变量 a 不在给定的列表中 list 中")
if ( b not in list ):
print ("2 - 变量 b 不在给定的列表中 list 中")
else:
print ("2 - 变量 b 在给定的列表中 list 中")
# 修改变量 a 的值
a = 2
if ( a in list ):
print ("3 - 变量 a 在给定的列表中 list 中")
else:
print ("3 - 变量 a 不在给定的列表中 list 中")复制代码
以上实例输出结果:
1 - 变量 a 不在给定的列表中 list 中
2 - 变量 b 不在给定的列表中 list 中
3 - 变量 a 在给定的列表中 list 中复制代码
身份运算符用于比较两个对象的存储单元
运算符 | 描述 | 实例 |
---|---|---|
is | is 是判断两个标识符是否是引用自一个对象 | x is y, 相似 id(x) == id(y) , 若是引用的是同一个对象则返回 True,不然返回 False |
is not | is not 是判断两个标识符是否是引用自不一样对象 | x is not y , 相似 id(a) != id(b)。若是引用的不是同一个对象则返回结果 True,不然返回 False。 |
注: id() 函数用于获取对象内存地址。
如下实例演示了Python全部身份运算符的操做:
实例(Python 3.0+)
a = 20
b = 20
if ( a is b ):
print ("1 - a 和 b 有相同的标识")
else:
print ("1 - a 和 b 没有相同的标识")
if ( id(a) == id(b) ):
print ("2 - a 和 b 有相同的标识")
else:
print ("2 - a 和 b 没有相同的标识")
# 修改变量 b 的值
b = 30
if ( a is b ):
print ("3 - a 和 b 有相同的标识")
else:
print ("3 - a 和 b 没有相同的标识")
if ( a is not b ):
print ("4 - a 和 b 没有相同的标识")
else:
print ("4 - a 和 b 有相同的标识")复制代码
以上实例输出结果:
1 - a 和 b 有相同的标识
2 - a 和 b 有相同的标识
3 - a 和 b 没有相同的标识
4 - a 和 b 没有相同的标识复制代码
is 与 == 区别:
is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。
>>>a = [1, 2, 3] >>> b = a >>> b is a True >>> b == a True >>> b = a[:] >>> b is a False >>> b == a True
如下表格列出了从最高到最低优先级的全部运算符:
运算符 | 描述 |
---|---|
** | 指数 (最高优先级) |
~ + - | 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@) |
* / % // | 乘,除,取模和取整除 |
+ - | 加法减法 |
>> << | 右移,左移运算符 |
& | 位 'AND' |
^ | | 位运算符 |
<= < > >= | 比较运算符 |
== != | 等于运算符 |
= %= /= //= -= += *= **= | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not and or | 逻辑运算符 |
如下实例演示了Python全部运算符优先级的操做:
实例(Python 3.0+)
#!/usr/bin/python3
a = 20
b = 10
c = 15
d = 5
e = 0
e = (a + b) * c / d #( 30 * 15 ) / 5
print ("(a + b) * c / d 运算结果为:", e)
e = ((a + b) * c) / d # (30 * 15 ) / 5
print ("((a + b) * c) / d 运算结果为:", e)
e = (a + b) * (c / d); # (30) * (15/5)
print ("(a + b) * (c / d) 运算结果为:", e)
e = a + (b * c) / d; # 20 + (150/5)
print ("a + (b * c) / d 运算结果为:", e)复制代码
以上实例输出结果:
(a + b) * c / d 运算结果为: 90.0
((a + b) * c) / d 运算结果为: 90.0
(a + b) * (c / d) 运算结果为: 90.0
a + (b * c) / d 运算结果为: 50.0复制代码
注意:Pyhton3 已不支持 <> 运算符,可使用 != 代替,若是你必定要使用这种比较运算符,可使用如下的方式:
>>> from __future__ import barry_as_FLUFL
>>> 1 <> 2
True复制代码
Python 数字数据类型用于存储数值。
数据类型是不容许改变的,这就意味着若是改变数字数据类型的值,将从新分配内存空间。
如下实例在变量赋值时 Number 对象将被建立:
var1 = 1
var2 = 10复制代码
您也可使用del语句删除一些数字对象的引用。
del语句的语法是:
del var1[,var2[,var3[....,varN]]]复制代码
您能够经过使用del语句删除单个或多个对象的引用,例如:
del var
del var_a, var_b复制代码
Python 支持三种不一样的数值类型:
咱们可使用十六进制和八进制来表明整数:
>>> 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.3e+18 | .876j |
-0490 | -90. | -.6545+0J |
-0x260 | -32.54e100 | 3e+26J |
0x69 | 70.2E-12 | 4.53e-7j |
有时候,咱们须要对数据内置的类型进行转换,数据类型的转换,你只须要将数据类型做为函数名便可。
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 解释器能够做为一个简单的计算器,您能够在解释器里输入一个表达式,它将输出表达式的值。
表达式的语法很直白: +, -, * 和 /, 和其它语言(如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复制代码
注意:// 获得的并不必定是整数类型的数,它与分母分子的数据类型有关系。
>>> 7//2
3
>>> 7.0//2
3.0
>>> 7//2.0
3.0
>>> 复制代码
等号 = 用于给变量赋值。赋值以后,除了下一个提示符,解释器不会显示任何结果。
>>> 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的平方根。 |
随机数能够用于数学,游戏,安全等领域中,还常常被嵌入到算法中,用以提升算法效率,并提升程序的安全性。
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) | 将角度转换为弧度 |
常量 | 描述 |
---|---|
pi | 数学常量 pi(圆周率,通常以π来表示) |
e | 数学常量 e,e即天然常数(天然常数)。 |
字符串是 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 3.0+)
#!/usr/bin/python3
var1 = 'Hello World!'
print ("已更新字符串 : ", var1[:6] + 'Runoob!')复制代码
以上实例执行结果
已更新字符串 : Hello Runoob!复制代码
在须要在字符中使用特殊字符时,python用反斜杠(\)转义字符。以下表:
转义字符 | 描述 |
---|---|
\(在行尾时) | 续行符 |
\\ | 反斜杠符号 |
\' | 单引号 |
\" | 双引号 |
\a | 响铃 |
\b | 退格(Backspace) |
\000 | 空 |
\n | 换行 |
\v | 纵向制表符 |
\t | 横向制表符 |
\r | 回车 |
\f | 换页 |
\oyy | 八进制数,yy 表明的字符,例如:\o12 表明换行,其中 o 是字母,不是数字 0。 |
\xyy | 十六进制数,yy表明的字符,例如:\x0a表明换行 |
\other | 其它的字符以普通格式输出 |
下表实例变量a值为字符串 "Hello",b变量值为 "Python":
操做符 | 描述 | 实例 |
---|---|---|
+ | 字符串链接 | a + b 输出结果: HelloPython |
* | 重复输出字符串 | a*2 输出结果:HelloHello |
[] | 经过索引获取字符串中字符 | a[1] 输出结果 e |
[ : ] | 截取字符串中的一部分,遵循左闭右开原则,str[0,2] 是不包含第 3 个字符的。 | a[1:4] 输出结果 ell |
in | 成员运算符 - 若是字符串中包含给定的字符返回 True | 'H' in a 输出结果 True |
not in | 成员运算符 - 若是字符串中不包含给定的字符返回 True | 'M' not in a 输出结果 True |
r/R | 原始字符串 - 原始字符串:全部的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母 r(能够大小写)之外,与普通字符串有着几乎彻底相同的语法。 | print( r'\n' )
print( R'\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 支持格式化字符串的输出 。尽管这样可能会用到很是复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。
在 Python 中,字符串格式化使用与 C 中 sprintf 函数同样的语法。
实例(Python 3.0+)
#!/usr/bin/python3
print ("我叫 %s 今年 %d 岁!" % ('小明', 10))复制代码
以上实例输出结果:
我叫 小明 今年 10 岁!复制代码
python字符串格式化符号:
符 号 | 描述 |
---|---|
%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 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) ''')复制代码
f-string 是 python3.6 以后版本添加的,称之为字面量格式化字符串,是新的格式化字符串的语法。
以前咱们习惯用百分号 (%):
实例
>>> name = 'Runoob'
>>> 'Hello %s' % name'Hello Runoob'复制代码
f-string 格式话字符串以 f 开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去,实例以下:
实例
>>> name = 'Runoob'
>>> f'Hello {name}' # 替换变量
>>> f'{1+2}' # 使用表达式'3'
>>> w = {'name': 'Runoob', 'url': 'www.runoob.com'}
>>> f'{w["name"]}: {w["url"]}''Runoob: www.runoob.com'复制代码
用了这种方式明显更简单了,不用再去判断使用 %s,仍是 %d。
在 Python 3.8 的版本中可使用 = 符号来拼接运算表达式与结果:
实例
>>> x = 1
>>> print(f'{x+1}') # Python 3.62
>>> x = 1
>>> print(f'{x+1=}') # Python 3.8'x+1=2'复制代码
在Python2中,普通字符串是以8位ASCII码进行存储的,而Unicode字符串则存储为16位unicode字符串,这样可以表示更多的字符集。使用的语法是在字符串前面加上前缀 u。
在Python3中,全部的字符串都是Unicode字符串。
Python 的字符串经常使用内建函数以下:
序号 | 方法及描述 |
---|---|
1 | capitalize() |
2 | 返回一个指定的宽度 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)) |
7 | 把字符串 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 | 若是字符串至少有一个字符而且全部字符都是字母或数字则返 回 True,不然返回 False |
11 | 若是字符串至少有一个字符而且全部字符都是字母则返回 True, 不然返回 False |
12 | 若是字符串只包含数字则返回 True 不然返回 False.. |
13 | 若是字符串中包含至少一个区分大小写的字符,而且全部这些(区分大小写的)字符都是小写,则返回 True,不然返回 False |
14 | 若是字符串中只包含数字字符,则返回 True,不然返回 False |
15 | 若是字符串中只包含空白,则返回 True,不然返回 False. |
16 | 若是字符串是标题化的(见 title())则返回 True,不然返回 False |
17 | 若是字符串中包含至少一个区分大小写的字符,而且全部这些(区分大小写的)字符都是大写,则返回 True,不然返回 False |
18 | 以指定字符串做为分隔符,将 seq 中全部的元素(的字符串表示)合并为一个新的字符串 |
19 | 返回字符串长度 |
20 | 返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。 |
21 | 转换字符串中全部大写字符为小写. |
22 | 截掉字符串左边的空格或指定字符。 |
23 | 建立字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示须要转换的字符,第二个参数也是字符串表示转换的目标。 |
24 | 返回字符串 str 中最大的字母。 |
25 | 返回字符串 str 中最小的字母。 |
26 | 把 将字符串中的 str1 替换成 str2,若是 max 指定,则替换不超过 max 次。 |
27 | rfind(str, beg=0,end=len(string)) 相似于 find()函数,不过是从右边开始查找. |
28 | rindex( str, beg=0, end=len(string)) 相似于 index(),不过是从右边开始. |
29 | 返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串 |
30 | 删除字符串字符串末尾的空格. |
31 | split(str="", num=string.count(str)) num=string.count(str)) 以 str 为分隔符截取字符串,若是 num 有指定值,则仅截取 num+1 个子字符串 |
32 | 按照行('\r', '\r\n', \n')分隔,返回一个包含各行做为元素的列表,若是参数 keepends 为 False,不包含换行符,若是为 True,则保留换行符。 |
33 | startswith(substr, beg=0,end=len(string)) 检查字符串是不是以指定子字符串 substr 开头,是则返回 True,不然返回 False。若是beg 和 end 指定值,则在指定范围内检查。 |
34 | 在字符串上执行 lstrip()和 rstrip() |
35 | 将字符串中大写转换为小写,小写转换为大写 |
36 | 返回"标题化"的字符串,就是说全部单词都是以大写开始,其他字母均为小写(见 istitle()) |
37 | translate(table, deletechars="") 根据 str 给出的表(包含 256 个字符)转换 string 的字符, 要过滤掉的字符放到 deletechars 参数中 |
38 | 转换字符串中的小写字母为大写 |
39 | 返回长度为 width 的字符串,原字符串右对齐,前面填充0 |
40 | 检查字符串是否只包含十进制字符,若是是返回 true,不然返回 false。 |
序列是Python中最基本的数据结构。序列中的每一个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。
Python有6个序列的内置类型,但最多见的是列表和元组。
序列均可以进行的操做包括索引,切片,加,乘,检查成员。
此外,Python已经内置肯定序列的长度以及肯定最大和最小的元素的方法。
列表是最经常使用的Python数据类型,它能够做为一个方括号内的逗号分隔值出现。
列表的数据项不须要具备相同的类型
建立一个列表,只要把逗号分隔的不一样的数据项使用方括号括起来便可。以下所示:
与字符串的索引同样,列表索引从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)复制代码
以上实例输出结果:
原始列表 : ['Google', 'Runoob', 1997, 2000]
删除第三个元素 : ['Google', 'Runoob', 2000]复制代码
注意:咱们会在接下来的章节讨论 remove() 方法的使用
列表对 + 和 * 的操做符与字符串类似。+ 号用于组合列表,* 号用于重复列表。
以下所示:
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[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]
>>> squares
[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包含如下函数:
序号 | 函数 |
---|---|
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([index=-1]) 移除列表中的一个元素(默认最后一个元素),而且返回该元素的值 |
7 | list.remove(obj) 移除列表中某个值的第一个匹配项 |
8 | list.reverse() 反向列表中元素 |
9 | list.sort( key=None, reverse=False) 对原列表进行排序 |
10 | list.clear() 清空列表 |
11 | list.copy() 复制列表 |
Python 的元组与列表相似,不一样之处在于元组的元素不能修改。
元组使用小括号,列表使用方括号。
元组建立很简单,只须要在括号中添加元素,并使用逗号隔开便可。
实例(Python 3.0+)
>>>tup1 = ('Google', 'Runoob', 1997, 2000);
>>> tup2 = (1, 2, 3, 4, 5 );
>>> tup3 = "a", "b", "c", "d"; # 不须要括号也能够
>>> type(tup3)
<class 'tuple'>复制代码
建立空元组
tup1 = ();复制代码
元组中只包含一个元素时,须要在元素后面添加逗号,不然括号会被看成运算符使用:
实例(Python 3.0+)
>>>tup1 = (50)
>>> type(tup1) # 不加逗号,类型为整型
<class 'int'>
>>> tup1 = (50,)
>>> type(tup1) # 加上逗号,类型为元组
<class 'tuple'>复制代码
元组与字符串相似,下标索引从0开始,能够进行截取,组合等。
元组可使用下标索引来访问元组中的值,以下实例:
实例(Python 3.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)复制代码
元组中的元素值是不容许修改的,但咱们能够对元组进行链接组合,以下实例:
实例(Python 3.0+)
#!/usr/bin/python3
tup1 = (12, 34.56);
tup2 = ('abc', 'xyz')
# 如下修改元组元素操做是非法的。
# tup1[0] = 100
# 建立一个新的元组
tup3 = tup1 + tup2;
print (tup3)复制代码
以上实例输出结果:
(12, 34.56, 'abc', 'xyz')复制代码
元组中的元素值是不容许删除的,但咱们可使用del语句来删除整个元组,以下实例:
实例(Python 3.0+)
#!/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')复制代码 |
字典是另外一种可变容器模型,且可存储任意类型对象。
字典的每一个键值(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() 返回一个迭代器,可使用 list() 来转换为列表 |
8 | radiansdict.setdefault(key, default=None) 和get()相似, 但若是键不存在于字典中,将会添加键并将值设为default |
9 | radiansdict.update(dict2) 把字典dict2的键/值对更新到dict里 |
10 | radiansdict.values() 返回一个迭代器,可使用 list() 来转换为列表 |
11 | pop(key[,default]) 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 不然,返回default值。 |
12 | popitem() 随机返回并删除字典中的最后一对键和值。 |
集合(set)是一个无序的不重复元素序列。
可使用大括号 { } 或者 set() 函数建立集合,注意:建立一个空集合必须用 set() 而不是 { },由于 { } 是用来建立一个空字典。
建立格式:
parame = {value01,value02,...}
或者
set(value)复制代码
实例(Python 3.0+)
>>>basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
>>> print(basket) # 这里演示的是去重功能
{'orange', 'banana', 'pear', 'apple'}
>>> 'orange' in basket # 快速判断元素是否在集合内
True
>>> 'crabgrass' in basket
False
>>> # 下面展现两个集合间的运算.
...
>>> a = set('abracadabra')
>>> b = set('alacazam')
>>> a
{'a', 'r', 'b', 'c', 'd'}
>>> a - b # 集合a中包含而集合b中不包含的元素
{'r', 'd', 'b'}
>>> a | b # 集合a或b中包含的全部元素
{'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}
>>> a & b # 集合a和b中都包含了的元素
{'a', 'c'}
>>> a ^ b # 不一样时包含于a和b的元素
{'r', 'd', 'b', 'm', 'z', 'l'}复制代码
相似列表推导式,一样集合支持集合推导式(Set comprehension):
实例(Python 3.0+)
>>>a = {x for x in 'abracadabra' if x not in 'abc'}
>>> a
{'r', 'd'}复制代码
语法格式以下:
s.add( x )复制代码
将元素 x 添加到集合 s 中,若是元素已存在,则不进行任何操做。
实例(Python 3.0+)
>>>thisset = set(("Google", "Runoob", "Taobao"))
>>> thisset.add("Facebook")
>>> print(thisset)
{'Taobao', 'Facebook', 'Google', 'Runoob'}复制代码
还有一个方法,也能够添加元素,且参数能够是列表,元组,字典等,语法格式以下:
s.update( x )复制代码
x 能够有多个,用逗号分开。
实例(Python 3.0+)
>>>thisset = set(("Google", "Runoob", "Taobao"))
>>> thisset.update({1,3})
>>> print(thisset)
{1, 3, 'Google', 'Taobao', 'Runoob'}
>>> thisset.update([1,4],[5,6])
>>> print(thisset)
{1, 3, 4, 5, 6, 'Google', 'Taobao', 'Runoob'}
>>>复制代码
语法格式以下:
s.remove( x )复制代码
将元素 x 从集合 s 中移除,若是元素不存在,则会发生错误。
实例(Python 3.0+)
>>>thisset = set(("Google", "Runoob", "Taobao"))
>>> thisset.remove("Taobao")
>>> print(thisset)
{'Google', 'Runoob'}
>>> thisset.remove("Facebook") # 不存在会发生错误
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'Facebook'
>>>复制代码
此外还有一个方法也是移除集合中的元素,且若是元素不存在,不会发生错误。格式以下所示:
s.discard( x )复制代码
实例(Python 3.0+)
>>>thisset = set(("Google", "Runoob", "Taobao"))
>>> thisset.discard("Facebook") # 不存在不会发生错误
>>> print(thisset)
{'Taobao', 'Google', 'Runoob'}复制代码
咱们也能够设置随机删除集合中的一个元素,语法格式以下:
s.pop() 复制代码
脚本模式实例(Python 3.0+)
输出结果:
$ python3 test.py
Runoob复制代码
屡次执行测试结果都不同。
然而在交互模式,pop 是删除集合的第一个元素(排序后的集合的第一个元素)。
实例(Python 3.0+)
>>>thisset = set(("Google", "Runoob", "Taobao", "Facebook"))
>>> thisset.pop()
'Facebook'
>>> print(thisset)
{'Google', 'Taobao', 'Runoob'}
>>>复制代码
语法格式以下:
len(s)复制代码
计算集合 s 元素个数。
实例(Python 3.0+)
>>>thisset = set(("Google", "Runoob", "Taobao"))
>>> len(thisset)
3复制代码
语法格式以下:
s.clear()复制代码
清空集合 s。
实例(Python 3.0+)
>>>thisset = set(("Google", "Runoob", "Taobao"))
>>> thisset.clear()
>>> print(thisset)
set()复制代码
语法格式以下:
x in s复制代码
判断元素 x 是否在集合 s 中,存在返回 True,不存在返回 False。
实例(Python 3.0+)
>>>thisset = set(("Google", "Runoob", "Taobao"))
>>> "Runoob" in thisset
True
>>> "Facebook" in thisset
False
>>>复制代码
方法 | 描述 |
---|---|
add() | 为集合添加元素 |
clear() | 移除集合中的全部元素 |
copy() | 拷贝一个集合 |
difference() | 返回多个集合的差集 |
difference_update() | 移除集合中的元素,该元素在指定的集合也存在。 |
discard() | 删除集合中指定的元素 |
intersection() | 返回集合的交集 |
intersection_update() | 返回集合的交集。 |
isdisjoint() | 判断两个集合是否包含相同的元素,若是没有返回 True,不然返回 False。 |
issubset() | 判断指定集合是否为该方法参数集合的子集。 |
issuperset() | 判断该方法的参数集合是否为指定集合的子集 |
pop() | 随机移除元素 |
remove() | 移除指定元素 |
symmetric_difference() | 返回两个集合中不重复的元素集合。 |
symmetric_difference_update() | 移除当前集合中在另一个指定集合相同的元素,并将另一个指定集合中不一样的元素插入到当前集合中。 |
union() | 返回两个集合的并集 |
update() | 给集合添加元素 |