初识python,请多多指教,将遇到的一些问题和知识汇总于此。
1 for循环的几种写法
1 | #1 语法格式 |
2 | for variable in string |list|tuple|dict|: |
3 | #2 range([),左闭右开区间)| start :起始值、end:结束值、step:步长 |
4 | for variable in range(start,end,step): |
5 | #3 遍历元组或者列表: |
6 | t_tuple = ('a' ,'b','c') #or t_tuple = [1,'a' ,'b','c'] |
7 | for t in t_tuple: # or for t int range(0,len(t_tuple)) |
8 | print(t_tuple(t))# print(t_tuple[t]) |
9 | ## 4 遍历字典 |
10 | # dict三种方法: |
11 | # items(): 返回字典中所有 key-value 的列表 |
12 | # keys():key列表 |
13 | # values():value列表 |
14 | # example: dict_test = {'张三': 20, '李四': 30, 'x': 23} |
15 | # dict_test.items() : dict_items([('张三', 20), ('李四', 30), ('x', 23)]) |
16 | # dict_test.keys() : dict_keys(['张三', '李四', 'x']) |
17 | # dict_test.values() : dict_values([20, 30, 23]) |
2 类的定义和使用
(1)定义类:
1 | class Student(Object): |
2 | # __init__的第一个参数永远是self(约定俗成的词,也可以为其他(myname...)) |
3 | def __init__(self,name,age): |
4 | # ***self表示类实例本身,调用时不需要传入 |
5 | self.name = name |
6 | self.age = age |
7 | # (private)私有变量的定义方法 |
8 | self.__name = name |
9 | self.__age = age |
10 | # 内部定义的函数可以通过self直接获取类实例本身的数据 |
11 | def print_age(self): |
12 | print(self.name.self.age) |
13 | stu = Student('yunsnow',24) |
14 | stu.name # yunsnow |
15 | stu.age # 24 |
16 | stu.__name # AttributeError: 'Student' object has no attribute '__name' |
3 python内置数据结构
常用的有五种:列表(list)、元组(tuple)、字符串(str)、集合(set)和字典(dict)
列表 :有序的,通过索引找值。中括号[]表示, 如:
1
# list中可以有其他数据结构
2
a=[1,2,'x',[1,2,3]]
3
# 增
4
a.append('y') # a = [1, 2, 'x', [1, 2, 3], 'y']
5
# 删
6
a.remove('y')
7
# 改
8
a[1] = 'a' # a = [1, 'a', 'x', [1, 2, 3]]
9
a[0:2] = [2,3] # a =[2, 3, 4, 'x', [1, 2, 3]]
字典: 大括号{}表示,key : value,key不能重复、value可以修改
1
student={'name':'yunsnow','age':24,'sex':'man'}
2
# 增
3
student['grade'] = 'excellent' # or student.update({'grade':'excellent'})
4
print(student) # {'name': 'yunsnow', 'age': 24, 'sex': 'man', 'grade': 'excellent'}
5
# 删
6
del student['grade']
7
# 改(只能修改value,key不可修改)
8
student['age']=25 # {'name': 'yunsnow', 'age': 25, 'sex': 'man'}
tuple:小括号()表示,元素不可修改,只能查看
1 | list_name = ['yunsnow','zhu','ren','yunsnow'] |
2 | set = set(list_name) |
3 | print (set) # {'yunsnow', 'zhu', 'ren'} |
4 matplotlib 绘图工具
(1)坐标轴刻度的选择,以设置时间为例
1 | # 需求:横坐标显示9:00-19:00时间,刻度为每隔两小时 |
2 | date_list = [] # 存放时间数据 |
3 | time_begin = '9:00' |
4 | d = datetime.datetime.strptime(time_begin, '%H:%M') |
5 | p = 15 # 时间间隔,15Min |
6 | date_point = 44 # 时间点,10个小时 |
7 | date_list.append(d) |
8 | for i in range(1, date_point): |
9 | # datetime.timedelta增减时间 |
10 | date_list.append(date_list[i - 1] + datetime.timedelta(minutes=15)) |
11 | for i in range(0, date_point): |
12 | date_list[i] = date_list[i].strftime('%H:%M') |
13 | y = np.random.randint(0,10,[date_point,1])# 随机生成数 |
14 | ax=plt.gca() # ax为两条坐标轴的实例 |
15 | x_major_locator=MultipleLocator(8) # 设置刻度间隔,这里设为8 |
16 | ax.xaxis.set_major_locator(x_major_locator)# |
17 | plt.plot(date_list, y) |
18 | plt.show() |