计算机二级Python

一.静态语言和脚本语言

高级语言根据计算机执行机制的不同分为两类:静态语言和脚本语言

静态语言的核心特征:

  • 变量的类型在编译时(写代码时)就必须确定并固定下来,即在使用一个变量前必须显式地声明它地类型
  • 一旦声明,这个变量的类型就不能再改变
  • 执行方式为编译
  • 性能通常较高
  • 可靠性和可维护性方面更优:编译器像一个严格的代码审查员,能在编译的过程中就捕捉大量的类型错误、接口不匹配等问题,将很多Bug扼杀在摇篮里

脚本语言:

  • 变量无需声明类型
  • 通常不需要显式的编译步骤,一般都是采用解释作为执行方式
  • 性能通常较低,因为边解释边执行,运行时需要额外的时间来运行语法、推断类型,动态分配内存等。不过通过即时编译技术(如V8引擎for JavaScript,PyPy for Python),这个性能差距在逐渐缩小
  • 更灵活:无需关注类型细节,代码更短,开发速度更快
  • 运行时错误风险:一个拼写错误或类型错误可能直到运行到那一行代码时才会暴露,对于大型复杂项目,维护和重构的难度更高

两种将高级语言代码转换成计算机能读懂的指令的过程:

  1. 编译:是一次性转换的过程 (好比把一本中文书翻译成英文,才能让完全不懂中文的人看懂)                技术过程如下:

  • 输入:全部的源代码文件
  • 处理:编译器会读通所有代码,进行词法分析,语法分析,优化等一系列操作、
  • 输出:生成一个独立的,全新的可执行文件(如Windows中的.exe文件)。这个文件里是纯粹的机器指令
  • 执行:此后,源代码就和执行无关了。可以直接运行这个可执行文件,即使源代码被删除,程序照样可以运行

     2.解释:是一个边转换边执行的过程(好比同声传译)

                技术过程如下:

  • 输入:源代码文件
  • 处理:解释器读取原代码的第一行,立即转换成机器指令并让CPU执行;然后读取第二行,转换成机器指令并让CPU执行;如此重复直到结束
  • 输出:没有独立的可执行文件生成(输出的是程序的运行结果,如屏幕显示,文件修改等)
  • 执行:程序的每次执行都离不开源代码和解释器,必须同时拥有两者

编译器和解释器是执行上述编译和解释过程的软件

编译器如GCC(c\cpp编译器),javac(java编译器)

特点:

  • 速度快:程序运行时已经是机器码,直接由CPU执行,效率高
  • 需额外步骤:修改代码后,必须重新编译才能看到变化
  • 跨平台性差:编译产生的可执行文件通常只适用于特定的操作系统和CPU架构(例如为Windows编译的程序无法在Mac上运行)

解释器如python解释器,JavaScript引擎(如V8),Ruby解释器

特点:

  • 灵活性高:修改代码后,直接就可以再次运行,无需等待编译
  • 跨平台性好:只要有对应平台的解释器,同一份代码就可以在任何平台上运行,实现了“一次编写,到处运行”
  • 速度相对慢:因为边翻译边执行,每次运行都包含翻译的开销

注:现在纯粹的编译和解释比较少了,很多语言采用混合模式,最典型的是Java和JavaScript

二.程序设计的统一模式(IPO)

Input:输入

Process:处理

Output:输出

三.基本语法格式

python采用严格的缩进(一般为4个空格)来表明程序的格式框架(代码的层次和包含关系),但并不是所有的python代码都需要缩进

四.Python中的转义字符

转义字符是一个以反斜杠\开头的特殊字符序列,用于表示那些在字符串中难以直接表示或具有特殊含义的字符。

例如换行,引号,制表符等

下面是一些常见的转义字符的形式和作用:

  • \\: 表示反斜杠\
  • \': 表示单引号   如 ' it\'s good '
  • \n :换行符
  • \t : 水平制表符  一个\t表示4个空格
  • \r : 回车符
  • \b : 退格符

五.变量命名规定

分为硬性规则(必须遵守)和软性规则(建议遵守)

1.硬性规则

只能包含以下字符:

  • 大小写英文字母
  • 数字0~9
  • 下划线

不能以数字开头

不能是python的保留字(也称关键字)

区分大小写

2.命名约定(软性规则)

变量名应该清晰地表明意图

python3可以适用汉字以及大多数Unicode字符作为变量名,但是不推荐这么做,¥,$ 都不能做变量名,所以尽量不要用英文和数字及下划线以外的作为变量名

六.重要的代码知识

1.print()函数中的end参数

控制print()函数在输出完后要以什么字符结尾,end参数的默认值为'\n',即默认输出完会换行,end参数取值为空字符串或者空格的时候可以让多次输出打印在同一行,即取消换行

2.复数

形如a+bj的形式,其中a,b都是浮点数。

注意在数学中一般用i表示复数,但是在工程和python中都用j表示

在python中直接在数字后面加j或J就能表示复数,或者使用complex()函数

complex(4,5) # (4+5j)
3+4j # 3+4j

每个复数都有.real和.imag两个属性,用来获取复数的实部和虚部

(3+4j).real # 3.0
(3+4j).imag # 4.0

同时python支持复数的所有运算,+-*/ **

3.divmod()函数

divmod(a,b)返回一个包含两个元素的元组,第一个元素为a//b,即在a除以b的基础上向下取整,第二个元素为a%b ,即a与b的模运算(求余数)

divmod(11,3) # (3,2)

4.%模运算

模运算是一种求余运算,基本概念是:对于两个整数a和b(b为不为零),存在唯一的整数q(商)和r(余数),使得:

a = b * q + r, 并且0 <= r < |b|

其中,r就是a对b取模的结果,在python中表示为a % b

需要注意的是,python的模运算结果的符号始终与除数(第二个操作数)的符号相同

7 % 3 # 1
7 % -3 # -2
-7 % 3 # 2

分析:

对于 7 % -3    我们要找到一个r,范围为0<= r < |-3| = 3, 使得7 = (-3) * 某个整数 + r

这要求 -3  * 这个整数 的 值 不能和 7 相差 太大,差在[0,3)之间,

所以考虑这个整数为-3或者-2  但r要和-3符号相同,因此这个整数只能是-3,r的值容易得出为-2

或者还可以这样分析,r要为负数,说明-3和商要比7大,所以商只能是-3

同理对于-7 % 3,商为-3 余数为2 所以r=2

4.pow()函数

也是python的内置函数,用于计算幂运算(指数运算)

语法:pow(base,exp[,mod])

base:底数,必须要有的参数

exp:指数,必须要有的参数

mod:模数,可选,如果提供,将返回 base ** exp % mod

pow(2,3) # 8
pow(2,3,5) # 3
pow(-2,3,5) # 2

5.字符串格式化format方法

基本语法:"字符串{占位符}".format(值)

print("小明今年{}岁".format(18)) # 小明今年18岁
print("{1}喜欢{0}".format('苹果','小红')) # 小红喜欢苹果# 使用关键字参数
print("{name} 今年 {age} 岁,喜欢 {hobby}".format(name="小红", age=20, hobby="读书"
))
# 输出:小红 今年 20 岁,喜欢 读书# 可以重复使用
print("{fruit} 很甜,我喜欢吃 {fruit}".format(fruit="西瓜"))
# 输出:西瓜 很甜,我喜欢吃 西瓜print("{0} 买了 {1} 个 {fruit}".format("小李", 3, fruit="苹果"))
# 输出:小李 买了 3 个 苹果# 右对齐,宽度10,用空格填充
print("|{:>10}|".format("hello"))    # 输出:|     hello|# 左对齐,宽度10
print("|{:<10}|".format("hello"))    # 输出:|hello     |# 居中对齐,宽度10
print("|{:^10}|".format("hello"))    # 输出:|  hello   |# 指定填充字符
print("|{:*^10}|".format("hello"))   # 输出:|**hello***|
print("|{:=^10}|".format("hello"))   # 输出:|==hello===|# 十进制
print("{:d}".format(42))        # 输出:42# 二进制
print("{:b}".format(42))        # 输出:101010# 八进制
print("{:o}".format(42))        # 输出:52# 十六进制(小写)
print("{:x}".format(255))       # 输出:ff# 十六进制(大写)
print("{:X}".format(255))       # 输出:FF# 带前缀的十六进制
print("{:#x}".format(255))      # 输出:0xff
print("{:#X}".format(255))      # 输出:0XFF# 显示正负号
print("{:+d}".format(42))       # 输出:+42
print("{:+d}".format(-42))      # 输出:-42# 只显示负号(默认)
print("{:d}".format(42))        # 输出:42
print("{:d}".format(-42))       # 输出:-42# 正数前加空格
print("{: d}".format(42))       # 输出: 42
print("{: d}".format(-42))      # 输出:-42# 千位分隔符
print("{:,}".format(123456789)) # 输出:123,456,789
print("{:_}".format(123456789)) # 输出:123_456_789# 复杂的数字格式化
num = 1234.5678
print("|{:>15,.2f}|".format(num))   # 输出:|       1,234.57|
print("|{:0>15,.2f}|".format(num))  # 输出:|00000001,234.57|

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mybatis Log Plugin打印日志,会导致CPU升高卡死

原因 大量日志输出:MyBatis Log Plugin 会打印大量的 SQL 日志,包括 SQL 语句及其参数。如果项目中 SQL 查询频繁且复杂,日志量会非常大,导致 CPU 使用率升高,甚至卡死。 日志级别设置不当:如果将日志级别设置为 DEBUG 或 TRACE,MyBatis 会输出非常详细的日志信息,这会…

鸿蒙:深色模式适配和浅色模式的切换

前言&#xff1a; 有些时候我们需要对应用进行深色模式的适配处理&#xff0c;并且在不需要的时候切换到浅色状态&#xff0c;下面和大家一起照着官方文档来学习。 下面是官方文档的链接&#xff1a; https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-dark-…

Coze源码分析-资源库-删除插件-后端源码-数据访问和基础设施层

5. 数据访问层 5.1 仓储接口定义 插件仓储接口 文件位置&#xff1a;backend/domain/plugin/repository/plugin.go type PluginRepository interface {// DeleteDraftPlugin 删除插件草稿DeleteDraftPlugin(ctx context.Context, pluginID int64) error// DeleteAPPAllPlugins …

案例一: 对基础选择器的使用【网页盒子】

【1】样例&#xff1a;首先&#xff0c;观察到&#xff0c;几个元素竖着排列的&#xff0c;所以使用块级元素&#xff0c;而不是行内元素。【2】代码演示<head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width,…

爬虫项目优化:如何用 Redis 实现 “断点续爬”?避免重复采集电商数据

在电商数据采集场景中&#xff0c;爬虫常因网络波动、服务器重启、IP 封禁等问题中断。若缺乏断点续爬机制&#xff0c;重启后需从头开始&#xff0c;不仅浪费带宽与时间&#xff0c;还可能因重复采集导致数据冗余。Redis 凭借其高性能、原子操作、多样数据结构的特性&#xff…

决策树概念与原理

决策树简介决策树是一种树形结构树中每个内部节点表示一个特征上的判断&#xff0c;每个分支代表一个判断结果的输出&#xff0c;每个叶子节点代表一种分类结果(仅举例无其他意义或隐喻)就像一个女孩去相亲&#xff0c;那么首先询问是否大于30&#xff0c;大于则不见&#xff0…

SQL面试题及详细答案150道(116-135) --- 高级查询与函数篇

《前后端面试题》专栏集合了前后端各个知识模块的面试题,包括html,javascript,css,vue,react,java,Openlayers,leaflet,cesium,mapboxGL,threejs,nodejs,mangoDB,MySQL,Linux… 。 前后端面试题-专栏总目录 文章目录 一、本文面试题目录 116. 如何使用CASE语句实…

VeRL:强化学习与大模型训练的高效融合框架

本文由「大千AI助手」原创发布&#xff0c;专注用真话讲AI&#xff0c;回归技术本质。拒绝神话或妖魔化。搜索「大千AI助手」关注我&#xff0c;一起撕掉过度包装&#xff0c;学习真实的AI技术&#xff01; 1 概述&#xff1a;VeRL的起源与核心价值 VeRL&#xff08;Versatile…

2. 计算机系统基础知识

1 计算机系统概述 计算机系统 (Computer System) 是指用于数据管理的计算机硬件、软件及网络组成的系统。 计算机系统可划分为硬件(子系统)和软件(子系统)两部分。硬件由机械、电子元器件、磁介质和光介质等物理实体构成&#xff0c;例如处理器(含运算单元和控制单元)、存储器、…

国产EtherCAT从站芯片FCE1353与N32G435 MCU功能板测试流程

上期推荐&#xff0c;我们在前期介绍了FCE1353与国民N32G435 MCU开发板的基本情况&#xff0c;本期主要介绍此开发板的测试流程&#xff0c;以便用户拿到此板做功能验证、兼容性测试、可靠性测试时更加便捷地提高开发验证效率。01概述FCE1353_N32G435RBL7_GPIO_V1 开发板主要通…

向日葵亮点16功能解析:被控端“快速解锁”

向日葵16重磅上线&#xff0c;本次更新新增了诸多实用功能&#xff0c;提升远控效率&#xff0c;实现应用融合突破设备边界&#xff0c;同时全面提升远控性能&#xff0c;操作更顺滑、画质更清晰&#xff01;无论远程办公、设计、IT运维、开发还是游戏娱乐&#xff0c;向日葵16…

深度解析:IService 与 ServiceImpl 的区别

在使用 MyBatis-Plus 开发业务逻辑时&#xff0c;IService 和 ServiceImpl 是经常遇到的两个核心类。很多初学者会疑惑&#xff1a; 为什么要定义 IService&#xff1f;ServiceImpl 又解决了什么问题&#xff1f;它们之间到底有什么区别与联系&#xff1f; 本文将结合源码与应用…

YOLO12 改进、魔改|通道自注意力卷积块CSA-ConvBlock,通过动态建模特征图通道间的依赖关系,优化通道权重分配,在强化有效特征、抑制冗余信息

在分割的研究中&#xff0c;传统卷积神经网络&#xff08;CNN&#xff09;存在两大关键问题&#xff1a;一是池化操作虽能降低计算复杂度&#xff0c;却会导致特征图中有效空间信息丢失&#xff0c;尤其太阳暗条这类不规则、精细结构的特征易被削弱&#xff1b;二是传统 CNN 对…

JuiceFS分布式文件系统

对象存储虽然具备极高的扩展性和成本优势&#xff0c;却缺乏对POSIX语义的支持&#xff0c;导致许多应用无法直接使用。正是在这样的背景下&#xff0c;JuiceFS 应运而生——它巧妙地融合了对象存储的弹性与传统文件系统的易用性&#xff0c;为现代应用提供了一种全新的存储解决…

nginx配置前端请求转发到指定的后端ip

nginx conf配置 配置把“前端静态文件”和“后端接口”统一收在 同一个 server{} 块 里&#xff0c;通过 两条 location 做分流&#xff0c;其中 /api 这条 location 用到了一点“小技巧”把路径裁掉后再转发。下面按执行顺序逐句拆解&#xff0c;告诉你“请求是怎么被转发到 1…

HTML 各种标签的使用说明书

HTML 各种标签的使用说明书 1. HTML 简介 HTML&#xff08;HyperText Markup Language&#xff0c;超文本标记语言&#xff09;是用于创建网页的标准标记语言。它使用一系列标签来描述网页的结构和内容&#xff0c;这些标签被浏览器解释并渲染成用户看到的网页。HTML是构建We…

从关键词到语义理解:小陌引擎如何重构AI搜索优化逻辑?

引言&#xff1a;AI搜索时代的范式转变在传统互联网时代&#xff0c;SEO&#xff08;搜索引擎优化&#xff09;是企业数字营销的核心策略&#xff0c;通过关键词密度、外链建设等技术手段提升网页在搜索引擎结果页&#xff08;SERP&#xff09;中的排名。然而&#xff0c;随着生…

ADE explorer遇到XVFB服务器的问题

遇到这个报错&#xff0c;是因为服务器没有安装xvfb的原因。yum install Xvfb即可解决问题。

期权的套利怎么理解?

期权套利是利用期权价格之间的不合理偏差&#xff0c;通过构建对冲组合获取无风险利润的策略。其核心逻辑基于“无套利定价原则”——若存在价格偏差&#xff0c;市场力量会迅速修正&#xff0c;套利者通过反向操作锁定利润。期权的套利怎么理解&#xff1f;一、主要套利类型与…

RabbitMQ 重试机制 和 TTL

目录 1. 重试机制 1.1 简介 1.2 配置文件 1.3 消费者确认机制为 auto 时 1.4 消费者确认机制为 manual 时 2. TTL 2.1 设置消息的过期时间 2.2 设置队列的过期时间 2.3 给过期队列中消息设置过期时间 1. 重试机制 1.1 简介 在消息传递过程中, 可能会遇到各种问题, …