当前位置: 首页 > news >正文

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

Python有很多表达布尔值的方式,布尔常量False、0、Python零值None、空值(如空的列表[]和空字符串""),都被视为False。布尔常量True和其他一切值都被视为True。但不相等。这个自由度相比C类语言更加高。

if (not None):print("if not None")print(None == False)

通过比较操作符(is、is not、in、not in)和逻辑操作符(and、not、or)。可读性提高很多。

if (True or False):print("True or False")

Python用缩进作为代码块的分界线。代码块不必用什么显式的方括号或大括号之类的分隔符来标识。每个代码块由一条或多条换行符分隔的语句组成,同一个代码块中的语句必须处于同一缩进级别。

函数通过def语句来定义,并用return语句来返回值,返回值可以是任意类型。如果没有遇到return语句,则函数将返回Python的None值。函数的参数可以由位置或名称(关键字)来给出。还可以为函数定义一个特殊的元组参数,将调用时剩余的位置参数都放入元组中。同样,也可以定义一个特殊的字典参数,将调用函数时剩余的关键字参数全都放入字典中。C系列语言声明和定义函数时需要指定返回值类型,而python是不需要的。

def funct1(x, y, z):value = x + 2 * y + z ** 2if value > 0:return x + 2 * y + z ** 2else:return 0u, v = 3, 4print(funct1(u, v, 2))print(funct1(u, z = v, y = 2))def funct2(x, y = 1, z = 1):return x + 2 * y + z ** 2print(funct2(3, z = 4))def funct3(x, y = 1, z = 1, *tup):print((x, y, z) + tup)funct3(2)funct3(1, 2, 3, 4, 5, 6, 7, 8, 9)def funct4(x, y = 1, z = 1, **kwargs):print(x, y, z, kwargs)funct4(1, 2, m=5, n=9, z=3)

有一种更简单的try-except-finally封装模式,就是利用with关键字和上下文管理器(context manager)。Python会为文件访问之类的操作定义上下文管理器,开发人员也可以定义自己的上下文管理器。使用上下文管理器有一个好处,可以(通常)为其定义默认的善后清理操作,无论是否发生异常,一定能得以执行。

filename = "myfile.txt"with open(filename, "r") as f:for line in f:print(line)

类的实例初始化方法(构造函数)叫作__init__。c++和java的构造函数都是和类同名。

所有方法的第一个参数习惯上叫作self。当方法被调用(invoke)时,self会被置为调用该方法的实例。c++和java的this都是隐含的,不需要程序员自己指定。

子类必须显式调用其基类的初始化函数(initializer)

def __init__(self):super.__init__(self)
http://www.lryc.cn/news/542211.html

相关文章:

  • Linux之文件系统
  • LeetCode刷题 -- 23. 合并 K 个升序链表
  • DeepSeek在MATLAB上的部署与应用
  • mapbox基础,使用geojson加载fill-extrusion三维填充图层
  • 基于 SpringBoot 的 “电影交流平台小程序” 系统的设计与实现
  • 单片机裸机编程-时机管理
  • Flutter系列教程之(2)——Dart语言快速入门
  • pyecharts介绍
  • 前缀和相关题目记录(未完待续...)
  • Https解决了Http的哪些问题
  • OpenCV给图像添加噪声
  • 湖北中医药大学谱度众合(武汉)生命科技有限公司研究生工作站揭牌
  • 欢乐力扣:快乐数
  • 【聊天室后端服务器开发】功能设计-框架与微服务
  • 国标28181协议在智联视频超融合平台中的接入方法
  • 让网页“浪“起来:打造会呼吸的波浪背景
  • linux-多进程基础(1) 程序、进程、多道程序、并发与并行、进程相关命令,fork
  • 美颜相机1.0
  • Docker内存芭蕾:优雅调整容器内存的极限艺术
  • gitlab初次登录为什么登不上去
  • 单链表相关操作(基于C语言)
  • SPRING10_SPRING的生命周期流程图
  • 从零到一学习c++(基础篇--筑基期十一-类)
  • Java String 类
  • P8665 [蓝桥杯 2018 省 A] 航班时间
  • Vue3项目与pnpm使用教程
  • C++初阶——简单实现list
  • C/C++后端开发面经
  • linux 编辑器
  • 【事件驱动框架OSAL】二.消息的管理机制