1.包的导入
import和from…import
在 python 用 import 或者 from…import 来导入相应的模块。
将整个模块(somemodule)导入,格式为: import somemodule(使用里面的函数的时候需要指定模块名)
从某个模块中导入某个函数,格式为: from somemodule import somefunction
从某个模块中导入多个函数,格式为: from somemodule import firstfunc, secondfunc, thirdfunc
将某个模块中的全部函数导入,格式为: from somemodule import *(函数可以直接使用,不需要再指定模块名)
2.python标准数据类型
Numbers数字
数字数据类型用于存储数值。不可改变的数据类型,改变数字数据类型会分配一个新的对象。可以使用del语句删除若干个对象的引用
del var,var0
有四种不同类型的数字类型
int
long(python2.x中有,2.2之后int类型数据溢出之后自动转换,python3.x中移除,3.x中int保存为long)
float
complex: 复数a+bj或者complex(a,b)
运算
乘方:2**5=32
String字符串
可以由数字字母下划线组成
可以用单引号,双引号,三引号
字串列表有两种不同的取值顺序:从左到右0 – n-1,从右到左-1 – -n;
‘\’表示转义,可以在字符串前面添加一个r,让转义不发生。print(r’Ru\noob’)–>Ru\noob
获取字串方法:
可以使用【头下标:尾下标】来进行截取相应的字符串,下标为空表示从取头或者尾。取出来的字串包含头下标的字符,不包含尾下标的字符。
testnum = "123456789"
test = testnum[-3:-1] # 78
字符串获取还可以有第三个参数,表示的是截取的步长
testnum = "123456789"
test = testnum[0:5:2] # 135
字符串拼接
‘+’表示字符串连接
‘’表示重复操作 :例如 str=‘aas’ str1=str2(str1=‘aasaas’)
格式化字符串
#!/usr/bin/python3
print ("我叫 %s 今年 %d 岁!" % ('小明', 10))
List列表
列表是使用最频繁的数据类型,可以完成大多数集合类的数据结构实现。支持字符,数字,字符串甚至可以嵌套使用。同时他也可以进行分割 同上.
和string不同的是,列表中的元素是可以改变的。
>>>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(),count(obj),extend(seq)【在一个列表的末尾一次性追加另一个序列中的多个值】,insert(index,obj),remove(obj),reverse(),sort(key=None,reverse=false),pop(index)这些方法
list中的截取,如果第三个参数是负数,那么表示的是翻转字符串
列表可以嵌套使用。
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)
Tuple元组
和list类似,但是元组的元素不能修改,元组写在小括号里面,元素之间用逗号隔开,元组中的元素类型可以不相同。
元组元素虽然是不可以改变的但是他们可以包含可以改变的对象,比如list列表。
tup=()
tup=(20,) #单个元素的元组
可以用+进行拼接
函数 tuple(seq)把列表转换成为元组。
所谓的元组不可变
是指元组指向的内存中内容不可改变,当我们对一个元组进行重新的赋值的时候,元组会被绑定到新的对象,而不是修改了原来的对象。
Dictionary字典
字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(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', 'code': 1, 'site': 'www.runoob.com'}
dict_keys(['name', 'code', 'site'])
dict_values(['runoob', 1, 'www.runoob.com'])
另外的构造方法
元组的删除
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'])
>>>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}
函数:str(dict) 输出字典,以可以打印的字符串表示
内置方法:
clear() delete all
copy() 返回一个字典的浅复制
fromkey() 创建一个新的字典,以序列seq中的元素作为字典的键,val为字典所有键对应的初始值
get(key,default=None)返回指定键的值,如果值不在字典中那么就返回default值
radiansdict.setdefault(key, default=None)
和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
update(dict2)
把字典dict2的键/值对更新到dict里
pop(key[,default])
删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
popitem()
随机返回并删除字典中的最后一对键和值。
radiansdict.values()
返回一个迭代器,可以使用 list() 来转换为列表
Set集合(3.x)
用{}或者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 中不同时存在的元素
student.add('dong') # 添加元素
student.update(obj) # 也是添加元素,参数可以是列表元组字典等
student.remove(x) # 移除x 如果不存在那么报错
student.discard(x) #移除x 如果不存在不发生错误
pop() #随机删除
一些数据类型转换
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)
将一个整数转换为一个字符
ord(x)
将一个字符转换为它的整数值
hex(x)
将一个整数转换为一个十六进制字符串
oct(x)
将一个整数转换为一个八进制字符串