当前位置: 首页 > 编程日记 > 正文

c和python区别_C语言和python的区别

Python可以说是目前最火的语言之一了,人工智能的兴起让Python一夜之间变得家喻户晓,Python号称目前最最简单易学的语言,现在有不少高校开始将Python作为大一新生的入门语言。本萌新也刚开始接触Python,发现Python与其他语言确实有很大的区别。Python是由C语言实现的,因此想把Python与C语言做一个简单的比较。

一、

C语言是编译型语言,经过编译后,生成机器码,然后再运行,执行速度快,不能跨平台,一般用于操作系统,驱动等底层开发。

Python是编译型还是解释型这个界限并不明显,但大致上可以理解为解释型语言,执行速度慢,由于Python虚拟机,Python是可以跨平台的,Python高度集成适合于软件的快速开发。

二、

C语言的数据类型如下图:

987142-20171124195114281-67916383.png

C语言中需要事先定义变量类型,以int类型为例,当定义一个int型变量后,就会在内存中开辟4个字节,再来进行初始化,由于长度是指定的,在运算过程中需要考虑,溢出,精度等问题。

Python中的数据类型:

1.Number:数字

Int

Float

Bool

Complex

2.String:字符串

3.List:列表

4.Tupel:元组

5.Sets:集合

6.Dictionary:字典

ython不需要事先定义变量类型,以a=3为例,在内存中存放一个整数3,然后再用变量a指向3,变量a是没有类型的,我们所说的类型是指变量所指的内存中对象的类型。

从数据类型上就可以看出Python的友好性,基本数据类型变少了,没有烦人的指针,不需要考虑数据溢出和精度的问题,当在程序中需要使用某个变量时,就能够直接使用,而不需要在程序开头定义变量。除此之外,Python还提供了str,list,dict这些强大的数据类型,让程序开发变的更为简单。

三、

Python还提供了一个交互界面,输入python进入交互界面,输入exit()退出交互界面,类似于Linux终端,输入一行命令,执行一行,为学习Python提供了很大的便利。

四、

在运算符和优先级上面,两者并没有大的区别,但在python中没有自加和自减运算符,在逻辑运算符上Python也区别于C语言,Python中是and,or,not ,而C语言中则是&&,||,!

六、

Python中通过缩进来表示语句体,C语言通过{}来表示语句体,并且在Python中每一条语句结尾后没有分号,判断语句if else,这两者没有区别,循环语句while也没有,只是for循环,Python通过for in来表示。

七、

Python有很多内置函数(build in function),不需要写头文件,Python还有很多强大的模块,需要时导入便可。C语言在这一点上远不及Python,大多时候都需要自己手动实现。

八、

C语言中的函数,有着严格的顺序限制,如果要调用函数,该函数需要在本次调用之前就需要被实现,或者在程序开头事先声明,而Python中则没有这个限制,Python中还有高阶函数这一概念,即函数名也可当作函数参数,函数名也是一种变量,指向内存中的某个函数,这种写法可以大大减少代码长度。

python中还提供了可变参数和关键字参数,这样使得函数的功能大大提高,原来需要写多个函数,现在只需要一个函数就可以实现这些功能。

九、

C语言是面向过程的语言,很多时候都需要自己手动实现函数来完成某一功能。Python中引入了类和对象,是面向对象编程的语言,面向对象使得代码的可重用性大大提高,数据的封装性也更好。面向对象与面向过程的具体比较就不多说了,但有两句非常重要的话:类是抽象的,而对象是具体的。

十、

python中既有函数也有方法,常常让人疑惑,我个人觉得也没有必要区分的非常清楚,但是两者还是有较大的区别:函数是自由的,而方法是受限的。在编程的时候需要分清楚调用的是方法还是函数。

总结:Python可以说是非常`简单`的语言,高度集成,代码量少,简单是相对其他语言而言。但编程从来都不是一个简单活,需要我们不断学习,掌握底层实现原理,才是正道。

相关文章:

(1)访问控制 (2)final关键字 (3)对象创建的过程 (4)多态

1.访问控制(笔试题)1.1 常用的访问控制符 public - 公有的 protected - 保护的 啥也不写 - 默认的 private - 私有的 1.2 访问控制符的比较 访问控制符 访问权限 本类 本包中的类 子类 其他包的类---------------------------------------------------------------------------…

MySQL安装ODBC驱动出现126错误

需求:MySQL导入ODBC文件,需要安装ODBC驱动。 问题:本机的MySQL是5.0版本,刚开始下载的是5.3ODBC,然后出现以下错误: 解决方法:ODBC版本应该与MySQL版本一致,重新安装5.0版本的ODBC即…

超级账本的由来

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 1.1.1 超级账本的由来 当你拿起这本书开始阅读的时候,说明你对区块链技术已经有了相关的了解,而且想通过自己的努力或团队合…

你为什么应该经常访问招聘网站?招聘网站至少有4个方面的价值!

一、缘起读大学的时候,有时候会感到很迷茫,不知道毕业之后可以做什么,自己能拿到多少的月薪。于是,就想到去参加一些公司的招聘。大二大三的时候,就去武大参加了武汉中地数码等3个公司的笔试。但是,没有交答…

python去重复行_python去除文件中重复的行实例

python去除文件中重复的行,我们可以设置一个一个空list,res_list,用来加入没有出现过的字符行! 如果出现在res_list,我们就认为该行句子已经重复了,可以再加入到记录重复句子的list中。 如下代码&#xff1…

限制TensorFlow只在CPU上运行的方法

笔记本是NVIDIA GeForce 940M的显卡,只有2G的显存,运行TensorFlow代码时候常出现OOM(Out of Memory)的错误,原因是batch_size设置得太大导致显存不足。如果想让代码仅仅运行在CPU下,可在原代码中加入如下代码: import …

比特币挖矿——区块链技术

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 说明 区块链具有数据运行公开、不可篡改、可溯源、跨国际、去中心化的特点。因此越来越多地被应用在各个领域。区块链主要技术包括:分布…

Python黑帽编程2.4 流程控制

Python黑帽编程2.4 流程控制 本节要介绍的是Python编程中和流程控制有关的关键字和相关内容。 2.4.1 if …..else 先上一段代码&#xff1a; #!/usr/bin/python # -*- coding: UTF-8 -*- xint(input(请输入一个整数:)) if x0: print %d 0 % x elif x<0: print %d <0 % x…

【Flask】视图高级

# 视图高级笔记&#xff1a;### add_url_rule(rule,endpointNone,view_funcNone)这个方法用来添加url与视图函数的映射。如果没有填写endpoint&#xff0c;那么默认会使用view_func的名字作为endpoint。以后在使用url_for的时候&#xff0c;就要看在映射的时候有没有传递endpoi…

振动力学基础与matlab应用_【日文好书推荐】振动与噪声控制技术for机械设计者...

声海译读活动日文小组为大家推荐好书&#xff0c;《振动与噪声控制技术for机械设计者》作者&#xff1a;小林英男&#xff0c;欢迎大家围观讨论提出宝贵意见&#xff01;目录译文(一)译者&#xff1a;穆瑞林-天津科技大学前言第一章 机械设计开发•设计者对振动•噪声技术入门所…

区块链是互联网未来十年中举足轻重的技术

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 区块链是互联网未来十年中举足轻重的技术 区块链&#xff08;Blockchain&#xff09;&#xff0c;或者说分布式账本&#xff08;DLT, Distributed …

利用jdt快速实现pmd的功能

jdt可以做语法树分析&#xff0c;并且支持visitor模式对代码进行分析。跟pmd的分析方式一样&#xff0c;我们只要实现 visitor接口即可实现一个插件。 Service("requestMappingInfoService")public class RequestMappingInfoServiceImpl implements RequestMappingIn…

用R语言做词频统计_R语言 | 词频统计

Python网络爬虫与文本数据分析本章内容导入停用词读数据&#xff0c;分词剔除停用词导入停用词表library(dplyr)## [1] "?" "、" "。" "“" "”" "《" "》" "!" "…

PHP拿到别人项目如何修改为自己

以下为借助google翻译的&#xff0c;个人润色了一下&#xff0c;官方版里面感觉有很多问题&#xff0c;我这里有我个人修改大部分问题的版本&#xff0c;包括翻译完善&#xff0c;有需要的可以联系我&#xff1a;qyj8411163.com 1. 在您网站的根目录创建名为“webim”的文件夹。…

浅析Hyperledger Fabric共识算法

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 区块链系统是一个分布式架构&#xff0c;交易账本信息由各个节点管理&#xff0c;组成一个庞大的分布式账本。在分布式系统中&#xff0c;各个节点收…

python 获取用户ip_Python爬虫教程:你还在苦苦拉票吗?刷票小程序案例原理剖析!...

你还在苦苦拉票吗&#xff1f;前言剖析投票原理处理思路具体实战主要流程具体细节python代码实例python具体细节java代码实现java总结点击此处&#xff0c;获取海量Python学习资料&#xff01;前言现在生活中离不开各类的比赛&#xff0c;然而&#xff0c;各个比赛离不开投票&a…

下拉菜单被挡住了,DIV置于最底层的方法

网站常会用到一些 下拉菜单&#xff0c;&#xff0c;幻灯片&#xff0c;&#xff0c;&#xff0c;飘浮广告等。但经常会发现。幻灯片会挡住下拉菜单或者飘浮广告等。解决办法有下第一&#xff0c;可将幻灯片所在DIV 置于最底层。添加CSS如下style"z-index:-100;position: …

github的删除

github项目删除 首先找到你要删除的项目&#xff0c;点击开 复制项目名称然后找到Settings 将滚动条滑至底部&#xff0c;找到 Danger Zone 下的 Delete this repository 这里会弹出一个警告对话框 将该项目名称重新输一遍即可 这里会弹出账号重新确认&#xff0c;将密码在输入…

区块链的去中心化VS传统互联网的去中心化:技术与治理的双重困境

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 区块链的去中心化VS传统互联网的去中心化&#xff1a;技术与治理的双重困境11 主要观点&#xff1a; 1、传统互联网经典的去中心化项目BitTorrent…

第三章| 3.1文件处理

1、三元运算 简单条件语句&#xff1a; if 条件成立:val 1 else: val 2 改成三元运算&#xff1a; val 1 if 条件成立 else 2 2、文件处理 &#xff08;用python对硬盘上的文件操作&#xff09; 读 读取文件的三个方法&#xff1a;read()、readline()、readlines() 三个方法…

LR常见的报错处理方法

1.LR录制时不弹出IE浏览器 当一台主机上装有多个浏览器&#xff0c;LR录制脚本时&#xff0c;经常遇到打不开浏览器的情况&#xff0c;可以用下面的方法来解决 启动浏览器&#xff0c;打开Internet 选项对话框&#xff0c;切换到高级标签&#xff0c;去掉“启用第三方浏览器扩展…

均匀分布取某一点概率_概率和概率分布

概率与概率分布是统计学中的基础概念&#xff0c;在我们的高中的课本中就接触过了&#xff0c;如果有遗忘&#xff0c;一起来回顾一下吧&#xff01;知识点&#xff1a;概率概率分布一、概率说到概率&#xff0c;需要先了解一个概念&#xff0c;叫做随机试验。随机试验是指在相…

EOS共识机制——DPoS代理权益证明

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 区块链共识机制与它的演进&#xff0c;是由于区块链式去中心化而且分布式的系统&#xff0c;必须要有一套放诸四海皆准类似宪法的规则&#xff0c;来…

active mq topic消费后删除_Spring cloud stream 整合mq

说明&#xff1a;本案例win10环境测试scs(spring cloud stream)整合kfk(kafka)/rbt(rabbitmq)消息生产消费场景流程一、准备中间件环境(kfk/rbt)后续内容提供kfk与rbt的环境准备流程二、导入scs的依赖项目spring boot 版本&#xff1a;2.1.3.RELEASE引入spring cloud 版本&…

翻译的艺术 —— 无能为力的翻译,搞笑的音译

0. 无能为力的翻译 至尊宝&#xff1a;best sonny&#xff0c;乌龙&#xff1a;own goal&#xff0c;的粤语发音&#xff1b;1. 取其发音 word ⇒ 我的&#xff0c;word 妈呀&#xff0c; Need just word,word has word&#xff0c;你的就是我的&#xff0c;我的还是我的&#…

经常可能会用到的【函数节流和函数防抖】记录下,做下区分

今天突然被人问到&#xff0c;函数节流和函数防抖的区别是什么&#xff0c;结果我脑子一热直接举了个滚动条的粟子说是优化高频率执行的手段&#xff0c;就记得自己是用setTimeout来实现的。完了区别是什么&#xff1f;&#xff1f;哪个是哪个都蒙B了回家想想&#xff0c;有些东…

智能合约和区块链技术:入门指南

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 智能合约和区块链技术&#xff1a;入门指南 多年前&#xff0c;在没有数字合约和区块链技术存在的情况下&#xff0c;双方的合约往往以传统的方式进…

2. 尾部的零

题目 设计一个算法&#xff0c;计算出n阶乘中尾部零的个数 样例 11! 39916800&#xff0c;因此应该返回 2 题解 一开始就用最简单对1-n找出5的个数&#xff0c;然后超时了。虽然都直到是要找5&#xff0c;因为2肯定比5多&#xff0c;所以5的个数就是0的个数&#xff0c;只是计…

case when then else end

1、根据数据库表中特定的值进行排序显示 select * from tablename where order by case when columname then 1 wnen columname when 2 else 3 end 2、根据数据库中存的值根据情况对其进行赋值CASE sexWHEN 1 THEN 男WHEN 2 THEN 女 ELSE 其他 END --Ca…

python replace函数_Python3 replace()函数使用方法

描述 replace() 方法把字符串中的 old&#xff08;旧字符串&#xff09; 替换成 new(新字符串)&#xff0c;如果指定第三个参数max&#xff0c;则替换不超过 max 次。 语法replace()方法语法&#xff1a; str.replace(old, new[, max]) 参数 old -- 将被替换的子字符串。 new -…