c 和 python语法 对比

2023-05-16

直接干货:先稍微了解两种语言的基本不同

pythonc
执行方式无需手动编译,执行时按行读取,自动编译成字节码,所以python可轻易被获取源码需要手动进行编译生成机器可直接执行的机器码
内存管理有自己的垃圾回收机制(GC),开发者无需关心需要自己进行内存管理(如:free操作)
速度为了避免线程间出现竞争,需要设置GIL锁,导致多线程执行时效率下降由于更加底层,可以通过特殊逻辑设计避免资源竞争
应用多用于人工智能,数学计算,自动化办公(测试,运维,爬虫、数据分析等)等快速开发场景常用于嵌入式开发,或银行系统开发,等操控硬件或者有更多性能要求的特殊场景。
复杂度编写简单,易上手,在了解基本语法后,搭配常用库,即可完成日常功能开发需要声明变量,了解指针,语法规则繁琐

语法的对比:

1、注释的区别

python使用  # 号进行单行注释 或者  ‘’‘ ~’‘’ 进行多行注释(三个单引号),~为注释内容。当然也可以使用 “”“  ~”“”(三个双引号)

c语言注释采用 // 进行单行注释,/*  ~  */进行多行注释,~为注释内容

2、引号

python中单引号和双引号区别不大,在定义字符串时可以使用 name = “干饭小子”,也可以使用name = '干饭小子',但是注意同一类型的引号不要连续使用,容易引起匹配错误,最好交叉使用。

c中单引号和双引号的区别字符和字符串中体现明显。定义字符必须使用单引号  如 定义字符    char ch='n';   定义字符串常量  char  word[81] = "I am hero"

3、变量声明方式

#python的无效进行特殊声明 直接     变量名 = 值即可。     如:name='干饭小子'

//c语言需要对变量进行声明 使用  数据类型  变量名 = 值:如 : int age = 25;

4、语句体描述(以三大控制语句为例)

python中语句体使用缩进表示优先级以及代码结构

c语言中使用 ;和 { }显示代码结构。具体使用间如下代码

pythonc
if else

if name == '铁柱':

        print("情敌1")

elif name == '王琦':

        print("情敌2”)

else:
        print("情敌3")

if (name == '铁柱'){

        printf("情敌1");

}

else if(name == '王琦'){

        print("情敌2”);

}

else{
        print("情敌3");

}

for

for num in range(5):

        print ('当前数字: %d'% num)

        #目前更流行的做法是

        print ('当前数字: {}'.format(num))

for(int num=0;num<5;num++){

        printf("当前数字: %d",num);

}

while

count = 0

while count < 5:

        print(count, " is less than 5")

        count = count + 1

else:#可选

        print(count, " is not less than 5")

int count = 0;

while(count < 5){

        printf("%d ,is less than 5",count);

        count++;

}

print(f)

print("字符串1","字符串2","字符串3")

python3和python2的print方式不同且不互相兼容

printf("字符串1字符串2字符串3");

       可见python在语法上更加简便,但是对缩进要求极为严格,有时候空格和Tab混用甚至会发生错误且极难被排查出来,小编深受其害。c有明确的花括号限定语句块,但是编写时极容易出现结束花括号少了或者位置错了的情况,且排查很容易看着看着就懵逼了。C语言的规则比python多很多。

5、main函数对比

python可以没有main方法,但是c必须要有main方法。

pythonc
main

def main():
        ……………………
if __name__ == '__main__':
    main()  

void main(void){

        ……………………

}

6、获取用户输入函数对比

pythonc
输入age= input("请输入你喜欢的人的年龄")

printf("请输入你喜欢的人的年龄:");

scanf("%d",&age);

7、return对比

python 在函数中可以return 多个值且任意类型 可自由组合  如:return  num1,str2,num3

c中函数只能return一个值,如 :return  num1;   如果确实需要实现类似返回多个值的场景需要使用指针(更头大),且返回的值必须和函数头定义的一致。如下必须返回一个int类型的值。

int sum(void){

        ……………………

return 1;

}

8、函数定义对比

pythonc
函数

def getFileList(path):

        ……

        return list

int sum(int a,int b){

        ……

        return 1;

}

9、函数调用对比

python在当前文件任意位置定义函数都可直接调用,以上面函数为例   file_list=getFileList(path) 即可,当然它也不一定必须赋给一个变量。如果使用的函数不在当前文件可以通过import导入。(这里不考虑类方法)

c在当前文件任意位置定义函数都不可直接调用,当然,除非定义的函数在main方法之前,但一般不建议这么整,太low了不符合程序员的自我修养。一般函数定义在main方法之后,所以需要声明函数原型。以上面函数为例  在main方法之前写上 int sum(int a,int b); (要分号结尾哦)。如果使用到的函数不在该文件中,需要使用#include引入头文件

10、文件IO对比

python提供了丰富的三方库可以很方便的操作 excel、txt、图片等文件,如:pandas、 openpyxl、xlwt、xrld、OpenCV、SimpleCV、Pillow,request、json……所以学python其实就是学各种库的使用(泪目)。当然c也有操作文件的函数如 :fopen,但远不及python易用。所以python更多应用在自动化办公领域。但这不代表c不好,只是应用领域不同,毕竟c是和底层做交互。

11、数组和列表对比

其实列表和数组八竿子打不着关系,但是初学者很容易把这两个概念搞混。列表是python的概念,在python中定义列表,列表中内容可以是任意的,甚至混搭,不需要对长度做限定,如下

list = [1,  'string', [1,2],  {'name':'干饭小子' , age:18}]

但是在c中就不行了(注意:c中叫数组)。在c中数组长度已事先定义,如果往数组中存入的内容超过长度会丢失数据或修改其他内存空间的数据。且只能存预先定义的类型,如下:只能存 整数。

int list[6] ={1,2,3,4,5,6}

当然c和python的不同远不止这些,这些只是最常见的不同,初学者或者准备在两种语言之间切换的程序袁可以参考,以便更快入门。也避免c和python用法记混。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c 和 python语法 对比 的相关文章

随机推荐

  • 音视频开发基础概念

    对一个初学者来说 xff0c 刚刚接触音视频的学习难免会遇到各种个样的术语 xff0c 一开始我也是云里雾里的 xff0c 到现在一点一点接触积累 xff0c 形成一个基本的认识 本文并没有什么高深和详细的知识点 xff0c 旨在记录一些音
  • 音频数据采集-AudioRecord

    一 AudioRecord 和 MediaRecorder Android 提供了两个 API 用于录音 xff0c AudioRecord 和 MediaRecorder AudioRecord 能够获取原始的 PCM 数据 xff0c
  • vector用法

    介绍 1 vector是表示可变大小数组的序列容器 2 就像数组一样 xff0c vector也采用的连续存储空间来存储元素 也就是意味着可以采用下标对vector的元素进行访问 xff0c 和数组一样高效 但是又不像数组 xff0c 它的
  • AAC 音频编码保存和解码播放

    一 编码器 MediaCodec MediaCodec 是 Android 提供的用于对音频进行编解码的类 xff0c 属于硬编解 MediaCodec 在编解码的过程中使用了一组缓冲区来处理数据 如下图所示 基本使用流程如下 xff1a
  • Camera 视频采集,H264 编码保存

    一 前言 上篇文章 AAC 音频编码保存和解码播放 讲述了通过 AudioRecord 录制音频数据 xff0c 并通过 AAC 编码保存为 AAC 文件 这里的 aac 既是一种编码方式 xff0c 也是一种容器 xff0c 因此可以直接
  • 基于Camera、AudioRecord 、MediaCodec 和 MediaMuxer 录制 MP4

    一 前言 在 AAC 音频编码保存和解码播放和Camera 视频采集 xff0c H264 编码保存 两篇文章中介绍了如何通过 AudioRecord 和 MediaCodec 录制 AAC 音频以及如何通过 Camera 和 MediaC
  • 基于 SurfaceView、AudioTrack、MediaCodec 和 MediaExtractor 解码 MP4 播放

    一 前言 上篇文章介绍了 基于Camera AudioRecord MediaCodec 和 MediaMuxer 录制 MP4 录制的过程是这样的 xff0c 那么相应的播放过程就是上述过程的逆过程 xff0c 本篇文章将介绍如何通过 M
  • 研发、运营必备实用工具网站

    目录 1 搜索引擎 2 PPT 3 图片操作 4 文件共享 5 招聘求职 6 程序员面试题库 7 办公 开发软件 8 高清图片 视频素材网站 9 项目开源 10 算法 11 在线工具宝典大全 12 音乐 13 神辅助工具 14 语音处理 1
  • 让人“眼前一亮、不明觉厉”的互联网技术PPT

    目录 1 互联网 1 1 智能 43 1 2 云计算 1 3 5G 2 大数据 2 1 用户画像 2 2 边缘计算 2 3 工业大数据 2 4 医疗大数据 2 5 数据平台 2 6 银行大数据 3 物联网 3 1 物联网产业 3 2 工业物
  • 基于FPGA的电梯控制系统设计

    在本项目中一共分为了五个模块 xff1a 时钟分频 按键消抖 状态控制 蜂鸣 译码显示及流水指示灯 其模块的作用分别是 xff1a 时钟分频 xff1a 将高频率系统时钟通过分频得到不同合适频率的时钟频率作为不同模块的输入时钟 clk xf
  • 【流媒体视频监控平台开发wvp-GB28181-pro】

    wvp GB28181 pro学习心得 wvp与GB28181介绍1 流媒体服务器视频协议介绍2 市面上的流媒体服务器3 wvp GB28181 pro框架需要学习的框架和工具4 工具准备项目整合和配置 wvp与GB28181介绍 学习原因
  • gazebo创建机器人模型06

    gazebo创建机器人模型05 kinect 信息仿真以及显示 kinect摄像头仿真基本流程 xff1a 1 已经创建完毕的机器人模型 xff0c 编写一个单独的 xacro 文件 xff0c 为机器人模型添加 kinect 摄像头配置
  • 【C++】C++中防止头文件重复包含的两种方法

    文章目录 01 错误分析 xff1a 类型重定义 xff08 头文件重复包含 xff09 02 解决方案2 1 微软宏2 2 条件编译2 3 两种方法比较 03 变量被重复包含3 1 解决办法 04 版权声明 amp 总结 01 错误分析
  • C/C++程序员应聘常见面试题深入剖析

    1 引言 本文的写作目的并不在于提供C C 43 43 程序员求职面试指导 xff0c 而旨在从技术上分析面试题的内涵 文中的大多数面试题来自各大论坛 xff0c 部分试题解答也参考了网友的意见 许多面试题看似简单 xff0c 却需要深厚的
  • Nvidia jetson tx2 详细安装、配置教程以及固定ip

    jetson tx2 是什么 一 硬件组装 xff1a 1 将 Wi Fi 天线插上 xff0c 组装好充电器即可 2 接口介绍 xff1a USB接口只有一个 xff08 建议使用USB拓展 xff0c 方便前期配置的时候连接键盘鼠标 x
  • C语言 用指针实现字符串函数 strlen strcpy strcat strcmp

    目录 一 指针模拟实现strlen 函数 1 strlen 函数description 2 用指针实现且将strlen封装 3 运行结果 二 指针模拟实现strcpy 函数 1 strcpy 函数description 2 用指针实现且将s
  • 常用器件介绍

    常用器件介绍 这篇文章主要介绍一些在做电子设计时最最常见的器件 xff0c 针对的是完全的小白们 面包板 首先是搭建设计电路用的面包板 面包板正面图 背面拆解图 面包板是专为电子电路的无焊接实验设计制造的 xff0c 上面有很多小插孔 各种
  • VScode代码格式化解决方案c/c++

    前贴链接 xff1a https tieba baidu com p 7891213649 之前说过研究出来了会和大家分享一下自己是如何解决的 xff0c 于是就有了此贴 首先要说明 xff0c 本文主要是针对c c 43 43 xff0c
  • C语言输入和输出

    文章目录 一 数据输入二 数据输出三 断章取义四 printf输出1 输出描述性的文字2 输出整数3 输出字符4 输出浮点数5 输出字符串6 输出多个内容7 示例 xff08 book12 c xff09 五 scanf输入1 输入整数2
  • c 和 python语法 对比

    直接干货 xff1a 先稍微了解两种语言的基本不同 pythonc执行方式无需手动编译 xff0c 执行时按行读取 xff0c 自动编译成字节码 所以python可轻易被获取源码需要手动进行编译生成机器可直接执行的机器码内存管理有自己的垃圾