编程语言的介绍
什么是编程?
计算机可以理解什么语言
二进制语言
机器语言
由于计算机内部只接受二进制代码,因此,用二进制代码0和1描述的指令为机器指令,全部机器指令的集合构成计算机的机器语言
机器语言属于低级语言
编出的程序去全是些0和1的指令代码,直观性差,而且还容易出错,除了计算机生产厂家的专业人员外,绝大多数的程序员已经不再去学习机器语言了。
机器语言是微处理器理解和使用的,尽管机器语言好像是很复杂的,然而他是有规律的。
汇编语言
汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆
他同样需要编程者将每一步具体的操作命令的形式写出来。汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作,例如移动、自增、因此汇编源程序一般比较冗长、复杂、容易出错,而且使用湖边语言编程需要更多的计算机专业知识。
但是汇编语言的有点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能够实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。
编程语言--高级语言
C、C++、Java、Python、perl 人能看的懂的都是高级语言
高级语言是大多数编程者的选择,和汇编语言相比,他不但将许多相关的机器指令合成为单挑指令,并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。高级语言主要是相对于汇编语言而言,他并不是指某一种具体的语言,而是包括了很多的市面上的变成语言,如c、c++、Python、Java、go、等都属于高级语言
相比机器语言和汇编语言,高级语言对开发人员很友好,在开发效率上大大提高!!
众所周知C要比其他的编程语言运行速度快,这是为什么呢?
因为高级语言将代码转换成二进制的方式不同,决定了他们运行的速度
高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行!
高级语言转换成计算机能够识别的二进制语言有两种方式
1. 编译类:将所有代码全部翻译成二进制语言编译
优点:运行速度快;
缺点:修改代码后要重新编译一遍;跨平台性差,在不同的操作系统上(linux和window)许多功能的代码是不同的;
2. 解释类:逐条翻译进行编译
优点:修改代码以后只重新编译修改过的代码即可;可跨平台性,一份代码四处运行;
缺点:运行速度慢,边编译边运行。不能生成二进制文件.exe
Python介绍和发展史
1989年圣诞节期间,guido开始写Python语言的编译器。Python这个名字,来自于他所挚爱的电视剧名称,他希望这个新的叫做Python的语言,能符合他的理想,创造了c和shell之间,功能全面,易学易用,可拓展的语言。
Python2.4 04年诞生了,流行了6.7年;同年诞生了目前最流行的WEB框架Django
Python解释器种类
CPython
当我们从pythone官方网站下载并安装好Python 2.7后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行Python就是启动CPython解释器
IPython
IPython是基于CPython之上的一个交互式解释器。IPython只是在交互方式上有所增强,但是执行Python代码功能和CPython是完全一样的。好比很多国产的浏览器虽然外观不同,但实际上内核都是调用了IE;
PyPy
PyPy是一个Python写的解释器,他的目标是执行速度,PyPy采用JIT(动态编译)技术,对Python代码进行动态编译(不是解释),所以可以显著提高Python代码的执行速度。
JPython
Java写的解释器
Python编程
print(“Hello World”)
变量与变量的作用
计算机的主要作用只有是进行运算,用Python运行数值运算非常容易,跟我们用计算器一样。
变量:
变量的作用:存储数据,存储程序运行的中间结果,以备后边的程序使用 或者存放数据的容器
查看变量的数据类型 print(type(name),type(age))
强制类型转换name=int(input(name))
%s的占位符是万能的,可以通过强制转换成任何格式,所以通常情况下可以使用%s进行站位,输入的时候使用强制类型转换
运算符:
计算机可以进行的运算有很多种,不知加减乘除那么简单,运算按种类可分为算数运算,比较运算,赋值运算,成员运算,身份运算,位运算,现在我们只学习算数运算,比较运算,赋值运算。
name = input("name:") age = int(input("age:")) job = input("Job:") hometown = input("hometown:") info = """ --------info of %s-------- name: %s age: %s job: %s hometown: %s ---------end------------- """ %(name,name,age,job,hometown) print(info)
赋值运算
= 、+=、 -=、 *=、 /=
逻辑运算
and or not
流程控制
单分支
if 条件:
满足条件后执行的代码
双分支
If 条件:
满足条件执行的代码
Else :
否则就执行这个代码
age_of_you = int(input("girl age:")) if age_of_you > 20 : print("time to find a bf.") else : print("------xixi")
打印分数
score = int(input("score:")) if score > 100: print("zui duo 100") elif score >= 90: print ("youxiu") elif score >= 80: print("you") elif score >= 60: print("hege") elif score >= 40: print("cha") elif score >= 0: print("didi") else : print("buneng fu")
写重复的代码是可耻的行为
所以出现了while循环
While语句的语法:
while 条件:
执行代码…
0 打印到100 的程序,每循环一次加一
count = 0
while count <=100:
print(“loop”,count)
count += 1
print(“------end-------”)
While 循环打印猜数字游戏
#练习
# 优化猜年龄游戏,允许用户做多猜三次,中间猜对了,直接跳出循环
# 优化猜年龄游戏,允许用户最多猜三次,猜了三次后,再问是都还想玩,如果用户选y,就在允许猜3次,一次往复
sys_age = 11 count = 0 while True: count += 1 user_age = int(input("age:")) if user_age > sys_age: print("bigger") elif user_age == sys_age: print("smile,you are right!!") break elif user_age < 1 : print("we are hunman") else: print("little") if count == 3: chocie = input("input your chocie y/n") if chocie == "n" : break else: count -= 3 print("------end-------")