一、数字
1、int整型
正或负数,不带小数点。a=1
2、float浮点型
整数部分和小数部分组成。a=1.1
科学计数法表示:9.8e3,e3代表10的3次方。
3、complex复数型
实部和虚部组成。a=1+2j,或a=complex(1,2)
复数分离实数部分和虚数部分:
a.real();a.imag();
复数的共轭:
a.conjugate();
4、布尔类型
1True,0False;
二、字符串
字符串是由字母、数字、下划线组成的一串字符,可以使用单引号、双引号或三引号来表示字符串,三种符号可以嵌套使用。
1、字符串切片
使用索引操作符或者切片操作符来获取字符串的值。
起止位置,左闭右开;从0开始,-1结束,只给[:],则输出全部内容。
a='abcde'
>>> a[1]
'b'
>>> a[1:3]
'bc'
>>>
a[1]:b,a[1:3]:bc。
2、字符串反转
a[::1]:输出全部内容,a[::2]:从0开始,每隔一位输出一个,a[::-1]:反向输出。
a='abcde'
>>> a[::1]
'abcde'
>>> a[::2]
'ace'
>>> a[::3]
'ad'
>>> a[::-1]
'edcba'
3、转义
Python使用(\)输出特殊字符。
\n换行符,\t制表符,\\转义失效。
4、原始字符串
加r或R可以输出原始字符串,常用于添加路径时。
>>> print(r'D://test')
D://test
5、格式化字符串
(1)格式说明符
Python支持格式化输出,最基本的用法是利用%将一个字符串插入到带有格式说明符的字符串中。
>>> name=ab
>>> print('Welcome %s to Beijing' % name)
Welcome ab to Beijing
格式说明符:
字符 | 描述 |
b(类型说明符) | 二进制,以2为基数输出数字 |
o(类型说明符) | 八进制,以8为基数输出数字 |
x(类型说明符) | 十六进制,以16为基数输出数字,9以上的用小写字母,类型符为X时用大写字母 |
c(类型说明符) | 字符,将整数转换成对应的Unicode字符输出 |
d(类型说明符) | 十进制整数,以10为基数输出数字 |
f(类型说明符) | 浮点数,以浮点数输出数字 |
e(类型说明符) | 指数记法,以科学计数法输出数字 |
+m.nf(精度说明符) | 输出带符号(正整数输出+号)的数,保留n位小数,整个输出占m列 |
<(对齐说明符) | 左对齐,默认用空格填充右边 |
0>5d(最小宽度说明符) | 右对齐,用0填充作变,宽度为5 |
^(对齐说明符) | 居中对齐 |
{{}}(符号说明符) | 输出一个{} |
(2)format函数
Python的str.fromat()函数增强了字符串格式化的功能,利用{}和:代替%,再结合格式说明符,进行字符串格式化操作。
fromat可以接受不限个数的参数,位置可以不固定。
>>> "{} {}".format("Hello","Python")
'Hello Python'
>>> "{0} {1}".format("Hello","Python")
'Hello Python'
>>> "{0} {1} {0}".format("Hello","Python")
'Hello Python Hello'
代码示例:
>>> age,height=21,1.758
>>> print("Age:{0:<5d},Height:{1:5.2f}".format(age,height))
Age:21 ,Height: 1.76
>>> cCode=['AXP','BA','CAT','CSCO','CVX']
>>> cPrice=['78.51','184076','96.39','33.71','106.09']
>>> for i in range(5):
print('{:<8d}{:8s}{:8s}'.format(i,cCode[i],cPrice[i]))
0 AXP 78.51
1 BA 184076
2 CAT 96.39
3 CSCO 33.71
4 CVX 106.09
6、字符串的应用
可以利用dir(str)查看字符串的方法。
>>> dir(str)
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
(1)查找字符串
find函数可以查找字符的位置。
>>> song="Blowing in the wind"
>>> py.find("the")
11
(2)转换成小写
lower函数可以将字符串转换成小写。
>>> song="Blowing in the wind"
>>> py.lower()
'blowing in the wind'
(3)分离字符串
split函数可以将字符串分离成列表形式。
>>> song="Blowing in the wind"
>>> py.split()
['Blowing', 'in', 'the', 'wind']
(4)替换字符串
replace函数可以进行字符串替换。
>>> song="Blowing in the wind"
>>> py.replace("the","that")
'Blowing in that wind'
(5)将列表转换成字符串
join函数可以转换列表。
>>> aList=["Hello","Python"]
>>> ' '.join(aList)
'Hello Python'
>>> '-'.join(aList)
'Hello-Python'
(6)编码字符串
encode函数可以进行字符串编码。
>>> x="你好"
>>> y=x.encode('utf-8')
>>> y
b'\xe4\xbd\xa0\xe5\xa5\xbd'
(7)解码
decode函数可以进行解码。
>>> x="你好"
>>> y=x.encode('utf-8')
>>> y
b'\xe4\xbd\xa0\xe5\xa5\xbd'
>>> z=y.decode()
>>> z
'你好'
三、列表和元组
List列表,是可扩展的容器对象,可以包含不同类型的元素。
Tuple元组,用法和列表类似,不同之处在于元组的元素不能修改。
列表元组可以嵌套列表。
1、创建列表和元组
创建列表:用[ ];创建元组:( )
list1=['Hello','Python'];tup1=('Hello','Python')
2、取值
按下标索引来访问列表和元组中的值。
>>> list1=['Hello','Python']
>>> tup1=('Hello','Python')
>>> list1[1]
'Python'
>>> tup1[0]
'Hello'
3、排序
sorted()不改变列表位置,sort()改变列表元素位置。
>>> a=[1,2,3,4]
>>> print(a[0])
1
>>> print(sorted(a))
[1, 2, 3, 4]
>>> print(sorted(a,reverse=True))
[4, 3, 2, 1]
4、切片
结果前闭后开。
>>> a=[1,2,3,4]
>>> print(a[1:3])
[2, 3]
5、合并
将一个元素接入到列表中。
>>> a=[1,2,3,4]
>>> a.append(5)
>>> print(a)
[1, 2, 3, 4, 5]
将两个列表合并成一个列表。
>>> a=[1,2,3,4]
>>> b=['a','b','c']
>>> a.extend(b)
>>> print(a)
[1, 2, 3, 4, 5, 'a', 'b', 'c']
6、删除值
pop()删除最后一个值,pop(0)删除第一个值。
>>> a=[1,2,3,4]
>>> b=['a','b','c']
>>> a.extend(b)
>>> print(a)
[1, 2, 3, 4, 5, 'a', 'b', 'c']
>>> a.pop()
'c'
>>> a.pop(0)
1
>>> a.pop(1)
3
>>> print(a)
[2, 4, 5, 'a', 'b']
7、列表解析
动态创建列表。
表示1:
[expression for expr in sequence1
for expr in sequence2…]
>>> [x for x in range(10)]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> [y ** 2 for y in range(10)]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
表示2:
[expression for exprN in sequeenceN
if condition]
>>> [x ** 2 for x in range(10) if x**2<50]
[0, 1, 4, 9, 16, 25, 36, 49]
>>> [(x+1,y+1) for x in range(2) for y in range(2)]
[(1, 1), (1, 2), (2, 1), (2, 2)]
四、字典
一种映射类型,由键key和值value构成键值对;key不可变,不可重复,可以是数字、字符或者元组;value是无序的,之只和key有关。
1、字典和列表元组的区别
字典是按键值对存储,是无序的,不能按下标取值,只能通过key找value;
修改值时,已经存在的value会被修改,不存在的会被创建。
2、字典的创建方式
(1)直接创建
a={‘key1’:’value’,’key2’:’value’…}
(2)使用dict函数
>>> a=dict((['x',1],['y',2]))
>>> a
{'x': 1, 'y': 2}
>>> info=(['x',1],['y',2])
>>> b=dict(info)
>>> b
{'x': 1, 'y': 2}
(3)快速创建字典
使用内建方法fromkeys,将value设置成默认值。
>>> a={}.fromkeys(('x','y'),'test')
>>> a
{'x': 'test', 'y': 'test'}
(4)使用zip函数
zip函数,类似矩阵行列互换,可用于生成字典。
>>> names=['zhangsan','lisi','wangwu']
>>> salaries=[3000,2000,5000]
>>> dict(zip(names,salaries))
{'zhangsan': 3000, 'lisi': 2000, 'wangwu': 5000}
3、字典的基本操作
(1)键值查找
>>> info={'zhangsan':3000,'lisi':2000,'wangwu':5000}
>>> info['zhangsan']
3000
(2)更新值
>>> info={'zhangsan':3000,'lisi':2000,'wangwu':5000}
>>> info['zhangsan']=9999
>>> info
{'zhangsan': 9999, 'lisi': 2000, 'wangwu': 5000}
(3)添加元素
>>> info={'zhangsan':3000,'lisi':2000,'wangwu':5000}
>>> info['zhao']=4000
>>> info
{'zhangsan': 9999, 'lisi': 2000, 'wangwu': 5000, 'zhao': 4000}
(4)成员判断
>>> info={'zhangsan': 9999, 'lisi': 2000, 'wangwu': 5000, 'zhao': 4000}
>>> 'lisi' in info
True
(5)删除元素
>>> info={'zhangsan': 9999, 'lisi': 2000, 'wangwu': 5000, 'zhao': 4000}
>>> del info['zhao']
>>> info
{'zhangsan': 9999, 'lisi': 2000, 'wangwu': 5000}
4、字典的内建函数
dict():创建字典;
len():计算字典元素的个数;
>>> info={'zhangsan': 9999, 'lisi': 2000, 'wangwu': 5000}
>>> len(info)
3
hash():判断某个对象是否可hash;
>>> info={'zhangsan': 9999, 'lisi': 2000, 'wangwu': 5000}
>>> hash(info)
Traceback (most recent call last):
File "<pyshell#50>", line 1, in <module>
hash(info)
TypeError: unhashable type: 'dict'
5、字典的方法
(1)输出字典
>>> info={'zhangsan': 9999, 'lisi': 2000, 'wangwu': 5000}
>>> print(info.keys())#输出key
dict_keys(['zhangsan', 'lisi', 'wangwu'])
>>> print(info.values())#输出value
dict_values([9999, 2000, 5000])
>>> print(info.items())#输出key和value
dict_items([('zhangsan', 9999), ('lisi', 2000), ('wangwu', 5000)])
(2)更新字典
>>> a={'price':3000}
>>> info.update(a)
>>> info
{'zhangsan': 9999, 'lisi': 2000, 'wangwu': 5000, 'price': 3000}
(3)键值查找
>>> info={'zhangsan': 9999, 'lisi': 2000, 'wangwu': 5000}
>>> info.get('zhangsan')
9999
(4)删除字典
>>> info={'zhangsan': 9999, 'lisi': 2000, 'wangwu': 5000, 'price': 3000}
>>> info1=info
>>> info={}
>>> info1
{'zhangsan': 9999, 'lisi': 2000, 'wangwu': 5000, 'price': 3000}
(5)清空字典
>>> info={'zhangsan': 9999, 'lisi': 2000, 'wangwu': 5000}
>>> info.clear()
>>> info
{}
(6)删除字典的值
pop():删除键值对的同时获取value。
>>> info={'zhangsan': 9999, 'lisi': 2000, 'wangwu': 5000, 'price': 3000}
>>> a=info.pop('zhangsan')
>>> info
{'lisi': 2000, 'wangwu': 5000, 'price': 3000}
>>> a
9999