学python要先学c语言吗,学了python还有必要学C语言吗
最近学习Python,网上学习资料挺多的,这篇写的不错,关于学python要先学c语言吗和学了python还有必要学C语言吗,大家有需要也可以看看。
很难说哪种语言就非常优秀,主要还是看个人发展方向,汇编是机器语言,会偏底层一些,对了解计算机的运行原理等有很大帮助。 python是高级语言,更适合接触应用场景一些。
个人建议,作为计算机专业的,有时间就应该先把基础理解通透了,然后再出来解决场景应用,这样处理问题会更加得心应手一些。
下面说说两门语言的编程思路上的区别,都是个人观念
1、汇编直接控制硬件
其实芯片就是采用一些逻辑门实现的逻辑单元,只知道高电平,低电平,也就是0和1,机器本身也不知道低电平是啥意思,高电平是啥意思,然后汇编就可以控制机器,地电平做啥事,高电平做啥事。
汇编编程结构核心就是围绕一些状态寄存器操作一些数据寄存器。
比如1>0 为真,那么状态寄存器某某位就会跳转。然后根据这个状态寄存器的电平状态,来判断是否做下面的一些事情,比如是否进行拷贝某个数据等。
说到这里汇编编程就说完了,我们来看看要考虑的东西,就拿拷贝这个事情来说吧:用那种方式拷贝,汇编完成一件事情往往有多种指令多可以完成,要根据实际应用来选择。
从哪儿拷贝(空间是否有效),拷贝到哪儿(空间是否够用),拷贝多少(怎么判断拷贝完成)。
如果有中断(相当于有其他事情要做),我们的拷贝是否会出现错误(数据会不会被修改等),应该怎么处理。
2. python 更加接触应用
python 很成功的地方就是,python语言摒弃了c语言还要考虑内存的思想。
打个比方,我们平时想事情,就是想着,第一步怎么做,第二部怎么做,很少去考虑做这个事情过程中,怎么走路。怎么走路就靠python根据你想做的事情来安全的调度底层。
做事情,我们需要向左走几步,向右走了几步,怎么避开一个水坑,不在我们做这个事情考虑的范畴,因为我们认为这是常识,不重要,按照常识解决就行了。
可以说,这是一种对底层非常好的一种封装,但是问题来了,python将底层封装了,这么好,我们有没有必要去了解底层运行状况呢?
我认为还是有的,毕竟封装再好,也有可以被尖锐的利器划上的时候,比方说有的场景就需要我们去底层控制,汇编和c还是很有必要的。
毕竟是计算机专业的专业人士,个人认为,c和汇编不能少,底层要扎实,才能在解决问题的时候知其然,知其所以然。
欢迎大佬补充。
原文地址:https://www.cnblogs.com/openeim/p/15119810.html
- linux使用wc命令查看文件行数、字母、字节数命令
- 程序员偷偷深爱的 9 个不良编程习惯
- 低级程序员和高级程序员的区别
- Silverlight学习(二)
- Silverlight学习(三)
- ArcGIS for Android学习(一)
- Arcgis for Silverlight学习(一)
- ImageButton与Button
- RadioButton、CheckBox与ToggleButton
- Silverlight学习(五)图形标绘
- radio与checkbox
- JavaScript之cookie
- Silverlight学习(四) domainservice动态多条件查询
- Android学习Tabhost、gallery、listview、imageswitcher
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 2017年天梯赛全国总决赛题集 L1-8 矩阵A乘以B
- 你真的了解synchronized吗?
- 2017年天梯赛大区赛题集 7-1 出生年
- 2017年天梯赛大区赛题集 7-9 人以群分
- 浙大版《C语言程序设计(第3版)》题目集 练习2-1 Programming in C is fun!
- 浙大版《C语言程序设计(第3版)》题目集 练习2-3 输出倒三角图案
- 这款网络排查工具,堪称神器!
- 浙大版《C语言程序设计(第3版)》题目集 练习2-4 温度转换
- 浙大版《C语言程序设计(第3版)》题目集 练习2-6 计算物体自由下落的距离
- 浙大版《C语言程序设计(第3版)》题目集 练习2-8 计算摄氏温度
- 浙大版《C语言程序设计(第3版)》题目集 练习2-9 整数四则运算
- 浙大版《C语言程序设计(第3版)》题目集 练习2-10 计算分段函数[1]
- 浙大版《C语言程序设计(第3版)》题目集 练习2-11 计算分段函数[2]
- SAP Spartacus产品页面的normalizer
- Nodejs中使用net-snmp库读取智慧站房的温湿度、空调等实时数据