Python 学习笔记(变量类型)
标准数据类型(5)
String 字符串
Number 数字
List 列表
Tuple 元祖
Dictionary 字典
数字
Python支持四种不同的数字类型:
int (有符号整数)
long (长整型 也可以代表八进制和十六进制) python3 已移除 用int替代
float (浮点型)
complex (复数)
Python 还支持复数,复数由实数部分和虚数部分构成,可以用 a + bj,或者 complex(a,b) 表示, 复数的实部 a 和虚部 b 都是浮点型。
字符串
str = 'Hello World!'
print str # 输出完整字符串
print[-1] # 输出 '!'
print str[0] # 输出字符串中的第一个字符 'H'
print str[2:5] # 输出字符串中第三个至第六个之间的字符串
print str[2:] # 输出从第三个字符开始的字符串
print str * 2 # 输出字符串两次
print str + "TEST" # 输出连接的字符串
print str[1:8:2] # 输出从第二个到第七个之间(步长为2) 每隔1位输出 'el o'
一些字符串内建方法
upper() 字符串全部变大写
lower() 字符串全部变小写
isupper()字符串至少有一个字母,并且所有字母都是大写
islower()字符串至少有一个字母,并且所有字母都是小写
isalpha()字符串只包含字母,并且非空
isalnum()字符串只包含字母和数字,并且非空
isdecimal()字符串只包含数字字符,并且非空
isspace()字符串只包含空格、制表符和换行,并且非空
startswith()字符串以该方法传入的字符串开始
endswith()字符串以该方法传入的字符串结束
join()拼接字符串,可指定分隔符
split()通过某值切割字符串
rjust()左填充,如果输出数据不足,补充空格
ljust()右填充,如果输出数据不足,补充空格
center()字符串居中,左右数据不足,补充空格
列表
>>> [1,2,3] + ['A','B']
[1, 2, 3, 'A', 'B']
>>> [1,2,3] * 3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
>>> arr = [1,2,3,4,5,6,7]
>>> arr[1]
2
>>> arr[1:4]
[2, 3, 4]
>>> arr[1:]
[2, 3, 4, 5, 6, 7]
>>> arr[1:-1]
[2, 3, 4, 5, 6]
>>> arr[-2]
6
列表结合某些关键字和方法
删除某列表中的某元素,可以直接用del关键字。
也可以结合for循环
>>> supplies = ['pens', 'staplers', 'flame-throwers', 'binders']
>>> for i in range(len(supplies)):
print('Index ' + str(i) + ' in supplies is: ' + supplies[i])
利用 in 、not in 直接判断某元素是否在列表中
>>> 'howdy' in ['hello', 'hi', 'howdy', 'heyas']
True
>>> spam = ['hello', 'hi', 'howdy', 'heyas']
>>> 'cat' in spam
False
index()方法判断某元素在列表中的第一次出现的下标,没有的话就报错。
>>> spam = ['Zophie', 'Pooka', 'Fat-tail', 'Pooka']
>>> spam.index('Pooka')
1
用 append()和 insert()方法在列表中添加值
append()方法调用,将参数添加到列表末尾。insert()方法可以在列表任意下标处插入一个值。insert()方法的第一个参数是新值的下标,第二个参数是要插入的新值。
>>> arr = [1,2,3,4,5,6,7]
>>> arr.insert(7,10)
>>> arr
[1, 2, 3, 4, 5, 6, 7, 10]
>>> arr.append(12)
>>> arr
[1, 2, 3, 4, 5, 6, 7, 10, 12]
用remove()方法从列表中删除值
>>> arr = [1,2,3,4,1,1]
>>> arr
[1, 2, 3, 4, 1, 1]
>>> arr.remove(1)
>>> arr
[2, 3, 4, 1, 1]
用sort()方法将列表中的值排序
>>> arr = [2,3,5,1,3,10,7]
>>> arr.sort()
>>> arr
[1, 2, 3, 3, 5, 7, 10]
元祖
元组是用"()"表示,并且元组内的元素不能被修改,也不能对元组进行增加删除操作。
元组和列表的转化
>>> tuple([1,2,3])
(1, 2, 3)
>>> list((1,2,3))
[1,2,3]
>>> list('hellow')
['h', 'e', 'l', 'l', 'o', 'w']
引用与引用函数
>>> spam = [0, 1, 2, 3, 4, 5]
>>> cheese = spam
>>> cheese[1] = 'Hello!'
>>> spam
[0, 'Hello!', 2, 3, 4, 5]
>>> cheese
[0, 'Hello!', 2, 3, 4, 5]
拷贝函数copy()和deepcopy()。 拷贝和深拷贝。
>>> import copy
>>> spam = [0,1,2,3,4]
>>> cc = copy.copy(spam)
>>> spam
[0, 1, 2, 3, 4]
>>> cc
[0, 1, 2, 3, 4]
>>> spam[1] = 'hello!'
>>> spam
[0, 'hello!', 2, 3, 4]
>>> cc
[0, 1, 2, 3, 4]
字典
像列表一样,“字典”是许多值的集合。但不像列表的下标,字典的索引可以使用许多不同数据类型,不只是整数。字典的索引被称为“键”,键及其关联的值称为“键-值”对。所以可以说字典就是java中的Map。
cat = {'name': 'li', 'color': 'red', 'disposition': 'loud'}
与列表不同的是,字典没有顺序的概念,所以不能通过操作index获取某元素,不能使用切片,不能使用排序函数。
字典操作
使用函数keys()、values()和 items()。顾名思义,分别是获取字典的key值们,val值们,和键值对本身们
>>> cat = {'name': 'li', 'color': 'red', 'disposition': 'loud'}
>>> cat
{'name': 'li', 'color': 'red', 'disposition': 'loud'}
>>> cat.values()
dict_values(['li', 'red', 'loud'])
>>> cat.keys()
dict_keys(['name', 'color', 'disposition'])
>>> for v in cat.values():
... print(v)
...
li
red
loud
>>> for k in cat.keys():
... print(k)
...
name
color
disposition
# 输出的每一项是个元祖 可使用list函数转化
>>> for i in cat.items():
... print(i)
...
('name', 'li')
('color', 'red')
('disposition', 'loud')
检查字典中是否存在键或值
>>> 'color' in cat
True
>>> 'name' not in cat
False
>>> 'size' in cat
False
>>> 'color' in cat.keys()
True
>>> 'red' in cat.values()
True
get() 和 setdefault()
get(key) 通过key找到对应的value, setdefault(key, defaultValue) 设置键的默认值 如果字典中有这个键的值则不作改动
>>> cat
{'name': 'li', 'color': 'red', 'disposition': 'loud'}
>>> cat.get('name')
'li'
>>> cat.get('size')
>>> cat.setdefault('name', 'haha')
'li'
>>> cat
{'name': 'li', 'color': 'red', 'disposition': 'loud'}
>>> cat.setdefault('alias', 'haha')
'haha'
>>> cat
{'name': 'li', 'color': 'red', 'disposition': 'loud', 'alias': 'haha'}