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

server/2025/2/26 21:27:46/

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

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

python">if x < 5:passelse:x = 5

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

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

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

python">def do_a_stuff():#process adef do_b_stuff():#process bdef do_c_stuff():#processfunc_dict ={'a':do_a_stuff,'b':do_b_stuff,'c':do_c_stuff }X = 'a'func dict[x]()#运行字典中的函数

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

python"> def fun():global aa = 1b = 2

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

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

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

python">g_var =0#inner_test 函数中的g_var 绑定为同名的顶级变量nl_var =0print("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_varg_var =1nl_var =4print("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.ppmy.cn/server/170847.html

相关文章

C#基础总结:常用的数据结构

Array&#xff1a; 需要处理的元素数量确定并且需要使用下标时可以考虑&#xff0c;不过建议使用List 数组的内容都是相同类型 数组可以直接通过下标访问 创建时需要固定数组大小 int size 5; int [] test new int [size]; string [] test2 new string [3]; //赋值 t…

2024大模型技术全景解构:从开源生态到商业落地的深度博弈

大模型技术调研报告 一、开源大模型概览 模型名称开发公司/机构技术架构参数规模开源协议特点与应用场景LLaMA 3Meta (Facebook)Transformer (Decoder-only)8B、70B、400B需申请商用许可支持多语言&#xff0c;长上下文&#xff08;128K token&#xff09;&#xff0c;优化推…

吃一堑长一智

工作中经历&#xff0c;有感触记录下 故事一 以前在一家公司时&#xff0c;自己是一名开发人员&#xff0c;遇到问题请教领导解决方案&#xff0c;当时领导给了建议&#xff0c;后来上线后出问题了&#xff0c;背了锅。心里想的是领导说这样做的呀&#xff0c;为什么出问题还…

23贪心算法

分发饼干 class Solution { public:int findContentChildren(vector<int>& g, vector<int>& s) {int i0,j0;int count0;sort(s.begin(),s.end());sort(g.begin(),g.end());while(i<g.size()&&j<s.size()){if(g[i]<s[j]){i;j;count;}else…

android中的CheckBox改变背景图片显示大小

在androidStudio的xml文件设置布局时&#xff0c;对于checkBox选中后&#xff0c;展示大小不同的背景图片 1.首先需要一个选择器存放背景图片&#xff0c;设置选中和未选中状态 <?xml version"1.0" encoding"utf-8"?> <selector xmlns:androi…

深入理解 Redis 设计与集群管理

redis 作为一款高性能的键值存储系统&#xff0c;广泛应用于缓存、消息队列和实时分析等场景。随着业务需求的增长&#xff0c;如何有效地管理和扩展 Redis 实例成为了开发者关注的重点。本文将围绕 Redis 的核心设计思想、常见问题及其解决方案展开讨论&#xff0c;并深入介绍…

JMeter性能问题

性能测试中TPS上不去的几种原因 性能测试中TPS上不去的几种原因_tps一直上不去-CSDN博客 网络带宽 连接池 垃圾回收机制 压测脚本 通信连接机制 数据库配置 硬件资源 压测机 业务逻辑 系统架构 CPU过高什么原因 性能问题分析-CPU偏高 - 西瓜汁拌面 - 博客园 US C…

让Word插上AI的翅膀:如何把DeepSeek装进Word

在日常办公中&#xff0c;微软的Word无疑是我们最常用的文字处理工具。无论是撰写报告、编辑文档&#xff0c;还是整理笔记&#xff0c;Word都能胜任。然而&#xff0c;随着AI技术的飞速发展&#xff0c;尤其是DeepSeek的出现&#xff0c;我们的文字编辑方式正在发生革命性的变…