以下纯属个人理解随意记录,肯定有不足之处,若有朋友发现错误和理解分歧之处,欢迎一起分享讨论,共同进步! 谢谢( ̄▽ ̄)~*
后续会继续更新 ( ̄▽ ̄)~*
Python 阶段一
1.Python中的数据类型(整型,字符串,元组,集合,列表,字典),
可变类型(集合,列表,字典)
不可变类型(整型,字符串,元组)
2.Python中连续赋值在python中是允许的.如 x= y=z=1
3.可变类型不可作为字典的key
4.字符串的方法 split 的使用,split(‘分割符’,次数)返回列表结果
5.字符串的截取与拼接,截取的时候也是取头去尾的
6.True在参与运算的时候为1,False参与运算的时候为0
7.random.random()的取值范围是[0,1),random是随机取值 (# 和random.rand一样)
random.uniform(a, b),用于生成一个指定范围内的随机**符点数**(包括a,b)
random.randint(a, b),用于生成一个指定范围内的整数(包括a,b)
random.choice从序列中获取一个随机元素。其函数原型为:random.choice(sequence)
list, tuple, 字符串都属于sequence
random.sample的函数原型为:random.sample(sequence, k),从指定序列中随机获取指定长度的片断. 例如:
list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
slice = random.sample(list, 5) #从list中随机获取5个元素,作为一个片断返回
print slice
8.“+”这个符号不能用于集合,(集合具有去重功能,)
9.集合set 运算 “交集( &),并集( | ),差集( - ),对称差集( ^ ), 包含与被包含( > 与 <)”
-
函数参数 *args 接收的是一个元组(位置参数,即 单个的值)
**kwargs 接收的是一个字典(关键字参数,即成对的,如a = 1 ==> a : 1)
11.函数的变量:
global关键字用在函数中修改全局变量
nonlocal也是用在函数中修改函数作用域内的局部变量
locals( )可以查看所有函数内部的局部变量
- self的意义:
self 不是一个关键字,只是一个形参;
self是指向当前的类,谁调用就指向谁
self可以用来引用类中其他属性,调用类中其他方法
13.类方法、静态方法和对象方法的区别:
1)对象方法 a.怎么声明: 直接声明在类中的函数 b.怎么调用: 通过对象来调用 c.特点: 有个指向当前对象的默认参数self;调用的时候不需要传参 d.什么时候用: 实现函数的功能需要用到对象属性
2)类方法 a.怎么声明: 声明函数前加'@classmethod' b.怎么调用: 通过类来调用, '类.方法名()' c.特点: 有个默认参数cls, 这个参数在通过类调用的时候不需要传参; 指向当前类(谁调用指向谁) 类能做的事情,cls都可以做 d.什么时候用: 实现函数的功能不需要对象属性的前提下,需要类的字段(需要类),这个时候就用类方法
3)静态方法 a.怎么声明: 声明函数前加'@staticmethod' b.怎么调用: 通过类来调用, '类.方法名()' c.特点: 没有特点(没有默认参数) d.什么时候用:实现函数的功能既不需要对象属性也不需要类的字段,这个时候就使用静态方法
- 类属性和对象属性的区别
类属性在类中是共享的,对象属性是独立的,不会相互干扰
类属性可以使用类和对象进行调用,
而对象属性只能通过对象属性进行调用
- 九九乘法表
for i in range(1,10):
for j in range(1,i+1):
print(f"{j} * {i} = {i*j}",end="")
print()
- 冒泡排序
nums = [1,2,4,6,3,5,4,4,9,1]
for i in range(len(nums)-1):
for j in range(len(nums)-1-i):
if nums[j] > nums[j+1]:
nums[j],nums[j+1] = nums[j+1],nums[j]
print(nums)
17.选择排序
nums = [9,7,6,8,5,4,3,2,1]
# 方法一:
for i in range(len(nums)-1):
min_index = i
for j in range(i, len(nums)):
if nums[j] < nums[min_index]:
min_index = j
# 用最小数和第i个元素交换
nums[i], nums[min_index] = nums[min_index], nums[i]
print(nums)
# 方法二:
for i in range(0,len(l)-1):
for j in range(i+1,len(l)):
if l[i]>l[j]:
l[i],l[j] = l[j],l[i]
print(l)
# 方法三:利用np.argmin求出最小值的下标,然后进行交换
l = np.array([1,3,5,7,9,2,4,6,8])
for i in range(0,len(l)-1):
index = np.argmin(l[i: ]) + i
l[index],l[i] = l[i],l[index]
print(l)
18.插入排序(逆序比较)
l = [3, 1, 5, 7, 9, 2, 4