python知识点总结(二)

在这里插入图片描述


这里写目录标题

  • 1、什么是解释性语言,什么是编译性语言?
  • 2、说说中作用域是怎么划分的
  • 3、type和isinstance方法的区别
  • 4、浅拷贝和深拷贝
  • 5、python中变量在内存中存储方式
  • 6、python中的封装、继承、多态
  • 7、python中内存管理机制是怎么样的?
  • 8、简述类属性和对象属性的区别
  • 9、类方法、实例方法、静态方法区别
  • 10、类中property有什么用
  • 11、with方法使用原理
  • 12、while-else for-else语法的用法
  • 13、编写程序实现:该函数的输入是一个仅包含数字的list,输出一个新的list,
  • 14、read、readline、readlines
  • 15、传递方式是值传递还是引用传递
  • 16、正则表达式中贪婪模式和非贪婪模式的区别
  • 17、python异步场景有哪些
  • 18、把字符串s中的每个空格替换成”%20”,
  • 19、打乱一个排好序的对象
  • 20、将d按value进行排序
  • 21、将str1="k:1|k1:2|k2:3|k3:4"处理为字典
  • 22、写一个列表生成式,产生一个公差为11的等差数列 0 11 22
  • 23、给定两个列表,怎么找出他们相同的元素和不同的元素
  • 24、请写出一段python代码实现删除list里面的重复元素?

1、什么是解释性语言,什么是编译性语言?

编译型语言特点:编译成二进制文件;一次编译,多次执行;执行速度快(只需要翻译一次),跨平台型比较弱
解释型语言特点:翻译成C代码,再翻译成二进制,再执行;每次编译每次执行;执行速度慢(多次执行、多次编译),跨平台型比较强

2、说说中作用域是怎么划分的

内建作用域、全局作用域、闭包函数作用域、局部作用域
内建作用域:max、len,在任何地方都可以使用
全局作用域:全局变量,定义在.py文件中的变量
闭包函数作用域:定义在闭包函数中
局部作用域:定义在内部函数中

import os
from functools import reduce
from typing import Iterator, Iterable

c = 1  # 全局作用域


def fn():
    d = 2  # 函数作用域

    def fn1():
        e = 3  # 局部作用域


max(1, 2, 3)  # 内建作用域:在任何地方都可以用

3、type和isinstance方法的区别

目的不同:
type:用于获取对象的类型,其返回值是对象的类型
isinstance:用于测试对象是否是某种类型,返回True或者False
type不能判断子类对象是否属于父类,isinstance可以

a = 2
b = 2.4
print(isinstance(a, (int, float)))      #True
print(isinstance(b, (int, float)))      #True


class Father:
    pass


class Son(Father):
    pass


if __name__ == '__main__':
    son = Son()
    print(type(son))  # <class '__main__.Son'>
    print(isinstance(son, Son))  # True
    print(isinstance(son, Father))  # True
    print(isinstance(son, object))  # True

4、浅拷贝和深拷贝

总结:
1、浅拷贝只拷贝父对象,不会拷贝父对象中子对象
2、深拷贝不但拷贝父对象,父对象中的子对象也会拷贝
3、不可变对象,无论是深拷贝还是浅拷贝,都不会发生拷贝**

浅拷贝旨在减少内存的占用
深拷贝可以在做数据的清洗、修改或者入库的时候,对原数据进行复制一份,以防数据修改之后,找不到原数据
对于不可变对象类型,没有深浅拷贝的说法,无论是深拷贝还是浅拷贝结果一样的,如果对其重新赋值,
对于可变类型来说,浅拷贝只复制容器,不复制容器中元素;
深拷贝复制容器,元素如果是可变类型,也复制元素。

5、python中变量在内存中存储方式

1、什么是引用赋值?
定义了变量a,并且指向了内存中的一个地址,定义变量b时,将a变量的引用赋给b,两个变量指向了同一个内存地址。
2、引用赋值,如果使用的是可变类型:会被关联修改。

按值赋值:python的驻留机制对相同的字符串只保留一份拷贝,后续创建相同字符串时,不会开辟新空间,而是把该字符串的地址付给新创建的变量。
符合字符串驻留条件的有:
1、数字在-5~256之间
2、符合标识符的字符串
3、字符串的长度为0或者为1时
4、字符串的由数字、字母、下划线组成时
5、字符串在编译前进行驻留,而不是编译后

1,当进行修改操作时,可变类型传递的是内存中的地址,也就是说,直接修改内存中的值,并没有开辟新的内存。
2,不可变类型被改变时,并没有改变原内存地址中的值,而是开辟一块新的内存,将原地址中的值复制过去,对这块新开辟的内存中的值进行操作。

6、python中的封装、继承、多态

https://blog.csdn.net/YZL40514131/article/details/121731536

7、python中内存管理机制是怎么样的?

https://blog.csdn.net/YZL40514131/article/details/125884570

8、简述类属性和对象属性的区别

类属性在__init__方法之外,
类属性可以让类和对象调用

实例属性定义在__init__中或者方法中
self.开头
只能通过实例对象调用
不能通过类去调用

调用类属性:
类调用:直接调用类属性
对象调用:先得到对象属性,如果有对象属性则获取类属性

类属性是共享的
同一个类创建的不同对象共享属性
对象属性
不同对象内存是独立的

9、类方法、实例方法、静态方法区别

https://blog.csdn.net/YZL40514131/article/details/119744665

10、类中property有什么用

https://blog.csdn.net/YZL40514131/article/details/120056165

11、with方法使用原理

用于上下文管理协议
__enter__:进入上下文
__exit__:退出上下文

class MyOpen:
    def __init__(self,filename,mode,encoding='utf-8'):
        self.f=open(filename,mode,encoding=encoding)

    def __enter__(self):
        return self.f

    def __exit__(self, exc_type, exc_val, exc_tb):
        self.f.close()


with MyOpen('1.txt','r',encoding='utf-8') as f:
    res=f.readline()
    print("res",res)

12、while-else for-else语法的用法

换句话说,如果我们不是以正常方式退出循环,那么else分支将不被执行。
也就说在循环体内用break、return退出不会执行else语句。

13、编写程序实现:该函数的输入是一个仅包含数字的list,输出一个新的list,

其中每一个元素需要满足以下条件
1、该元素是偶数;
2、该元素在原list中是在偶数的位置

def num_list(num):
    return [i for i in num if i % 2 == 0 and num.index(i) % 2 == 0]


num = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(num_list(num))

14、read、readline、readlines

https://blog.csdn.net/YZL40514131/article/details/125609673

15、传递方式是值传递还是引用传递

不可变参数用值传递
可变参数是引用传递

16、正则表达式中贪婪模式和非贪婪模式的区别

贪婪模式:正则表达式去匹配时,会尽量多的匹配符合条件的内容
非贪婪模式:正则表达式去匹配时,会尽量少的匹配符合条件的内容,一旦匹配成功,不会继续往下匹配

17、python异步场景有哪些

1、多任务执行任务时不涉及共享资源,或者面对共享资源时只是读取数据,不会操作数据。
2、没有时序上的要求。
3、不能影响主线程的运行。
4、常用于IO操作等耗时操作,因为比较影响客户的体验和使用。
5、不需要原子操作,或可以通过其他方式控制原子性。

18、把字符串s中的每个空格替换成”%20”,

输入:s= “We are happy.", 输出: “We%20are%20happy.”

s = "We are happy."
s.replace("", "20%")

19、打乱一个排好序的对象

l = [2, 3, 4, 6]
import random

random.shuffle(l)
print(l)

20、将d按value进行排序

d = {'a': 24, 'g': 52, 'i': 12, 'k': 33}
d2 = sorted(d.items(), key=lambda d: d[1])
d3 = {key: value for key, value in d2}
print(d3)

21、将str1="k:1|k1:2|k2:3|k3:4"处理为字典

str1 = "k:1|k1:2|k2:3|k3:4"
d = {k.split(":")[0]: k.split(":")[1] for k in str1.split("|")}
print(d)

22、写一个列表生成式,产生一个公差为11的等差数列 0 11 22

l = [i for i in range(0, 100, 11)]
print(l)

l1 = [i * 11 for i in range(10)]
print(l1)

23、给定两个列表,怎么找出他们相同的元素和不同的元素

l1 = [1, 2, 3, 4]
l2 = [2, 3, 5, 6]

ll1 = set(l1)
ll2 = set(l2)

print(ll1 & ll2)  # 相同的元素
print(ll1 ^ ll2)  # 互不相同的元素
print(ll1 - ll2)  # l1不同l2的元素


{2, 3}
{1, 4, 5, 6}
{1, 4}

24、请写出一段python代码实现删除list里面的重复元素?

list1 = [1, 2, 2, 2, 3, 3, 4]


def func(list1):
    slow = 0
    fast = 0
    while fast < len(list1):
        if list1[fast] != list1[slow]:
            slow += 1
            list1[slow] = list1[fast]
        fast += 1
    return list1[:slow + 1]
print(func(list1))

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/465778.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

S32DS 中编译生成bin文件

1、按下图执行 按下图勾选 Create flash image 再次打开Properties 选择 Raw Binary 选择Debug_Flash进行编译后&#xff0c;在Debug_Flasg文件夹下就会出现bin文件 若没有出现 右键选择refresh 刷新一下即可

Python Web开发记录 Day13:Django part7 Ajax入门与案例(任务管理)

名人说&#xff1a;莫道桑榆晚&#xff0c;为霞尚满天。——刘禹锡&#xff08;刘梦得&#xff0c;诗豪&#xff09; 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 1、Ajax入门①简介②工作原理③优点④缺点⑤使用…

明远创意生活引领经典家纺品牌“大朴”走向新生

十二年前,有一个初创的国产家纺品牌,大胆地向消费者喊出领先于行业的标准——“无甲醛、无荧光增白剂、无致癌物”。凭借这样极致的健康承诺,“大朴”国内销售规模迅速超过一亿人民币,成功引领行业风气,收获了众多忠实粉丝。 2023年,因资金链断裂,“大朴”原公司破产清算,这个…

图书管理系统

一.book包 1.书的类 一本书的基本内容&#xff1a; 成员变量是private那么我们就需要set和get方法&#xff0c;也需要一个构造方法&#xff1a; Tostring的方法也需要加上&#xff1a; 2.书的增加是i在书架上操作的&#xff0c;创建一个BookList类 首先我们需要让书和书…

nginx 基本使用、借助 nginx 和 mkcert 实现本地 https://localhost 测试。

CSDN 如何将资源设置为免费&#xff1f; 安装和基本使用 进入 nginx 官网 下载 Mainline version 版本 解压到一个你喜欢的位置&#xff0c;比如解压到 C: 目录 不管配不配置环境变量&#xff0c;对 nginx 的所有操作都应该在对应文件夹中 基本命令的使用&#xff1a; cd …

初级爬虫实战——哥伦比亚大学新闻

文章目录 发现宝藏一、 目标二、简单分析网页1. 寻找所有新闻2. 分析模块、版面和文章 三、爬取新闻1. 爬取模块2. 爬取版面3. 爬取文章 四、完整代码五、效果展示 发现宝藏 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不…

手写微前端micro-app-页面渲染

我们可以使用循环递归的方式提取上面字符串资源中所有遍历到的link、style、script标签&#xff0c;提取静态资源地址并格式化标签。 在source.js文件中&#xff0c;添加extraSourceDom函数&#xff0c;用来提取link&#xff0c;script这种特殊标签 // 提取link的css链接 fun…

一些 AI 工具

AI 搜索&#xff1a;Phind&#xff0c;perplexity AI聊天大模型&#xff1a;chatgpt&#xff0c; kimi&#xff08;国内可用&#xff0c;支持上传文件&#xff09; AI 机器人&#xff1a;https://www.coze.com/ AI工具集&#xff1b;https://ai-bot.cn/#term-2 agent GPT&a…

【REST2SQL】13 用户角色功能权限设计

【REST2SQL】01RDB关系型数据库REST初设计 【REST2SQL】02 GO连接Oracle数据库 【REST2SQL】03 GO读取JSON文件 【REST2SQL】04 REST2SQL第一版Oracle版实现 【REST2SQL】05 GO 操作 达梦 数据库 【REST2SQL】06 GO 跨包接口重构代码 【REST2SQL】07 GO 操作 Mysql 数据库 【RE…

【每日一题】2024年3月汇编(上)

3.1【2369】检查数组是否存在有效划分 2369. 检查数组是否存在有效划分https://leetcode.cn/problems/check-if-there-is-a-valid-partition-for-the-array/ 1.这样的判断可以用动态规划来解决&#xff0c;用一个长度为(n1) 的数组来记录 是否存在有效划分&#xff0c;dp[i]…

【iOS】ARC学习

文章目录 前言一、autorelease实现二、苹果的实现三、内存管理的思考方式__strong修饰符取得非自己生成并持有的对象__strong 修饰符的变量之间可以相互赋值类的成员变量也可以使用strong修饰 __weak修饰符循环引用 __unsafe_unretained修饰符什么时候使用__unsafe_unretained …

webstorm 使用prettier格式化保存 导致代码缩进与gitlab代码不一致问题

问题 webstorm显示缩进正常 gitlab显示不正常 解决 .prettierrc.js module.exports {printWidth: 100,tabWidth: 2,useTabs: false, //设置为false 不使用tab作为缩进符semi: true,vueIndentScriptAndStyle: true,singleQuote: true,quoteProps: as-needed,bracketSpaci…

肖恩的投球游戏——前缀和

题目链接&#xff1a;1.肖恩的投球游戏 - 蓝桥云课 (lanqiao.cn) 前缀和&#xff1a; package lanqiao;import java.util.Arrays; import java.util.Scanner;/*** 2023/11/29* 前缀和问题*/ public class lanqiao3693_肖恩的投球游戏 {public static void main(String[] args) …

vue3+vite项目打包遇到的问题

一、项目打包出现空白页 vite.config.js中&#xff0c;添加base: ./ import { defineConfig } from vite import vue from vitejs/plugin-vueexport default defineConfig({base: ./, })router/index.js&#xff0c;将路由模式改成hash模式 import { createRouter, createWe…

性能分析调优模型

性能测试除了为获取性能指标外&#xff0c;更多是为了发现性能瓶颈和性能问题&#xff0c;然后针对性能问题和性能瓶颈进行分析和调优。在当今互联网高速发展的时代&#xff0c;结合传统软件系统模型以及互联网网站特征&#xff0c;性能调优的模型可以归纳总结为如图1-5-1所示的…

idea 的基本配置

一、安装目录介绍 其中&#xff1a;bin 目录下&#xff1a; 二、配置信息目录结构 这是 IDEA 的各种配置的保存目录。这个设置目录有一个特性&#xff0c;就是你删除掉整个目录之后&#xff0c;重新启动 IntelliJ IDEA 会再自动帮你生成一个全新的默认配置&#xff0c;所以很多…

力扣● 583. 两个字符串的删除操作 ● 72. 编辑距离 ● 编辑距离总结篇

● 583. 两个字符串的删除操作 注意审题&#xff1a; 给定两个单词 word1 和 word2 &#xff0c;返回使得 word1 和 word2 相同所需的最小步数。 每步 可以删除任意一个字符串中的一个字符。 删除最少的字符使两者相同&#xff0c;说明留下来的就是最大公共子序列。不要求…

01.Vue2入门

一、为什么要学习Vue 1.前端必备技能 2.岗位多&#xff0c;绝大互联网公司都在使用Vue 3.提高开发效率 4.高薪必备技能&#xff08;Vue2Vue3&#xff09; 二、什么是Vue 概念&#xff1a;Vue (读音 /vjuː/&#xff0c;类似于 view) 是一套 **构建用户界面 ** 的 渐进式 …

多种双拼方案的实现

首发日期 2024-03-14, 以下为原文内容: 就像 GNU/Linux 用户, 虽然比例小, 却又分散为一堆不同的发行版. 双拼用户在拼音输入法之中的比例也很小, 同时也分为各种不同的双拼方案. 那么作为一个 双拼 输入法, 最重要的事情是什么呢 ? 嗯, 那当然是支持自定义双拼方案 ! 实际上…

网络协议与层次划分:探索计算机网络体系结构

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…
最新文章