编程基本概念

编程基础概念 计算机中用来判断两个数的关系的符号,即关系运算符,一共有如下6个: == 等于 > 大于 < 小于 >= 大于等于 <= 小于等于 != 不等于 阅读详情

程序的构成

  1. python程序由模块组成,一个模块对应一个python源文件,后缀为.py
  2. 模块由语句组成,运行python程序时,按照模块中的语句顺序依次执行
  3. 语句是python程序的构造单元,用于创建对象,变量赋值,调用函数,控制语句等

对象的基本组成

python中,一切皆为对象,对象由三部分组成: 标志,类型,值

  1. 标志一般对应计算机内存地址,可以使用内置函数id 返回对象obj的标识
  2. 类型限制对象的取值范围以及可执行的操作,可以使用type获得对象的所属类型
  3. 值则为对象存储数据的信息,直接使用print打印输出
    所以,对象其实就是一个内存块,然后拥有特定的值,支持特定类型的相关操作

标识符

简单理解,标识符其实就是名字,就好像我们每个人也都有自己的名字一样,它的主要作用是作为变量、函数、类、模块以及其他对象的名称

python中的标识符的命名并不是随意的,需要遵守一定的命名规则:

  1. 标识符需要由字母、下划线以及数字组成,且第一个字符不能是数字
  2. 标识符不能和python中的保留字相同,保留字可以通过以下代码查看:
import keyword
print(keyword.kwlist)
  1. 标识符不能包含各种特殊字符,比如说空格 百分号等等
  2. 标识符中的字母是区分大小写的,这个一定要注意
  3. python中以下划线开头的标识符通常有特殊含义,譬如类属性、类的私有成员、专有标识符等
  4. 标识符的命名,除了要遵守以上这几条规则外,不同场景中的标识符,其名称也有一定的规范可循,例如:
    1. 当标识符用作模块名时,应尽量短小,并且全部使用小写字母,可以使用下划线分割多个字母,例如 game_mian、game_register 等
    2. 当标识符用作包的名称时,应尽量短小,也全部使用小写字母,不推荐使用下划线,例如 com.mr、com.mr.book 等
    3. 当标识符用作类名时,应采用单词首字母大写的形式。例如,定义一个图书类,可以命名为 Book,模块内部的类名,可以采用 “下划线+首字母大写” 的形式,如 _Book
    4. 函数名、类中的属性名和方法名,应全部使用小写字母,多个单词之间可以用下划线分割;常量命名应全部使用大写字母,单词之间可以用下划线分割

变量

因为python中不需要声明变量类型,所以使用变量之前直接进行赋值,然后变量就会被创建,使用=对变量进行赋值,左侧为变量名,右侧为存储在变量中的值

变量类型

数字
  1. int 有符号整型
  2. float 浮点型
  3. long 长整型,也可以代表八进制和十六进制
  4. complex 复数
字符串

数字、字母、下划线组成的一串字符,用单引号或者双引号进行标识

元组

tuple使用()标识

列表

list使用[]标识

字典

dict使用{}标识

布尔

True / False

垃圾回收机制

主要需要了解三个方面

引用计数

每个对象维护一个ob_ref,用来记录当前对象被引用的次数,也就是来追踪到底有多少引用指向这个对象,说明白点:

  1. 对象被创建 +1
  2. 对象被引用 +1
  3. 对象被作为参数传入函数 +1
  4. 对象作为元素被存储进容器 +1
  5. 对象别名被显示销毁 也就是使用del函数 -1
  6. 对象的引别名被赋予新的对象 -1
  7. 元素从容器被删除或者容器被销毁 -1
  8. 对象离开作用域,譬如函数执行完毕之后函数里面的局部变量 -1

而当指向该对象的内存的引用计数器为0的时候,该内存被python虚拟机销毁
引用计数法优缺点也很明显
优点:

  1. 高效
  2. 实时性,一旦没有引用,内存就直接释放了,不需要等到特定的时机,而且回收内存的时间也被分摊到了平时
  3. 对象有确定的生命周期
  4. 易于实现
    缺点:
  5. 维护引用计数消耗资源,维护引用计数的次数和引用赋值成正比,而不像mark and sweep等基本与回收的内存数量有关
  6. 无法解决循环引用的问题。A和B相互引用而再没有外部引用A与B中的任何一个,它们的引用计数都为1,但显然应该被回收。
    也正是因为引用计数的缺点,对于循环引用的情况,或许代码内部有一组未使用的、互相指向的对象,但是谁都没有外部引用,但是因为引用计数都是1而不是0,所以不可能由python的垃圾回收机制去释放这些对象并且回收它们占用的内存空间,也因此python引入了两种GC机制
标记-清除
标记清除算法是一种基于追踪回收技术实现的垃圾回收算法。
它分为两个阶段,首先是标记阶段,GC会把所有的活动对象打上标记,然后是把那些没有标记的对象也就是非活动对象进行回收。
而GC判断活动对象和非活动对象的方法为:
对象之间通过引用(指针)连在一起,构成一个有向图,如下图所示,对象为节点,引用关系则为线。从根对象出发,沿着有向边遍历对象,可达的对象标记为活动对象,不可达的对象就是要被清除的非活动对象。
根对象就是全局变量、调用栈、寄存器。

在这里插入图片描述

上图中,我们从小圆圈,也就是全局变量开始,可以直达或者间接到达的是对象1、2、3,而4、5不可达,因为4、5将作为非活动对象而被GC回收

标记清除算法作为python的辅助垃圾收集技术,主要处理一些容器对象,例如列表,字典,元组等等
不过这种简单粗暴的标记清除算法也有明显的缺点,毕竟它需要顺序扫描整个堆内存

分代回收

分代回收是一种以空间换时间的操作方式,Python将内存根据对象的存活时间划分为不同的集合,每个集合称为一个代,Python将内存分为了3“代”,分别为年轻代(第0代)、中年代(第1代)、老年代(第2代),他们对应的是3个链表,它们的垃圾收集频率与对象的存活时间的增大而减小。新创建的对象都会分配在年轻代,年轻代链表的总数达到上限时,Python垃圾收集机制就会被触发,把那些可以被回收的对象回收掉,而那些不会回收的对象就会被移到中年代去,依此类推,老年代中的对象是存活时间最久的对象,甚至是存活于整个系统的生命周期内。同时,分代回收是建立在标记清除技术基础之上。分代回收同样作为Python的辅助垃圾收集技术处理那些容器对象.

GPU编程--OpenCL基本概念 本篇结构: 背景 OpenCL是什么 框架组成 基本概念 编写OpenCL程序的基本步骤 参考博文 一、背景 在过去利用GPU对图像渲染进行加速的技术非常成熟,因为GPU是典型的单指令多数据(SIMD)的体系结构,擅长大规模的并行计算;而CPU是多指令单数据流(MISD)的体系结构,更擅长逻辑控制。 在当今数据量计算越发庞大的情况下,为了提升计算效率,人们希望将GPU大规模的并行计... 阅读详情

相关推荐

Python-编程的基本概念

运行过程中,解释器先运行右边的表达式,生成一个代表表达式运算结果的对象;False、0、0.0、空值None、空序列对象(空列表、空元组、空字典、空字符串)、空range对象、空迭代对象。python内置的四种类型:整型(int)、浮点型(float)、布尔型(bool)、字符串型()str。python程序是由多个模块组成的,每个模块中含有单/多个语句。如:a,b,c=4,5,6 等价于 a=4;标识(identity)、类型(type)、值(value)如:a=3 (a是变量,3是对象)

木子小社恐的博客 1181

编程的基础概念有哪些?

函数:函数是一个可重用的代码块,它接受输入参数,执行一系列操作,然后返回结果。控制结构:控制结构是编程中的基本构建块,用于控制程序的流程。变量:在编程中,变量是一个存储数据的容器。文件操作:文件操作是编程中的重要部分,用于读取和写入文件。以上是编程基础概念的一些例子,当然还有很多其他的基础概念,但是这些概念可以帮助初学者了解编程的基本原理。数组和列表:数组和列表是一种数据结构,它们允许存储多个值。编程是计算机科学中的一个重要分支,它的目的是让计算机执行特定的任务。对象是类的一个实例,具有自己的属性和方法。

Joshua0704的博客 1690

音视频编程基本概念梳理

本文梳理了音视频编程开发者需要了解的基本概念 访问我的博客了解更多 前言 本文梳理了音视频编程开发者需要了解的基本概念,当然,有的人一开始看着干巴巴的理论,感到困乏,却是一个喜欢动手实践的开发者,那么先实践 ffmpeg的C语言编程入门,然后再来看理论篇更好了。 音频的基本概念 音频技术是为了采样、存储、播放"声学现象"而存在的,详细一点,是模拟信号与数字信号转换;在人耳可听的时域与频域的范围...

lightfish_zhang的博客 1132

什么叫编程---ChatGPT4o作答

内存地址是计算机内存中每个数据单元的标识符,用于指示存储位置。寄存器是CPU内部的快速存储单元,通常用于存储临时数据、计算结果和内存地址,访问速度比内存快得多。在程序执行过程中,内存和寄存器协同工作,寄存器负责存储当前需要处理的数据和控制信息,而内存则负责存储较大规模的程序代码和数据。通过对内存地址和寄存器的理解,你可以更好地把握计算机如何高效地处理数据和执行程序。机器语言是计算机能够直接理解和执行的最低级的编程语言,它是由0和1的二进制码组成,直接控制硬件的操作。

qq_46215223的博客 1531

新学编程之掌握基本概念

1. 为什么要学习基本概念 2. 如何学习基本概念 2.1 理解基本概念的字面意思 2.1.1 学习神器一 2.1.2 学习神器二 2.2 边实践边思考 2.3 构建属于自己的知识框架 3. 编程基本概念 3.1 Python vs Anaconda 3.2 变量 3.3 Unicode 和 UTF-8 的不同之处.........

herosunly的博客 1万+

软件编程的基本概念和示例代码

测试是通过输入不同的数据或情况,并验证程序的输出是否符合预期结果的过程。调试和测试是软件开发过程中至关重要的步骤,可以帮助发现潜在的错误并改进程序的质量。不同的编程语言具有不同的语法和语义,适用于不同的应用场景和开发需求。它涉及使用特定的编程语言和开发工具,将问题或需求转化为可执行的指令集合,以便计算机能够理解和执行。它涉及选择合适的编程语言、设置开发环境、编写程序代码、调试和测试、部署和维护等步骤。在部署之后,需要定期进行维护和更新,以确保软件的正常运行和适应新的需求。,并将它们的值分别设置为5和3。

Byte_O_O的博客 544

编程的详解与概念

编程的过程中,需要不断地进行试错和调试,不断地优化程序的性能和可读性,以达到最终的目标。总之,编程是一门创造性的艺术,它涉及到多个方面的知识和技能,可以帮助人们更好地理解和解决问题。编程是一门需要不断学习和实践的技能。编程者需要不断跟进技术的发展,学习新的语言、新的工具和新的技术,以便更好地适应新的应用场景。同时,编程者还需要不断地实践和尝试,通过不断的试错和调试,不断地提高自己的编程技能。编程的精髓在于解决问题,程序员需要不断学习新的知识和技术,以便更好地满足客户的需求,提高程序的效率和可靠性。

记录 IT 领域经验与见解的博客 1354

2、编程语言的基本概念

本文详细介绍了编程语言的基本概念,包括其定义、分类及发展历程。文章探讨了不同类型的编程语言及其主要应用场景,并深入分析了流行编程语言的特点与适用领域。此外,还讨论了编程语言的优化策略、相关工具与框架以及社区支持的重要性,帮助开发者更好地选择和使用合适的编程语言以提高开发效率和程序质量。

devops8pract的博客 110

网络编程-基本概念

文章目录网络编程网络编程 - 基本概念网络通信概述IP地址Linux、Windows 查看网卡信息IP地址的分类端口简述聊天信息的发送端口号端口的分类socket简介创建socket 网络编程 网络编程 - 基本概念 网络通信概述 1.什么是网络? 网络是一种辅助双方或者多方能够连接在一起的工具 如果没有网络,可想 单机的世界是多么的孤单 2.使用网络的目的 就是为了联通多方然后进行通信用的...

易编橙 · 终身成长社群,相遇已是上上签! 732

编程概念

编程概念

在C++中,NULL和nullptr有什么区别?

这两个定义导致了冲突,C++中的NULL如果和C语言一样也是(void *)0指针,而C++不允许void*隐式转换成其它指针类型,那NULL就无法表示空指针了。因此,使用 nullptr可以增加代码的清晰性,避免类型安全问题。即使在混合C++和C代码时,nullptr也提供了一个明确无误的空指针表示,达到兼容的目的。C++11 引入 nullptr 彻底解决了这些问题,提高语言的安全性、清晰性和现代性。在了解NULL和nullptr背后的故事之后,相信大家以后再也不会用NULL了。

hebhljdx的博客 678

网络编程基本概念

网络编程,指网络上的主机,通过不同的进程,以编程的方式实现网络通信(或称为网络数据传输)进程A:编程来获取网络资源进程B:编程来提供网络资源。

Dreadnaught的博客 457

别再死磕GAN了!用PyTorch从零实现DDPM图像生成(附CIFAR-10完整代码)

本文详细介绍了如何使用PyTorch从零实现DDPM(Denoising Diffusion Probabilistic Models)图像生成模型,并在CIFAR-10数据集上进行训练和测试。通过对比GAN,DDPM展现出更稳定的训练过程和更高质量的生成效果。文章包含完整的代码实现、训练技巧和优化建议,帮助开发者快速掌握这一前沿的生成模型技术。

weixin_33720078的博客 630

C++模板编程基本概念

C++模板编程基本概念 template typename 模板实例化 模板推导

LoveXming的博客 925

Claude Code启动失败解决方案,执行文件不兼容一键修复

Claude Code命令行工具突然报错,显示"不支持的16位应用程序"。作者排查Node版本无果后,发现是Anthropic更新导致Windows兼容性问题。解决方法很简单:卸载旧版、切换npm镜像源、重装最新版即可恢复。经验教训:遇到类似问题应先搜索社区反馈,避免无谓排查,同时注意npm源使用后及时还原。整个踩坑过程虽折腾,但最终只是简单的重装问题。

1459

低成本主从机械臂系统构建:6D位姿数据采集与VLA模型训练实战

本文详细介绍了如何构建低成本主从机械臂系统,实现高精度6D位姿数据采集与VLA模型训练。通过300美元级别的硬件组合,系统达到±1mm位置精度和≤0.5°姿态误差,满足Vision-Language-Action模型的多模态训练需求。文章涵盖硬件选型、数据采集技巧、模型训练实战经验,为机器人研究提供经济高效的解决方案。

r7s8t的博客 266

面试-计算机编程基本概念

简述: 主要记录一些计算机编程需要的基本概念,为了更好地理解编程中用到的其他概念。 比如要理解hashmap数据结构,就要对数据,链表,取模,位运算有基本的了解 内容: 1:取模,取余 1.1取模和取余类似,当取模的两个值得富豪相同时,取模和取余得到的值一样;否则相反 1.2取模的意义何在呢? 2.数组 ...

afqm8611的博客 167

Google 人机验证(reCaptcha)无法显示解决方案

Google 人机验证无法显示解决方案第一步 安装插件Chrome/Edge 电脑版Firefox 电脑版第二步 配置插件原理参考文章 前言:为了防止机器人攻击,国外很多网站都使用了 Google reCaptcha 验证码。reCaptcha 对于国外用户非常的友好,但是… 对于国内用户就不怎么友好了。究其原因,则是国内网络全线屏蔽 Google 服务,导致 reCaptcha 完全加载不出来。这样,国内玩家就无法在对应的网站进行下一步操作了。本方案可以解决 reCaptcha 无法加载的问题。 适用

qq_40713201的博客 8万+

面向对象编程的基本概念的阐述

对象是根据类的定义创建的具体实例。每个对象都有自己的属性值和方法,可以通过这些方法来操作对象的状态。组成部分状态(属性)- 对象的状态由其属性(字段)决定。每个对象可以有不同的属性值。- 属性通常由类定义,并可以是基本数据类型(如 `int`, `double`, `char` 等)或引用数据类型(如 `String`, `ArrayList` 等)。行为(方法):- 对象的行为是由其方法定义的。方法是对象可以执行的操作。- 方法可以访问和修改对象的属性,执行特定的任务。对象的实例化。

Z_xxx_的博客 828

PyCharm中Pyvips配置避坑指南:为什么pip安装后import还是报错?

本文详细解析了在PyCharm中配置Pyvips时,即使pip安装成功,import仍报错的根本原因。核心在于Pyvips依赖的libvips原生库未正确配置环境变量。文章提供了从下载libvips、配置Windows系统PATH到PyCharm项目级设置的完整避坑指南,并对比了三种配置策略,帮助开发者彻底解决DLL加载失败问题。

bush的博客 209

第一章 EB安装

1.DemoWorkspace 是基于EB当前组件配置下的例程,包含了启动文件和中断服务函数以及组件demo。2.Mclsar 下存放的是EB的插件包和静态MCAL的驱动文件。

舊梦的博客 1963

Lesson 2 网络编程的基本概念

根据教师ppt,介绍网络编程(Network Programming)的基本概念,展示一些简单的程序和一些基本的概念(进程,系统调用,文件标识符,信号)。 一.Network Programming 教师给出的定义: 可见:1.首先,网络编程的目的是为了写出能够利用network进行远程通信的程序(program)(程序一旦运行就可以被认为是进程,而进程是通信的对象或说端点)。 2.其次,这里由于是在讲编程,所以用了术语program。准确的说法应该是process,因为网络通信的端点是进程。进

weixin_46345928的博客 955

论文阅读:ICLR 2026 Breaking and Fixing Defenses Against Control-Flow Hijacking in Multi-Agent Systems

该论文首先系统阐述了控制流劫持攻击的核心机理。此类攻击通过操纵多智能体系统的编排机制,诱导系统执行非安全操作,进而实现敏感信息窃取。攻击者将恶意指令伪装成环境错误信息,借助可信代理传递至系统编排器,利用"困惑副手"漏洞绕过传统安全防线。该论文指出,现有防御方案如LlamaFirewall所依赖的对齐检查机制存在根本性局限——安全目标与功能需求之间存在不可调和的内在冲突。该论文的核心贡献体现在攻防两个维度。

CSPhD-winston的博客 493

1、Java网络编程基本概念

课程大纲 1、网络编程基本概念 2、网络编程TCP协议 3、TCP实现ECHO程序 4、服务器与多客户端通信 5、多客户端之间的通信 6、网络编程UDP协议 7、URL 8、MINA框架 1、网络编程基本概念 1、什么是计算机网络 把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大、功能强的网络系统,从而使众 多的计算机可以方便地互相传递信息,共享硬件、软件、数据信息等资源。 2、计算机网络的主要功能 资源共享 信息传输与集中处理 均衡负荷与分布处理 综合信息服务(www/综合业务数

weixin_53330986的博客 631

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

上一篇: Python入门-学习python之前,来一起认识一下python吧?
下一篇: python数据类型-整数
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值