目录
Python是强类型语言,允许将整数的字符串表示形式传递给 in,将float的字符串表示形式传递给 float;但是,如果你将float型的字符串传递给int将会得到错误。
int(0.3)=int(0.5)=int(0.7)=0
1.python基本对象介绍
1.ndarray函数
1.创建方法
a=np.array([1, 2, 3], dtype=int)
print(a)
输出:[1, 2, 3]
2.函数:tolist函数
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
print(a)
b = a.tolist()
print(len(b))
print(b)
2.list对象
a = [1, 2, 3, 4]
c = [0, 1, 'aaa']
1.常用函数
len(a):计算list的长度
+方法:a = [1] ,d = a+['ddd'],d ------[1, 'ddd']
*方法:a=[1, 3], d=a*3, d------[1,3,1,3,1,3]
访问元素:a=[1,2,3,4], a[0]-----访问第一个元素;a[-1]访问最后一个元素;
a[:] 取出所有列表元素;a[0:n] 取出0到n-1号元素
迭代访问:for i in a: i++ # a列表中的每个元素+1
插入元素:a.append(13) 在列表最后插入元素
list1.insert(0, 'R') 在对应位置插入元素
删除元素: del e[3] # 删除对应e[3]处元素,后面元素前移,无空位
最大最小值:max(a) # a列表里的最大值; min(a)
统计次数:print(a.count(3)) #统计a列表中3出现的次数
查找索引:print(a.index(3)) # 从列表找出第一个为3的索引位置
移除:a.remove(3) # 移除列表中第一个为3的元素
反向操作:b = reverse(a) # b列表与a列表中元素完全相反
排序操作:a=[2,31,10,7] a.sort() # 得到a=[2, 7, 10, 31] 从小到大排序
3.dict对象
dict 字典类型
dict={'name':'Joe','age':18,'height':60}
clear,清空
dict.clear() 清空函数 # 运行后{}
pop,移除指定key的键值对并返回vlaue(如果没有该key,可返回指定值),popitem,默认移除最后一个键值对
print(dict.pop('age'))
print(dict)
#18,返回值为被移除的键值;{'name': 'Joe', 'height': 60}
print(dict.pop('agea','erro'))
print(dict)
#结果erro,{'name': 'Joe', 'age': 18, 'height': 60}
print(dict.popitem())
print(dict)
#结果('height', 60),{'name': 'Joe', 'age': 18}
del,删除字典的另一种方式
del dict['age']
print(dict)
#结果{'name': 'Joe', 'height': 60}
get,返回指定键的值,如果值不在字典中返回default值,等同于dict.__getitem__('name')
print(dict.get('name'))
#结果Joe
print(dict.get('hobby'))
#结果None
print(dict.get('hobby','basketball'))
#结果basketball
setdefault,和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
print(dict.setdefault('hobby'))
print(dict)
#结果None,{'name': 'Joe', 'age': 18, 'height': 60, 'hobby': None}
print(dict.setdefault('hobby','basketball'))
print(dict)
#结果basketball,{'name': 'Joe', 'age': 18, 'height': 60, 'hobby': 'basketball'}
update,更新字典,有key则更新该key对应的vlaue,没有则新增
dict.update({'age':20})
print(dict)
#结果{'name': 'Joe', 'age': 20, 'height': 60}
dict.update({'hobby':'run'})
print(dict)
#结果{'name': 'Joe', 'age': 18, 'height': 60, 'hobby': 'run'}
字典的打印,取值等
print(dict.items())
print(dict.values())
print(dict.keys())
#结果
dict_items([('name', 'Joe'), ('age', 18), ('height', 60)])
dict_values(['Joe', 18, 60])
dict_keys(['name', 'age', 'height'])
字典的遍历,遍历key
for i in dict:
print(i)
#结果
name
age
height
#相同效果的遍历如下:
for key in dict.keys():
print(key)
#
字典的遍历,遍历value
for vlaue in dict.values():
print(vlaue)
#结果
Joe
18
60
字典的遍历,遍历item
#10.1输出为元组的方式
for item in dict.items():
print(item)
#结果
('name', 'Joe')
('age', 18)
('height', 60)
#10.2输出为字符串的方式
for key,vlaue in dict.items():
print(key,vlaue)
#结果
name Joe
age 18
height 60
#输出为字符串的另一种方式
for i in dict:
print(i,dict[i])
4.tuple对象
一、tuple是一个class,是不可变的list类型,不可以增删改;
不可以修改已存在的部分,只能增加新的部分;
tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5 );
tup3 = "a", "b", "c", "d";
访问:(与list一样)tup1[1:5];
tup3 = tup1 + tup2;
print tup3;
二、任意无符号的对象,以逗号隔开,默认为元组,如下实例:
a=1,2,3,'e'
a=(1,2,3,'e').
三、Python元组包含了以下内置函数(与list差不多的函数)
1、cmp(tuple1, tuple2):比较两个元组元素。
2、len(tuple):计算元组元素个数。
3、max(tuple):返回元组中元素最大值。
4、min(tuple):返回元组中元素最小值。
5、tuple(seq):将列表转换为元组。
6、count函数:
tu = (123, ‘Google‘, ‘Runoob‘, ‘Taobao‘, 123);
print ("123 元素个数 : ", tu.count(123)) print ("Runoob 元素个数 : ", tu.count(‘Runoob‘))
以上实例输出结果如下:
123 元素个数 : 2 Runoob 元素个数 : 1
7.index函数
thistuple = (1, 3, 7, 8, 7, 5, 4, 6, 8, 5) x = thistuple.index(8) print(x) # 得到3
index()
方法查找和指定值第一次匹配的元素位置索引。
如果找不到该值,index()
方法将引发异常。
四、tuple与list的比较
1.tuple与list都按照一定次序排序;索引从0开始,负数索引从tuple的尾部开始计数;
都可以使用slice函数,list分隔后得到新的list,tuple分隔后得到新的tuple;
2.tuple无法新增元素,没有append,extend,remove,pop方法,但可以通过in函数观察元素是否存在于tuple中;
3.tuple的好处:
tuple比list操作速度更快;若仅需要比那里某些元素集合,可以使用tuple代替list;
4.tuple与list的转换:
tuple转为list:
tp = (11, 22, 33, 44)
tp_list = list(tp)
list转为tuple:
l = [11, 22, 33, 44]
print(tuple(l))
5.image对象
2.python基本函数介绍
1.随机下标
random.randrange(num): 返回0到num-1之间的一个随机数字
2.绘制图像
1.绘制柱状图
# data1是list类型
x = list(range(0, 360, 5))
def plot_bar_color(x, data1, data2, data3, data4, data5, data6):
colors = []
for i in range(len(data1)):
if i % 2 == 0:
colors.append('lightcoral')
else:
colors.append('lightseagreen')
# 创建x轴显示的参数
x_tick = ['7:50', '7:51', '7:52', '7:53', '7:54', '7:55', '7:56',
'7:57', '7:58', '7:59', '8:00', '8:01', '8:02', '8:03', '8:04', '8:05', '8:06']
y_tick = ['0', '5', '10', '15', '20', '25', '30', '35']
plt.figure(figsize=(300, 100), dpi=10)
font2 = {'family': 'Times New Roman', 'weight': 'normal', 'size': 100}
ax1 = plt.subplot(2, 3, 1, frameon=False)
plt.title('position=500 lane=1', font2)
plt.xlabel('time', font2)
plt.ylabel('volume(pcu/min)', font2)
plt.grid()
plt.bar(range(len(data1)), data1, color=colors, width=1)
plt.xticks([index - 0.5 for index in range(len(x_tick))], x_tick, rotation=45, size=100)
plt.ylim(0, 35)
plt.yticks(size=200)
ax2 = plt.subplot(2, 3, 2, frameon=False)
plt.title('position=500 lane=2', font2)
plt.xlabel('time', font2)
plt.ylabel('volume(pcu/min)', font2)
plt.grid()
plt.bar(range(len(data2)), data2, color=colors, width=1)
plt.xticks([index - 0.5 for index in range(len(x_tick))], x_tick, rotation=45, size=100)
plt.ylim(0, 35)
plt.yticks(size=200)
ax3 = plt.subplot(2, 3, 3, frameon=False)
plt.title('position=500 lane=3', font2)
plt.xlabel('time', font2)
plt.ylabel('volume(pcu/min)', font2)
plt.grid()
plt.bar(range(len(data3)), data3, color=colors, width=1)
plt.xticks([index - 0.5 for index in range(len(x_tick))], x_tick, rotation=45, size=100)
plt.ylim(0, 35)
plt.yticks(size=200)
ax4 = plt.subplot(2, 3, 4, frameon=False)
plt.title('position=500 lane=4', font2)
plt.xlabel('time', font2)
plt.ylabel('volume(pcu/min)', font2)
plt.grid()
plt.bar(range(len(data4)), data4, color=colors, width=1)
plt.xticks([index - 0.5 for index in range(len(x_tick))], x_tick, rotation=45, size=100)
plt.ylim(0, 35)
plt.yticks(size=200)
ax5 = plt.subplot(2, 3, 5, frameon=False)
plt.title('position=500 lane=5', font2)
plt.xlabel('time', font2)
plt.ylabel('volume(pcu/min)', font2)
plt.grid()
plt.bar(range(len(data5)), data5, color=colors, width=1)
plt.xticks([index - 0.5 for index in range(len(x_tick))], x_tick, rotation=45, size=100)
plt.ylim(0, 35)
plt.yticks(size=200)
ax6 = plt.subplot(2, 3, 6, frameon=False)
plt.title('position=500 lane=6', font2)
plt.xlabel('time', font2)
plt.ylabel('volume(pcu/min)', font2)
plt.grid()
plt.bar(range(len(data6)), data6, color=colors, width=1)
plt.xticks([index - 0.5 for index in range(len(x_tick))], x_tick, rotation=45, size=100)
plt.ylim(0, 35)
plt.yticks(size=200)
plt.savefig('plt1.png')
plt.show()
2.绘制折线图
# data1是list类型
x = list(range(0, 360, 5))
def plot_line(x, data1, data2, data3, data4, data5):
# 创建x轴显示的参数
x_tick = ['7:50', '7:51', '7:52', '7:53', '7:54', '7:55', '7:56',
'7:57', '7:58', '7:59', '8:00', '8:01', '8:02', '8:03', '8:04', '8:05']
x = range(len(x_tick))
plt.figure(figsize=(300, 100), dpi=10)
font2 = {'family': 'Times New Roman', 'weight': 'normal', 'size': 100}
ax1 = plt.subplot(2, 3, 1, frameon=False)
plt.plot(x, data1, marker='.', mec='r', mfc='w', linewidth=6)
plt.xticks(x, x_tick, rotation=45, size=100)
plt.ylim(0, 75)
plt.yticks(size=100)
plt.margins(0) # 设置缩放
plt.title('position=500 lane=1', font2)
plt.xlabel('time', font2)
plt.ylabel('space mean speed(fit/s)', font2)
plt.grid()
ax2 = plt.subplot(2, 3, 2, frameon=False)
plt.plot(x, data2, marker='.', mec='r', mfc='w', linewidth=6)
# plt.legend() # 显示变化曲线的名称
plt.xticks(x, x_tick, rotation=45, size=100)
plt.ylim(0, 75)
plt.yticks(size=100)
plt.margins(0) # 设置缩放
plt.title('position=500 lane=2', font2)
plt.xlabel('time', font2)
plt.ylabel('space mean speed(fit/s)', font2)
plt.grid()
ax3 = plt.subplot(2, 3, 3, frameon=False)
plt.plot(x, data3, marker='.', mec='r', mfc='w', linewidth=6)
plt.xticks(x, x_tick, rotation=45, size=100)
plt.ylim(0, 75)
plt.yticks(size=100)
plt.margins(0) # 设置缩放
plt.title('position=500 lane=3', font2)
plt.xlabel('time', font2)
plt.ylabel('space mean speed(fit/s)', font2)
plt.grid()
ax4 = plt.subplot(2, 3, 4, frameon=False)
plt.plot(x, data4, marker='.', mec='r', mfc='w', linewidth=6)
plt.xticks(x, x_tick, rotation=45, size=100)
plt.ylim(0, 75)
plt.yticks(size=100)
plt.margins(0) # 设置缩放
plt.title('position=500 lane=4', font2)
plt.xlabel('time', font2)
plt.ylabel('space mean speed(fit/s)', font2)
plt.grid()
ax5 = plt.subplot(2, 3, 5, frameon=False)
plt.plot(x, data5, marker='.', mec='r', mfc='w', linewidth=6)
plt.xticks(x, x_tick, rotation=45, size=100)
plt.ylim(0, 75)
plt.yticks(size=100)
plt.margins(0) # 设置缩放
plt.title('position=500 lane=5', font2)
plt.xlabel('time', font2)
plt.ylabel('space mean speed(fit/s)', font2)
plt.grid()
'''
ax6 = plt.subplot(2, 3, 6, frameon=False)
plt.plot(x, data6, marker='.', mec='r', mfc='w', linewidth=6)
plt.xticks(x, x_tick, rotation=45, size=100)
plt.ylim(0, 75)
plt.yticks(size=100)
plt.margins(0) # 设置缩放
plt.title('position=500 lane=6', font2)
plt.xlabel('time', font2)
plt.ylabel('space mean speed(fit/s)', font2)
plt.grid()
'''
plt.savefig('plt3.png')
plt.show()
2.python常用函数
1.plt.plot()
plt.plot()默认画出来的是一个折线图。当只传入一个变量时默认将index作为x坐标。
2.plt.grid()
格式如下: matplotlib.pyplot.grid(b=None, which='major', axis='both', )
参数说明:
- b:可选,默认为 None,可以设置布尔值,true 为显示网格线,false 为不显示,如果设置 **kwargs 参数,则值为 true。
- which:可选,可选值有 'major'、'minor' 和 'both',默认为 'major',表示应用更改的网格线。
- axis:可选,设置显示哪个方向的网格线,可以是取 'both'(默认),'x' 或 'y',分别表示两个方向,x 轴方向或 y 轴方向。
- **kwargs:可选,设置网格样式,可以是 color='r', linestyle='-' 和 linewidth=2,分别表示网格线的颜色,样式和宽度。
3.random模块
1、random.choice(sequence)
可以从序列中获取一个随机元素;
choice() 方法返回一个(列表,元组或字符串中的)随机项。
random.choice('abcdefghijklmnopqrstuvwxyz!@#$%^&*')
4.range函数
for i in range(6): i 为0,1,2,3,4,5
for i in range(3,8): i 为3,4,5,6,7
for i in range(2,20,2): 2到19的序列,且步数为2; i为2,4,6,8,10,12,14,16,18
3.借鉴网站
https://www.jb51.net/article/199295.htm