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

server/2025/2/26 14:31:02/

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

/* C语言代码 */int n, r;n = 9;r = 1;while (n > 0) {r *= n;n--;}

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

python">n = 9r = 1while n > 0:r =  r * nn = n - 1print(r)

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

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

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

python"># 将5赋给xx = 5x = 3          # 现在x成了3x = "# This is not a comment"

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

python">x = 5

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

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

python">a = [1, 2, 3]b = ac = bb[1] = 5print(a, b, c)

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

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

python">x = "Hello"print(x)x = 5print(x)

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

用del语句删除变量

python">x = 5print(x)del x

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

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


http://www.ppmy.cn/server/170768.html

相关文章

2025蓝桥杯JAVA编程题练习Day5

1.最少步数【省模拟赛】 问题描述 小蓝要上一个楼梯,楼梯共有 n 级台阶(即小蓝总共要走 nn级)。小蓝每一步可以走 1 级、2 级或 3 级台阶。 请问小蓝至少要多少步才能上到楼梯顶端? 输入格式 输入一行包含一个整数 n。 输出…

Android ViewStub延迟初始化加载布局View,Kotlin

Android ViewStub延迟初始化加载布局View&#xff0c;Kotlin activity_my.xml: <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_…

【Python项目】基于Python的Web漏洞挖掘系统

【Python项目】基于Python的Web漏洞挖掘系统 技术简介&#xff1a; 采用Python技术、MySQL数据库、Django框架、Scrapy爬虫等技术实现。 系统简介&#xff1a; Web漏洞挖掘系统是一个基于B/S架构的漏洞扫描平台&#xff0c;旨在通过自动化的方式对网站进行漏洞检测。系统主要功…

基于python+django的家教预约网站-家教信息管理系统源代码+运行步骤

该系统是基于pythondjango开发的家教预约网站。是给师妹做的课程作业。大家在学习过程中&#xff0c;遇到问题可以在github给作者留言。加油 效果演示 前台地址&#xff1a; http://jiajiao.gitapp.cn 后台地址&#xff1a; http://jiajiao.gitapp.cn/admin 后台管理帐号&am…

跟着李沐老师学习深度学习(十六)

继续学习深度学习&#xff08;十六&#xff09; 继续理解transformer 对于transformer的理解感觉还是云里雾里的&#xff0c;今天又找了一些视频进行一个梳理。 一个浅解 在B站学习发现评论区真的很不错&#xff0c;在沐神讲transformer论文的评论下&#xff0c;有一个评论…

Kronecker分解(K-FAC):让自然梯度在深度学习中飞起来

Kronecker分解&#xff08;K-FAC&#xff09;&#xff1a;让自然梯度在深度学习中飞起来 在深度学习的优化中&#xff0c;自然梯度下降&#xff08;Natural Gradient Descent&#xff09;是一个强大的工具&#xff0c;它利用Fisher信息矩阵&#xff08;FIM&#xff09;调整梯度…

《2025国内免费DeepSeek-R1自部署平台实测指南:三大运营商/腾讯/华为哪家强?附避坑清单》

更新日期&#xff1a;2025年2月24日 | 实测时效性声明&#xff1a;部分服务可能因政策调整限流或下线&#xff0c;建议结合最新信息参考。 一、前言&#xff1a;为什么关注DeepSeek-R1自部署&#xff1f; DeepSeek-R1-671B作为国内首个千亿级开源模型&#xff0c;其“满血版”…

ResNet 改进:添加LSKBlock动态调整其大空间感受场

目录 1. LSKBlock模块 2. 改进位置 3. 完整代码 Tips:融入模块后的网络经过测试,可以直接使用,设置好输入和输出的图片维度即可 1. LSKBlock模块 LSKBlock模块是一种用于深度学习模型的模块,尤其在计算机视觉任务中表现出色。它结合了局部特征、语义特征和全局特征,以…