把之前学习的内容整理下。
Python中变量不需要事先声明,使用时直接赋值即可。
区分大小写。
1、可变类型(不可hash):列表、字典
不可变(可hash): 数字、字符串、元组、集合(set)
有序:列表、字符串、
无序:字典、集合
2、列表:可变、有序
字符串:不可变、有序
字典:无序、可变
元组:不可变、有序
集合:不可变、无序、 唯一的,集合只能包括不可变的对象类型,即列表和字典不能嵌入到集合中。
3、关于内置数据类型的函数,可作用于多种类型的通用型操作都是以内置函数或表达式的形式出现的,如len(x),
类型特定的操作是以方法调用的形式出现的,如s.upper()
4、==:是否有相同的值
is:是否是同一个对象
一、数字数据类型
1.1 整型int
查看整型取值范围:sys.maxsize
1.2 长整型
在整型数据的后面加L或l。
1.3 布尔型bool
True
False
1.4 双精度浮点型float
1.5 十进制浮点型Decimal
from decimal import *
1.6 复数Complex
x=1.4+3j
共轭复数:x.conjugate()
1.7 算术运算符
/:除法运算,python2与python3有区别,在python3中,/为真正的除法,1/2=0.5;在python2中,如果两个操作数为整数则为地板除,如1/2=0。
//:地板除,指取比商小的最大整数,5//2=2
%:取余
**:幂运算
1.8 数字类型函数
(1)转换函数:int()、long()、float()、complex()、bool()
(2)功能函数:
abs() | 返回绝对值 |
coerce() | 返回一个包含类型转换完毕的两个数值元素的元组,python2 |
divmod() | 返回一个包含商和余数的元组,divmod(4,3)==>(1,1) |
pow() | **,指数运算,pow(2,3,5)==>3(对第三个参数求余) |
round() | 四舍五入 |
1.9 内置模块:math、random
二、序列
(1)成员都是有序排列的,都支持索引、切片
(2)序列操作符
seq[index] | 索引 |
seq[index1:index2] | |
seq*n | 复制n份 |
seq1+seq2 | 连接 |
obj in seq | 在 |
obj not in seq | 不在 |
(3)序列函数
cmp(seq1,seq2) | 比较大小,从左至右依次比较(从哪里抄的,不知道怎么用????) |
len(seq1) | 长度 |
max(seq1)、min(seq2) | 最大值、最小值 |
sorted(seq1) | 排序 |
sum(seq1) | 求和 |
list(seq1)、tuple(seq1) | 将元组转换为列表,将列表转换为元组 |
2.1 列表——可变,[]
(1)类似于数组,比数组灵活,其中元素类型可以不同
(2)创建列表
(3)序列操作符
(4)比较操作符
(5)内建函数
append() | 在列表后添加新元素 |
extend() | 在列表后追加一个列表的全部元素 |
insert() | 插入新元素 |
pop()、remove() | 删除元素 |
count() | 统计 |
index() | 查找 |
reverse() | 翻转列表 |
sort() | 排序 |
(6)列表应用——堆栈(后进先出)
# -*- coding:utf-8 -*-
'''用列表处理歌曲名单,添加新元素时,添加在后面,删除元素时,从最后开始删除'''
songn = []
while (1):
newsong = input('Enter the name of song(if end,please enter -1):')
if (newsong == '-1'):
break
else:
songn.append(newsong)
#only keep 5 songs
while(len(songn)>5):
songn.pop()
print(songn)
(7)列表应用——队列(先进先出)
# -*- coding:utf-8 -*-
'''处理面试排队问题,添加新元素时,添加在后面,删除元素时,从前面开始删除'''
iname=[]
import time
#add the interview name
while(1):
newname=input('Enter the name of waiting for the interview(if end,enter end):')
if(newname=='end'):
break
else:
iname.append(newname)
#in front of the row of people to interview first
while(len(iname)>0):
name=iname.pop(0)
print(name,'take the interview')
time.sleep(5) #wait for 5 seconds
2.2 元组——不可变,()
(1)创建元组
(2)序列操作符
(3)比较操作符
(4)元组定义后是不可变的
2.3 字符串
(1)原生字符串是以r或R开头,不对其中的转义字符进行转义(\n换行、\\反斜杠、\t制表、\r回车、\"双引号)
(2)字符串操作符
(3)格式化操作符(%)
(4)比较操作符
(5)内建函数
strip()、lstrip()、rstrip() | 去空格 |
join() | 连接字符串 与‘+’的区别:‘+’每连接两个字符串就需要产生一个字符串, join()是将所有字符串连接在一起后生成一个字符串 |
split()、rsplit()、splitline() | 分割和组合 |
find()、index() | 查找 |
count() | 统计子字符串出现次数 |
replace() | 替换 |
startswith(str)、 endswith(str)、 isalnum()、 isalpha()、 isdigit()、 isspace()、 islow()、 isupper()、 istitle() | 是否以str开头 是否以str结尾 是否全是字母和数字 是否全是字母 是否全是数字 是否全是空白字符 是否全是小写 是否全是大写 是否首字母大写 |
三、字典
无序的对象集合类型,{},键值对
3.1 字典创建
'''python2可以运行,python3会报错'''
d1=dict()
d2=dict([[001,'mike'],[002,'mary']])
d3=dict(zip((001,002),('mike','mary')))
d4=dict(a='first',b='second')
d5=dict(one=1,two=2)
3.2 字典访问
(1)访问元素值
(2)遍历字典
(3)添加元素
(4)修改元素
(5)删除元素
(6)清空字典
(7)删除字典
# -*- encoding:utf8 -*-
d = dict([[001, 'mike'], [002, 'mary']])
# 遍历字典
for key in d:
print '%s==>%s' % (key, d[key])
for key in d.keys():
print 'key==>%s' % d[key]
for value in d.values():
print 'value==>%s' % value
# 添加字典元素
d[003]='join'
#修改字典元素
d[002]='cc'
#删除字典元素,使用del或pop()方法,指定要删除的键
d.pop('001')
del d[002]
#清空字典
d.clear()
#删除字典
del d
3.3 相关函数
(1)len()
(2)hash()
(3)字典方法
dict.clear() | |
dict.copy() | |
dict.fromkeys(seq,val) | |
dict.get(key,default) | |
dict.has_key(key) | |
dict.items() | |
dict.keys() | |
dict.values() | |
dict.iteritems() dict.iterkeys() dict.itervalues() | |
dict.pop(key,default) | |
dict.setdefault(key,default) | |
dict.update(dict2) |
#-*-coding:utf8-*-
#用字典存储电话号码,查找某人电话
telbook={'mike':123456,'join':123457,'mary':123444,'henry':123333}
name=raw_input('whose number do you want to get:')
num=telbook.get(name)
print name,'\'s number is',num