当前位置: 首页 > 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 ** 2

    if value > 0:

        return x + 2 * y + z ** 2

    else:

        return 0

u, v = 3, 4

print(funct1(u, v, 2))

print(funct1(u, z = v, y = 2))

def funct2(x, y = 1, z = 1):

    return x + 2 * y + z ** 2

print(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)

相关文章:

  • C++21--红黑树
  • 网络安全实入门| 剖析HTTP慢速攻击(Slowloris)与Nginx防护配置
  • unity学习53:UI的子容器:面板panel
  • VMware17下安装Ubuntu22.04与Docker(附带:1.解决重启后IP重置问题。2.多个虚拟机之间网络通信)
  • 机器学习2-决策树
  • Metal 学习笔记二:3D模型
  • 正则化及其在机器学习中的作用
  • 大模型在术后认知功能障碍预测及临床方案制定中的应用研究
  • Java——内部类
  • 嵌入式Modbus协议面试题及参考答案
  • Deepseek和Grok 3对比:写一段冒泡排序
  • 计算机毕业设计SpringBoot+Vue.js明星周边产品销售网站(源码+文档+PPT+讲解)
  • RTK定位精度 1cm+1ppm 中的ppm是什么意思?
  • 智能硬件-01智能停车场
  • Linux设备驱动开发-中断
  • 特殊回文数的因子
  • 22、《Spring Boot消息队列:RabbitMQ延迟队列与死信队列深度解析》
  • SpringBoot约定大于配置
  • 【AIGC系列】1:自编码器(AutoEncoder, AE)
  • Win10登录Samba服务器报用户名密码错误问题解决
  • 免费微网站开发平台/网站运营一个月多少钱
  • 网站首页一般做多大尺寸/中山排名推广
  • 郑州网站推广公司排名/求职seo推荐
  • 装修设计网站排行榜前十名/保定百度seo公司
  • 手机壳定制网站制作/怎么在百度制作自己的网站
  • 广州建设网站/广告投放平台有哪些