day1

注释

crtl + / #单行注释

’‘’ 这是多行注释‘’‘ # ’‘’ ‘’‘ 表示多行注释

变量

用来存储数据,不需要定义

a = 10

a = 100

a = ‘你好,世界!’

规则:以字母(区分大小写)或者下划线开头,可以包含数字 # 变量名 = 数据 a,b = 10,5

规范:小驼峰命名: userName #第一个单词首字母小写,之后单子首字母大写

基本数据类型

image-20201016104505966

type(变量) #用来查看变量的类型

元组类型-tuple

b=()

当只有一个元素时,需要加逗号 #b = (4,)

一经创建不可修改(元组内的列表的话,可以修改)

b[-2: -1:] #输出-2 - -1的元素

0 1 2 3 4 5

-6 -5 -4 -3 -2 -1

内置函数:count() #统计元素出现的次数

index(x) #索引第一个x的下标

列表类型-list

c=[]

image-20201017091303817

1
2
3
4
5
6
len(a)	#统计长度
type(a) #类型
print(a*3) #列表内内容复制3倍输出
del a[2:10] #删除列表中第2-9个数据
a.append(b) a.extend(b) #前者加了一个[],后者在list内扩展
remove() pop() #前者是指定值,后者指定索引
字典类型-dict

d={}

{key:value,key2:valuue2} #键值对的集合 value可重复,key不可重复(元组,字符串) 可以增删改

keys() values() items()#获取所有的键,值,键值对

共用方法 + * in

+合并

*复制

in 对象是否存在 a in list #a是否存在在list’中 返回bool

运算符

image-20201016111325023

image-20201016111649754

image-20201016111858256

not > and > or

image-20201016112235537

输出

print(内容) #自带换行效果 \n换行效果

print(内容,end = “ “) #打印完打出空格

用%占位符做输出

print(‘我是%s,来自%s’%(name,city))

print(‘我是{}’.format(变量) ) #{}.format(变量) #输出

image-20201016112822357

输入

name = input(提示语) 默认接受str类型数据

其他类型输入需要加强转

name = int (input(提示语) ) #传入int

条件控制

pass #用pass语句跳出循环

单分支

if 表达式:

​ 语句1

​ 语句2

双分支

if 表达式:

​ 语句1

​ 语句2

else:

​ 语句1

​ 语句2

多分支

if 表达式:

​ 语句1

​ 语句2

elif 表达式:

​ 语句1

​ 语句2

elif 表达式:

​ 语句1

​ 语句2

……

循环控制

while 表达式:

​ 语句1

​ 语句2

for … in 循环对象

​ 语句1

​ 语句2

pass结束本次缩进

break退出本层循环

continue跳过本次循环

import random

a = random.randit(0,100) #随机数库

range(1,100) <range对象>从1-100的对象集合

高级数据类型操作

序列,python提供3种字符串、元组、列表,可以进行切片根据索引(0 - n-1)

字符串基本操作

切片[start: end: ​step] step 默认是1

image-20201016203405705

day2

字符串基本操作

str.find(‘字符(串)’) #查找是否在字符串中 返回第一个下标从0开始,未找到返回-1

str.index(‘字符(串)’) #查找是否在字符串中 返回第一个下标从0开始,未找到报错

切片操作

slice [start: end:step​]

[start:end] #取 [start,end) 的字符串

[start:] #取 start到结尾的字符串

[:end] #取 [0,end) 的字符串

[::-1] #倒叙输出

函数

1
2
3
4
5
6
7
8
9
10
11
12
13
#定义

def func名(参数列表): #可以定默认值 a=10(调用时不输入形参即调用默认值),

代码块 #可以用可变参数*args不确定参数个数,必须放在 **kwages之前

pass #可以用 **kwages 表示参数是一个字典(传入时 **dict传入,或者name ='peter',age = 16 传入)



func名(形参) #调用


函数返回值

return后的代码都不会执行

如果有多个数据需要返回,直接返回元组、字典或者列表都可!

如果在函数内部需要对全局变量进行修改的话需要声明global

type() #查看类型

id() #查找地址

匿名函数:lambda 参数列表:表达式

ex: test = lambda x,y: x+y

调用: test(3,4)

三元式

x if x>y else y

应用匿名函数ex:直接调用

test = (lambda x,y: x+y)(3,4)

递归实例 模拟实现树形结构的 遍历

1
2
3
4
import os		#引入文件操作模块

listRs = os.listdir(path)

内置函数

image-20201018191614678

eval 动态执行一个字符串表达式返回值

image-20201018194516657

image-20201018194855306

all() #对序列判断 == 逻辑操作and 只要包含 0、空、false就返回False

any() #对序列判断 == 逻辑操作or 只有仅包含 0、空、false就返回False

sorted(list,reverse = true) #排序,默认时false升序

zip() #将2个序列按照索引合并成一个序列组,个数按照少的来

enumerate(list,start=0) #将序列和开始位置的索引合并成一个序列

集合

set1 = {1,2,3,4} #元素不重复,无序且不支持索引和切片

dict1 = {1:2} #字典

day3

面向对象

#object oriented programmer

image-20201018211412291

定义类 类名采用大驼峰命名

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Person:
'''
属性方法
'''
name = 'name'
age = 18
def speak(self):
print('fuck')
pass

def __init__(self,name,age):
self.sex = 'xiaoming'
self.age = age
self.name = name
pass #初始化方法,定义属性,自动调用 ==构造函数
pass

day4

关于numpy

安装numpy: conda install numpy

使用

import numpy as np

np.random.rand(a,b) #生成a行b列的随机向量

np.random.randint(a,b) #生成a-b之间的一个随机数

1
2
3
4
5
6
7
8
9
10
#向量生成
A = np.array([[12,23,34,45],[21,32,24,56],[11,22,33,44]])
#求和按照行(列) axis=1(0)
A.sum(axis=0)
A = np.random.randn(5) #随机生成5个高斯变量 if have 2 vairble,can become 5*1 向量
A.reshape(a,b) #将A装换成a行b列向量
A.T #表示转置
np.dot(A,A.T) #表示矩阵乘法
assert(A.shape == (a,b)) #判断是不是a*b的向量