python基础
- 基础
- 基本数据类型
- 函数
- 面向对象
编程语言介绍
想看到画面,需要显示器;
声音,需要喇叭;
需要一个软件来执行该干什么干什么,它就是OS,帮我们调用显示器音响;
看电影用qq影音;听音乐用qq音乐;这两个软件安装在OS上.既要显示画面和声音;
qq影音调用OS,OS调用显示器显示画面;所有的东西都交给操作系统;
我们开发的都是和影音一样,运行在OS上面,OS也是一个大软件,也需要人开发,这个工作由微软或者单独的团队专门开发.
我们开发的都成为应用软件.需要安装在操作系统上.
接下来就出现不同的编程语言.那么用哪种语言?
高级语言:java c# php go ruby c++… ->生成字节码
低级语言:汇编C ->生成机器码
什么是高级语言和低级语言?
计算机最开始只能用0101来编程.0101效率太低,于是开始开发一个软件,能够规定一个规则,比如:abc代表101010
这样需要学习一个规则,就可以了.这样还需要一个依赖软件,需要将abc转换成101010.
这个规则后面还是有点难.
所以,对上述软件进行规则,可以写中文.中文然后转换成abc,abc转换成101010,这样写中文,开发效率大大提高,但是执行效率变慢了,因为需要经过多次转换.
而直接0101可以直接执行,执行效率高,但是开发效率低.
而上述的高级语言就可以类比为中文.这些高级语言都是基于C语言编写的.基于低级语言实现的.
C语言再往下就是汇编->101010
相当于,
中文->python/ruby
abc->C语言
所以,用python写需要用python的规则,用ruby写需要用ruby的规则.每种语言规则不一样.
机器码和字节码
字节码是一种中间状态(中间码)的二进制代码(文件)。需要直译器转译后才能成为机器码。
机器码是电脑CPU直接读取运行的机器指令,运行速度最快,但是非常晦涩难懂,也比较难编写,一般从业人员接触不到。
每种语言有自己的字节码.
语言之间的对比
有时间一定要自学,C是根源,高级别语言比如java/python的本质还是C.高级语言是对低级语言的封装.
如果知道低级语言是怎么实现的,那么高级语言更好理解了.
为什么现在不学C,因为C学习成本高,需要费很多时间,而且还找不到工作.
C开发效率底,而且需要程序员自己管理内存,开辟内存,销毁内存.一旦忘记释放,程序跑一段时间就完蛋了,内存占完了.
而高级语言,不需要关心内存的问题,开发python的人已经把内存的开辟和释放都已经集成了.开辟内存后会自动销毁.开发效率就高了..
若要使用,对指针内存等底层知识要非常了解,才能开发出一个好的应用程序.
学习成本要高
高级语言:php java python c#
1)php属于一类,适用于写网站,写页面.
2)java python属于一类,比如阿法狗应用程序,php就不适用了. java python 都可以做. java python既能写页面又可以写后台程序.
3)java 和python区别:
java 执行效率比python高.;
java 能做的python都能做,但python没有java做企业级的应用顺;
但实现一个程序,java 需要100行,python只需要10行.python的开发效率高.
为了执行效率,就用java.其实非也.有个摩尔定律,硬件发展速度非常快.硬件越来越便宜.
用python 2个月完成,java 得一年完成.python加一台服务器或者加个优化,完全可以跟上java.
程序执行慢差别比较慢,更重要的是在程序员,有可能A程序员开发的python比B程序员开发的java执行效率还要高.
数据库,很多情况扫一个页面比较卡,有很大可能是因为写的sql语句太烂.
php类:局限性,适用于写网页
python java类:写网页也可以写后台功能
区分:
python执行效率低,开发效率高
java相反.
python种类
很多厂商都在开发自己的python.
我们再说的Python是c-python.
基于C语言开发的叫做c-python
基于java语言开发的叫做java-python
基于c#语言开发的暂且叫做c#python
同样一个py文件可以交给三种python语言执行.
但是cpython直接调用的c语言
javapython先调用java生成java字节码,在调用c语言执行.
c#python先调用c#生成c#字节码,在调用c语言执行.
javapython和c#python相对cpython执行效率肯定要低.
javapython和java代码交互比较方便
c#python和c#代码交互比较方便.
我们一般说的python都是cpython.是主流.
RUBYPython
JavaScriptPython
IronPython
Jpython
pypy 用CPython开发的python. 不太明白是什么.