Python知识点随记

以下纯属个人理解随意记录,肯定有不足之处,若有朋友发现错误和理解分歧之处,欢迎一起分享讨论,共同进步! 谢谢( ̄▽ ̄)~*

后续会继续更新 ( ̄▽ ̄)~*

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 运算 “交集( &),并集( | ),差集( - ),对称差集( ^ ), 包含与被包含( > 与 <)”

  1. 函数参数 *args 接收的是一个元组(位置参数,即 单个的值)

    ​ **kwargs 接收的是一个字典(关键字参数,即成对的,如a = 1 ==> a : 1)

11.函数的变量:

global关键字用在函数中修改全局变量
nonlocal也是用在函数中修改函数作用域内的局部变量
locals( )可以查看所有函数内部的局部变量
  1. 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.什么时候用:实现函数的功能既不需要对象属性也不需要类的字段,这个时候就使用静态方法
  1. 类属性和对象属性的区别
类属性在类中是共享的,对象属性是独立的,不会相互干扰
类属性可以使用类和对象进行调用,
而对象属性只能通过对象属性进行调用
  1. 九九乘法表
for i in range(1,10):
    for  j in range(1,i+1):
        print(f"{j} * {i} = {i*j}",end="")
    print()
  1. 冒泡排序
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
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值