python与C系列语言的差异总结(4)

news/2025/2/26 20:29:23

如果具有传统编译型语言的经验,大家可能会对是否使用字典而犹豫不决,担心字典的效率比列表或数组低。事实上Python字典的执行速度已经相当快了。Python语言的许多内部特性都依赖于字典,为提高字典的效率已经投入了大量的心血。Python的所有数据结构都经过了高度优化,因此不应该花太多时间去考虑哪个更快,哪个效率更高。

pass语句也可在Python中需要语句的其他任何地方使用。pass语句用作语句的占位符,但是它不执行任何操作:

python">if x < 5:

    pass

else:

    x = 5

Python没有提供case(或switch)语句。阅读工作中的代码,可以发现Switch/case语句在实际开发中使用频率确实很低。

与其他Python对象一样,函数也可以被赋值。函数可以被放入列表、元组或字典中。这个特性和C系列语言的函数指针类似。不过用起来更加简约。真正将函数做到了对象一样。

在大多数其他语言采用case或switch语句的场合,Python可以用串联的if…elif…elif…else结构来很好地应对。如果遇到极少数棘手的场合,通常可用函数字典来解决,如下所示:

python">def do_a_stuff():

    #process a

def do_b_stuff():

    #process b

def do_c_stuff():

    #process

func_dict ={'a':do_a_stuff,

'b':do_b_stuff,

'c':do_c_stuff }

X = 'a'

func dict[x]()

#运行字典中的函数

在使用变量之前,用global语句对其进行声明,可以显式地使其成为全局(global)变量。函数可以访问和修改全局变量。全局变量存在于函数之外,所有将其声明为全局变量的其他函数,以及函数之外的代码,也可以对其进行访问和修改。以下示例演示了局部变量和全局变量的差异:

python"> def fun():

      global a

      a = 1

      b = 2

nonlocal语句与global语句类似,它会让标识符引用最近的闭合作用域(enclosing scope)中已绑定的变量。

字符串的format函数可以实现类似C系列语言的格式化功能。

python的函数内部还可以定义函数。

python">g_var =0

#inner_test 函数中的g_var 绑定为同名的顶级变量

nl_var =0

print("top level-> g_var: {0} nl_var: {1}".format(g_var, nl_var))

def test():

    nl_var = 2

    #inner_test函数中的nl_var 绑定为 test 函数中的同名变量

    print("in test-> g_var: {0} nl_var:{1}".format(g_var, nl_var))

    def inner_test():

        #inner_test g_var 绑定为同名的顶级变量

        global g_var

        #inner_test函数中的nl_var 绑定为test 函数中的同名变量

        nonlocal nl_var

        g_var =1

        nl_var =4

        print("inner_test-> g_var: {0} nl_var:{1}".format(g_var, nl_var))

    inner_test()

    print("in test->g_var: {0} nl_var:{1}".format(g_var, nl_var))

test()

print("top level-> g_var: {0} nl_var:{1}".format(g_var, nl_var))

http://www.niftyadmin.cn/n/5869141.html

相关文章

(网络安全)如何建立安全运营中心

&#x1f345; 点击文末小卡片 &#xff0c;免费获取网络安全全套资料&#xff0c;资料在手&#xff0c;涨薪更快 虽然信息安全管理问题主要是个从上而下的问题&#xff0c;不能指望通过某一种工具来解决&#xff0c;但良好的安全技术基础架构能有效的推动和保障信息安全管理。…

联想 SR590 服务器 530-8i RAID 控制器更换损坏的硬盘

坏了的硬盘会自动亮黄灯。用一个空的新盘来替换&#xff0c;新盘最好不要有东西。但是有东西可能也没啥&#xff0c;因为我看 RAID 控制器里有格式化的选项 1. 从 IPMI 把服务器关机&#xff0c;电源键进入绿色闪烁状态 2. 断电&#xff0c;推开塑料滑块拉出支架&#xff0c;…

【Git】六、企业级开发模型

文章目录 Ⅰ. 前言Ⅱ. 系统开发环境Ⅲ. Git 分支设计规范master分支release分支develop分支feature分支hotfix分支 Ⅰ. 前言 ​ 我们知道&#xff0c;一个软件从零开始到最终交付&#xff0c;大概包括以下几个阶段&#xff1a;规划、编码、构建、测试、发布、部署和维护。 ​…

第十章:服务器消费者管理模块

目录 第一节&#xff1a;代码实现 1-1.Consumer类 1-2.QueueConsumer类 1-3.QueueConsumerManger类 第二节&#xff1a;单元测试 下期预告&#xff1a; 服务器的消费者管理模块在mqserver目录下实现。 第一节&#xff1a;代码实现 创建一个名为mq_consumer.hpp的文件&#…

七、Spring Boot:初识与项目搭建

深入解析 Spring Boot&#xff1a;初识与项目搭建 Spring Boot 是基于 Spring Framework 的开源 Java 基础框架&#xff0c;旨在简化 Spring 应用的开发过程。它通过“约定优于配置”的理念&#xff0c;极大地减少了开发中的配置工作&#xff0c;同时提供了“开箱即用”的功能…

【视频2 - 4】初识操作系统,Linux,虚拟机

&#x1f4dd;前言说明&#xff1a; ●本专栏主要记录本人的基础算法学习以及LeetCode刷题记录&#xff0c;主要跟随B站博主灵茶山的视频进行学习&#xff0c;专栏中的每一篇文章对应B站博主灵茶山的一个视频 ●题目主要为B站视频内涉及的题目以及B站视频中提到的“课后作业”。…

【第六节】C++设计模式(结构型模式)-Bridge(桥接)模式

目录 一、问题提出 二、桥接模式的结构与优势 三、桥接模式的实现 四、桥接模式的深入讨论 五、总结 一、问题提出 面向对象设计的核心原则 面向对象设计的核心可以总结为两点&#xff1a;松耦合&#xff08;Coupling&#xff09;和高内聚&#xff08;Cohesion&am…

SSL 证书是 SSL 协议实现安全通信的必要组成部分

SSL证书和SSL/TLS协议有着密切的关系&#xff0c;但它们本质上是不同的概念。下面是两者的区别和它们之间的关系的表格&#xff1a; 属性SSL/TLS 协议SSL证书英文全称SSL&#xff08;Secure Sockets Layer&#xff09;&#xff0c;TLS&#xff08;Transport Layer Security&am…