0%

python学习笔记

初识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. 列表 :有序的,通过索引找值中括号[]表示, 如:

    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]]
  2. 字典: 大括号{}表示,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'}
  3. 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()

-------------未完待续-------------