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

news/2025/2/26 17:27:22

与其他大部分编程语言不一样,Python使用空白符(whitespace)和缩进来标识代码块。也就是说,循环体、else条件从句之类的构成,都是由空白符加上冒号(:)来确定的。大部分编程语言都是使用某种大括号来标识代码块的。下面的C语言代码将会计算9的阶乘,结果保存在变量r中:

/* C语言代码 */

int n, r;

n = 9;

r = 1;

while (n > 0) {

    r *= n;

    n--;

}

使用python时,如果你想用{}来表示一个代码块,不好意思,{}已经被用来表示字典了。那就只能另辟蹊径,用:和缩进来实现代码块。下面是python对上述代码的等价实现。

python">n = 9

r = 1

while n > 0:

    r =  r * n

    n = n - 1

print(r)

Python不用大括号标识代码结构,而是用缩进本身来标识。上述最后两行代码就是while循环体,就是因为它们紧随while语句的冒号后面,并且比while语句缩进一级。如果这两行代码没做缩进,就不会构成while循环体。(别忘了冒号)

在大多数情况下,Python文件中符号#之后的任何内容都是注释,将会被编译器忽略。有一种情况明显例外,即字符串中的#只是一个普通字符:

C/java等语言注释都是用//系列实现。

python"># 将5赋给x

x = 5

x = 3          # 现在x成了3

x = "# This is not a comment"

赋值是最常用的Python命令,用法也与其他编程语言很类似。下面用Python代码新建变量x,并赋值为5:

python">x = 5

与很多其他计算机语言不同的是,Python既不需要声明变量类型,也不需要在每行代码后面添加结束符。代码换行即表示结束,变量在首次被赋值时会自动创建。也就是没有了C/java 等语言的声明过程。

Python中的变量性质更加类似于java引用的概念。大家可以通过下面的例子体会。

python">a = [1, 2, 3]

b = a

c = b

b[1] = 5

print(a, b, c)

我们可以将赋值语句看做两步:等号右侧分配内存创建实际的对象,等号左侧创建引用。然后将等号左侧的引用指向等号右侧的对象。

Python变量可以被设为任何对象,也就是说python变量是没有类型的。而在C和许多其他语言中,变量只能存储声明过的类型的值。下面的Python代码是完全合法的:

python">x = "Hello"

print(x)

x = 5

print(x)

如果去掉类型检查的话,java的引用和C的指针也可以做到一样的效果。

用del语句删除变量

python">x = 5

print(x)

del x

整个Python系统中只有1个None的实例,所有对None的引用都指向同一个对象,None只等价于它自身。

python推荐编码风格
在这里插入图片描述


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

相关文章

android 新增native binder service 方式(二)

接上篇文章,实现binder service 的第二种方式,这种在系统里面比较常见 先看下整体目录结构,整体差别不大。 一 android.bp 编译aidl 文件 aidl_interface {name: "libserviceaidl",srcs: ["aidl/com/test/IService.aidl&qu…

Imagination通过最新的D系列GPU IP将效率提升至新高度

Imagination DXTP GPU IP在加速移动设备和其他电力受限设备上的图形和计算工作负载时,能够延长电池续航时间。 英国伦敦 – 2025年2月25日 – 今日,Imagination Technologies(“Imagination”)宣布推出其最新的GPU IP——Imagina…

EIDE搭配cursor编译GD32的项目 需要的一些c_cpp_properties设置 json文件

B站大神的一个视频。有些需要设置的joson文件,这里整理下。 原视频可以看这里。 【VSCodeEIDE开发STM32,支持标准库、HAL库、LL库,可以在VSCode里进行调试,编译以及下载,代码编辑更舒适,环境搭建超简单。…

《操作系统 - 清华大学》8 -4:进程管理:进程控制结构

深度剖析进程控制块:操作系统进程管理的核心关键 在操作系统的复杂体系中,进程控制块(PCB)是实现高效进程管理的关键所在。接下来,将从多个维度深入剖析进程控制块,帮助更好地理解其在操作系统中的重要作用…

软件安全测评报告内容和作用简析,如何获取权威安全测评报告?

软件安全测评报告是对软件系统进行安全性评估后形成的一份详细文档。它通过对软件系统的设计、实现及运行环境等多个方面进行系统性分析,以识别潜在的安全风险和漏洞。该报告不仅包含漏洞的详细信息和修复建议,也是对软件开发者和管理者的重要决策支持工…

LLM全栈框架完整分类清单(预训练+微调+工具链)

一、预训练框架 1. 大规模分布式训练框架 框架名称核心能力GitHub地址Megatron-LM3D并行训练、FlashAttention支持、Transformer架构优化(NVIDIA生态)NVIDIA/Megatron-LMDeepSpeedZeRO优化系列、3D并行、RLHF全流程支持(微软生态&#xff09…

C++ 多态小练习

编写一个如下场景: 有一个英雄Hero类,私有成员,攻击,防御,速度,生命值,以及所有的set get 方法 编写一个 武器 Weapon 类,拥有私有成员攻击力,以及set get 方法 编写一个…

【linux配置】 修改内核网络参数

命令解释 echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore 这个命令的具体含义是: echo 1:将值1写入文件。 /proc/sys/net/ipv4/conf/all/arp_ignore:将值1写入 /proc/sys/net/ipv4/conf/all/arp_ignore 文件,从而修改内核参…