answer:编程是个动词,编程就等于写代码,那么写代码是为了什么呢?也就是为何要编程呢,确定是为了让计算机帮咱们搞事情,代码就是计算机能理解的语言。html
例子:你是公司老板,你有一个员工是中国人,你让他干活,就得说中文,还有一个员工是美国人,让他干活,就得说英文,你还有一条狗,让他听话,你就得汪汪汪。。。,那如今你有台电脑,让它干活,就得用它能理解的语言。java
高级语言 A + B
汇编语言 ADD AX BX
机器语言 0000 0001 1 0000python
机器语言:因为计算机内部只能接受二进制代码,所以,用二进制代码0和1描述的指令称为机器指令,所有机器指令的集合构成计算机的机器语言,机器语言属于低级语言。c++
汇编语言:其实质和机器语言是相同的,都是直接对硬件操做,只不过指令采起了英文缩写的标识符,更容易识别和记忆。程序员
高级语言:是大多数编程人员的选择,和汇编语言相比,他不但将许多相关的机器指令合成为单条指令,而且去掉了与具体操做相关但与完成工做无关的细节,高级语言主要是相对于汇编语言而言,它并非特指某一种具体的语言,而是包含了许多编程语言。如C/C++,JAVA,PHP,PYTHON等都属于高级语言。web
机器语言:优势是最底层,速度快,缺点是复杂,开发效率低面试
汇编语言:优势是比较底层,速度快,缺点是复杂,开发效率低算法
高级语言:编译型语言执行速度快,不依赖语言环境运行,跨平台差shell
解释型跨平台比较好,一份代码,处处使用,缺点是执行效率慢,依赖解释器运行编程
相比于机器和汇编语言,高级语言对开发人员更友好,在开发效率上大大提升。
机器语言效率是汇编的1.5倍,
汇编语言的效率是C语言的2倍,
Java语言效率是C语言的1/5
机器语言 100 导弹控制程序
汇编语言 150
C语言 300
C++ 400
Java 1200
第一代 第二代 第三代 第四代 第五代
机器语言 汇编语言 c语言 ObjectC语言 Java、PHP、Python
C/C++语言 C#、Lua、R、Ruby
VB
#C语言:
C语言是一种计算机程序设计语言,它既具备高级语言的特色,又具备汇编语言的特色。它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已前后被移植到大、中、小及微型机上,它能够做为工做系统设计语言,编写系统应用程序,也能够做为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围普遍,具有很强的数据处理能力,不只仅是在软件开发上,并且各种科研都须要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用好比单片机以及嵌入式系统开发。
#C++:
C++是C语言的继承的扩展,它既能够进行C语言的过程化程序设计,又能够进行以抽象数据类型为特色的基于对象的程序设计,还能够进行以继承和多态为特色的面向对象的程序设计。C++擅长面向对象程序设计的同时,还能够进行基于过程的程序设计,于是C++就适应的问题规模而论,大小由之。
C++不只拥有计算机高效运行的实用性特征,同时还致力于提升大规模程序的编程质量与程序设计语言的问题描述能力。
#JAVA:
Java是一种能够撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。Java 技术具备卓越的通用性、高效性、平台移植性和安全性,普遍应用于我的PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具有了显著优点和广阔前景。
#PHP:
PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸取了C语言、Java和Perl的特色,利于学习,使用普遍,主要适用于Web开发领域
Ruby:
Ruby 是开源的,在Web 上免费提供,但须要一个许可证。[4]
Ruby 是一种通用的、解释的编程语言。
Ruby 是一种真正的面向对象编程语言。
Ruby 是一种相似于 Python 和 Perl 的服务器端脚本语言。
Ruby 能够用来编写通用网关接口(CGI)脚本。
Ruby 能够被嵌入到超文本标记语言(HTML)。
Ruby 语法简单,这使得新的开发人员可以快速轻松地学习 Ruby
#GO:
Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。
Go是从2007年底由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本。如今Go的开发已是彻底开放的,而且拥有一个活跃的社区。
由其擅长并发编程
#Python:
Python是一门优秀的综合语言, Python的宗旨是简明、优雅、强大,在人工智能、云计算、金融分析、大数据开发、WEB开发、自动化运维、测试等方向应用普遍,已经是全球第4大最流行的语言。
几个主流的编程语言介绍
高级语言所编制的程序不能被计算机所知别,必须讲过转换才能被执行,按照转换方式,能够将其分为两类,一类是编译类,一类是解释类
编译类:就是在应用源码程序执行以前,就将程序源代码“翻译”成目标代码(机器语言),所以其目标程序能够脱离其语言环境独立执行。使用比较方便,效率也高,可是应用程序一旦须要修改,必须先修改源代码,再从新编译生成新的目标(*.obj ,也就是OBJ文件)才能执行,只有目标文件而没有源代码,修改很不方便。
特色:编译后程序运行时不须要从新翻译,直接使用编译的结果就好了。程序执行效率高,依赖编译器,跨平台性比较差,如C,C++,Delphi等
优势:1,执行程序时候,不须要源代码,不依赖语言环境,由于执行的是机器源文件。
2,执行速度快,由于程序代码已经翻译成计算机能够理解的机器语言。
缺点:1,每次修改了源代码,须要从新编译,生成机器编码文件
2,跨平台性很差,不一样操做系统,调用底层的机器指令不一样,须要为不一样的平台生成不一样的机器码文件。
解释类:执行方式相似于咱们生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,一边翻译,所以效率比较低。
特色:效率低,不能生成独立的可执行文件,应用程序不能脱离其解释器,可是这种方式比较灵活,能够动态的调整,修改应用程序。如Python,Java,PHP,Ruby等语言。
优势:1,用户调用解释器,执行源码文件,并且能够随时修改,当即见效,改完源代码,直接运行看结果
2,解释器把源码文件一边解释成机器指令,一边交给CPU执行,天生跨平台,由于解释器已经作好了对不一样平台的交互处理,用户写的源代码不须要考虑平台差别性。
缺点:1,代码是明文(没法加密)....python自己开源的,因此代码加密性并不重要
2,运行效率低,全部的代码是须要解释器边解释边执行,速度比编译型慢不少。
Python能够应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。目前业内几乎全部大中型互联网企业都在使用Python,如:Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯、汽车之家、美团等。
目前Python主要应用领域:
Python在一些公司的应用:
python发展史
编程语言主要从如下几个角度为进行分类,编译型和解释型、静态语言和动态语言、强类型定义语言和弱类型定义语言,每一个分类表明什么意思呢,咱们一块儿来看一下。
2.1 编译型与解释型。
编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机能够直接以机器语言来运行此程序,速度很快;
而解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,因此运行速度是不如编译后的程序运行的快的.
这是由于计算机不能直接认识并执行咱们写的语句,它只能认识机器语言(是二进制的形式)
编译型
优势:编译器通常会有预编译的过程对代码进行优化。由于编译只作一次,运行时不须要编译,因此编译型语言的程序执行效率高。能够脱离语言环境独立运行。
缺点:编译以后若是须要修改就须要整个模块从新编译。编译的时候根据对应的运行环境生成机器码,不一样的操做系统之间移植就会有问题,须要根据运行的操做系统环境编译不一样的可执行文件。
解释型
优势:有良好的平台兼容性,在任何环境中均可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就能够,能够快速部署,不用停机维护。
缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。
2.2动态语言和静态语言
一般咱们所说的动态语言、静态语言是指动态类型语言和静态类型语言。
(1)动态类型语言:动态类型语言是指在运行期间才去作数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。Python和Ruby就是一种典型的动态类型语言,其余的各类脚本语言如VBScript也多少属于动态类型语言。
(2)静态类型语言:静态类型语言与动态类型语言恰好相反,它的数据类型是在编译其间检查的,也就是说在写程序时要声明全部变量的数据类型,C/C++是静态类型语言的典型表明,其余的静态类型语言还有C#、JAVA等。
2.3强类型定义语言和弱类型定义语言
(1)强类型定义语言:强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个数据类型,若是不通过强制转换,那么它就永远是这个数据类型了。举个例子:若是你定义了一个整型变量a,那么程序根本不可能将a看成字符串类型处理。强类型定义语言是类型安全的语言。
(2)弱类型定义语言:数据类型能够被忽略的语言。它与强类型定义语言相反, 一个变量能够赋不一样数据类型的值。
强类型定义语言在速度上可能略逊色于弱类型定义语言,可是强类型定义语言带来的严谨性可以有效的避免许多错误。另外,“这门语言是否是动态语言”与“这门语言是否类型安全”之间是彻底没有联系的!
例如:Python是动态语言,是强类型定义语言(类型安全的语言); VBScript是动态语言,是弱类型定义语言(类型不安全的语言); JAVA是静态语言,是强类型定义语言(类型安全的语言)。
经过上面这些介绍,咱们能够得出,python是一门动态解释性的强类型定义语言。(面试会问)
先看优势
再看缺点:
当咱们编写Python代码时,咱们获得的是一个包含Python代码的以.py
为扩展名的文本文件。要运行代码,就须要Python解释器去执行.py
文件。
因为整个Python语言从规范到解释器都是开源的,因此理论上,只要水平够高,任何人均可以编写Python解释器来执行Python代码(固然难度很大)。事实上,确实存在多种Python解释器。
CPython
当咱们从Python官方网站下载并安装好Python 3.6后,咱们就直接得到了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,因此叫CPython。在命令行下运行python
就是启动CPython解释器。
CPython是使用最广的Python解释器。教程的全部代码也都在CPython下执行。
IPython
IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所加强,可是执行Python代码的功能和CPython是彻底同样的。比如不少国产浏览器虽然外观不一样,但内核其实都是调用了IE。
CPython用>>>
做为提示符,而IPython用In [
序号
]:
做为提示符。
PyPy
PyPy是另外一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),因此能够显著提升Python代码的执行速度。
绝大部分Python代码均可以在PyPy下运行,可是PyPy和CPython有一些是不一样的,这就致使相同的Python代码在两种解释器下执行可能会有不一样的结果。若是你的代码要放到PyPy下执行,就须要了解PyPy和CPython的不一样点。
Jython
Jython是运行在Java平台上的Python解释器,能够直接把Python代码编译成Java字节码执行。
IronPython
IronPython和Jython相似,只不过IronPython是运行在微软.Net平台上的Python解释器,能够直接把Python代码编译成.Net的字节码。
小结:
Python的解释器不少,但使用最普遍的仍是CPython。若是要和Java或.Net平台交互,最好的办法不是用Jython或IronPython,而是经过网络调用来交互,确保各程序之间的独立性。
官网:https://www.python.org/downloads/
下载:Windows x86-64 executable installer
# 注意添加环境变量
1,交互器执行,在控制台上运行临时输入的代码
2,文件操做,执行一个保存好的py文件
二者的区别是:一个是内存操做,一个是硬盘操做,
内存的特色是:读取速度快,可是断电就丢失数据
硬盘的特色是:速度慢,但能够保存数据
上一步中执行 python d:t1.py 时,明确的指出 t1.py 脚本由 python 解释器来执行。
若是想要相似于执行shell脚本同样执行python脚本,例: ./t1.py
,那么就须要在 hello.py 文件的头部指定解释器,以下:
# !/usr/bin/env python3 print("Hello World!")
ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其余西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256,因此,ASCII码最多只能表示 256 个符号。
而美国人留了一位做为拓展,因此是7位...然而远远不够中国人使用(9万多个汉字) gbk国人使用的编码
显然ASCII码没法将世界上的各类文字和符号所有表示,因此,就须要新出一种能够表明全部字符和符号的编码,即:Unicode
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每一个字符设定了统一而且惟一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536,
注:此处说的的是最少2个字节,可能更多
UTF-8,是对Unicode编码的压缩和优化,他再也不使用最少使用2个字节,而是将全部的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...
因此,python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill),若是是以下代码的话:
报错:ascii码没法表示中文
Python2 显示中文时须要加上:# -*- coding: utf-8 -*-
当行注释:# 被注释内容
多行注释:'''被注释内容''',或者"""被注释内容"""
变量是什么? 变量:把程序运行的中间结果临时的存在内存里,以便后续的代码调用。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
name = "taibai"
上述代码声明了一个变量,变量名为: name,变量name的值为:"taibai"
变量的做用:昵称,其代指内存里某个地址中保存的内容
5.二、变量定义的规则:
5.三、推荐定义方式
1 #驼峰体 2 3 AgeOfOldboy = 56 4 5 NumberOfStudents = 80 6 7 #下划线 8 9 age_of_oldboy = 56 10 11 number_of_students = 80
5.四、定义变量很差的方式举例
常量即指不变的量,如pai 3.141592653..., 或在程序运行过程当中不会改变的量
举例,假如一我的的年龄会变,那这就是个变量,但在一些状况下,他的年龄不会变了,那就是常量。在Python中没有一个专门的语法表明常量,程序员约定俗成用变量名所有大写表明常量
AGE_OF_OLDBOY = 56
在c语言中有专门的常量定义语法,const int count = 60;
一旦定义为常量,更改即会报错
const int count = 60;
#!/usr/bin/env python
# -*- coding: utf-8 -*-
name = input("What is your name?")
age = input("How old are you?") hometown = input("Where is your hometown?") print("Hello ",name , "your are ", age , "years old, you came from",hometown)
什么是数据类型?
咱们人类能够很容易的分清数字与字符的区别,可是计算机并不能呀,计算机虽然很强大,但从某种角度上看又很傻,除非你明确的告诉它,1是数字,“汉”是文字,不然它是分不清1和‘汉’的区别的,所以,在每一个编程语言里都会有一个叫数据类型的东东,其实就是对经常使用的各类数据类型进行了明确的划分,你想让计算机进行数值运算,你就传数字给它,你想让他处理文字,就传字符串类型给他。Python中经常使用的数据类型有多种,今天咱们暂只讲3种, 数字、字符串、布尔类型
8.一、整数类型(int)。
int(整型)
在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
long(长整型)
跟C语言不一样,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上因为机器内存有限,咱们使用的长整数数值不可能无限大。
注意,自从Python2.2起,若是整数发生溢出,Python会自动将整数数据转换为长整数,因此现在在长整数数据后面不加字母L也不会致使严重后果了。
>>> a= 2**64
>>> type(a) #type()是查看数据类型的方法
<type 'long'>
>>> b = 2**60
>>> type(b)
<type 'int'>
8.二、字符串类型(str)。
在Python中,加了引号的字符都被认为是字符串!
>>> name = "Li wei" #双引号 >>> age = "22" #只要加引号就是字符串 >>> age2 = 22 #int >>> >>> msg = '''My name is Alex, I am 22 years old!''' #我擦,3个引号也能够 >>> >>> hometown = 'ShanDong' #单引号也能够
那单引号、双引号、多引号有什么区别呢? 让我大声告诉你,单双引号木有任何区别,只有下面这种状况 你须要考虑单双的配合
msg = "My name is Alex , I'm 22 years old!"
多引号什么做用呢?做用就是多行字符串必须用多引号
msg = ''' 今天我想写首小诗, 歌颂个人同桌, 你看他那乌黑的短发, 好像一只炸毛鸡。 ''' print(msg)
字符串拼接
数字能够进行加减乘除等运算,字符串呢?让我大声告诉你,也能?what ?是的,但只能进行"相加"和"相乘"运算
>>> name
'Alex Li'
>>> age '22' >>> >>> name + age #相加其实就是简单拼接 'Alex Li22' >>> >>> name * 10 #相乘其实就是复制本身多少次,再拼接在一块儿 'Alex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex Li'
注意,字符串的拼接只能是双方都是字符串,不能跟数字或其它类型拼接
>>> type(name),type(age2)
(<type 'str'>, <type 'int'>) >>> >>> name 'Alex Li' >>> age2 >>> name + age2 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: cannot concatenate 'str' and 'int' objects #错误提示数字 和 字符 不能拼接
8.三、布尔值(True,False)。
布尔类型很简单,就两个值 ,一个True(真),一个False(假), 主要用记逻辑判断
但其实大家并不明白对么? let me explain, 我如今有2个值 , a=3, b=5 , 我说a>b你说成立么? 咱们固然知道不成立,但问题是计算机怎么去描述这成不成立呢?或者说a< b是成立,计算机怎么描述这是成立呢?
没错,答案就是,用布尔类型
>>> a=3
>>> b=5
>>>
>>> a > b #不成立就是False,即假
False
>>>
>>> a < b #成立就是True, 即真
True
你怎么实现呢?你会发现,用字符拼接的方式还难实现这种格式的输出,因此一块儿来学一下新姿式
只须要把要打印的格式先准备好, 因为里面的 一些信息是须要用户输入的,你没办法预设知道,所以能够先放置个占位符,再把字符串里的占位符与外部的变量作个映射关系就好啦
name = input("Name:")
age = input("Age:") job = input("Job:") hobbie = input("Hobbie:") info = ''' ------------ info of %s ----------- #这里的每一个%s就是一个占位符,本行的表明 后面拓号里的 name Name : %s #表明 name Age : %s #表明 age job : %s #表明 job Hobbie: %s #表明 hobbie ------------- end ----------------- ''' %(name,name,age,job,hobbie) # 这行的 % 号就是 把前面的字符串 与拓号 后面的 变量 关联起来 print(info)
说%d须要一个数字,而不是str, what? 咱们明明输入的是数字呀,22,22呀。
不用担忧 ,不要相信你的眼睛咱们调试一下,看看输入的究竟是不是数字呢?怎么看呢?查看数据类型的方法是什么来着?type()
name = input("Name:") age = input("Age:") print(type(age))
执行输出是
Name:Alex Age:22 <class 'str'> #怎么会是str Job:IT
让我大声告诉你,input接收的全部输入默认都是字符串格式!
要想程序不出错,那怎么办呢?简单,你能够把str转成int
age = int( input("Age:") ) print(type(age))
确定没问题了。相反,能不能把字符串转成数字呢?必然能够,str( yourStr )
运算符
计算机能够进行的运算有不少种,可不仅加减乘除这么简单,运算按种类可分为算数运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算,今天咱们暂只学习算数运算、比较运算、逻辑运算、赋值运算
算数运算
如下假设变量:a=10,b=20
比较运算
赋值运算
逻辑运算
针对逻辑运算的进一步研究:
1,在没有()的状况下not 优先级高于 and,and优先级高于or,即优先级关系为( )>not>and>or,同一优先级从左往右计算。
例题:
判断下列逻辑语句的True,False。
1,3>4 or 4<3 and 1==1 2,1 < 2 and 3 < 4 or 1>2 3,2 > 1 and 3 < 4 or 4 > 5 and 2 < 1 4,1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8 5,1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 6,not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
2 , x or y , x为真,值就是x,x为假,值是y;
x and y, x为真,值是y,x为假,值是x。
例题:求出下列逻辑语句的值。
8 or 4
0 and 3 0 or 4 and 3 or 7 or 9 and 6
in,not in :
判断子元素是否在原字符串(字典,列表,集合)中:
例如:
#print('喜欢' in 'dkfljadklf喜欢hfjdkas') #print('a' in 'bcvd') #print('y' not in 'ofkjdslaf')
假如把写程序比作走路,那咱们到如今为止,一直走的都是直路,还没遇到过度叉口,想象现实中,你遇到了分叉口,而后你决定往哪拐必然是有所动机的。你要判断那条岔路是你真正要走的路,若是咱们想让程序也能处理这样的判断怎么办? 很简单,只须要在程序里预设一些条件判断语句,知足哪一个条件,就走哪条岔路。这个过程就叫流程控制。
if...else 语句
单分支
if 条件: 知足条件后要执行的代码
双分支
"""
if 条件:
知足条件执行代码
else:
if条件不知足就走这段
"""
AgeOfOldboy = 48
if AgeOfOldboy > 50 : print("Too old, time to retire..") else: print("还能折腾几年!")
缩进
这里必需要插入这个缩进的知识点
你会发现,上面的if代码里,每一个条件的下一行都缩进了4个空格,这是为何呢?这就是Python的一大特点,强制缩进,目的是为了让程序知道,每段代码依赖哪一个条件,若是不经过缩进来区分,程序怎么会知道,当你的条件成立后,去执行哪些代码呢?
在其它的语言里,大多经过{}
来肯定代码块,好比C,C++,Java,Javascript都是这样,看一个JavaScript代码的例子
var age = 56
if ( age < 50){
console.log("还能折腾") console.log('能够执行多行代码') }else{ console.log('太老了') }
在有{}
来区分代码块的状况下,缩进的做用就只剩下让代码变的整洁了。
Python是门超级简洁的语言,发明者定是以为用{}
太丑了,因此索性直接不用它,那怎么能区分代码块呢?答案就是强制缩进。
Python的缩进有如下几个原则:
多分支
回到流程控制上来,if...else ...能够有多个分支条件
if 条件:
知足条件执行代码
elif 条件: 上面的条件不知足就走这个 elif 条件: 上面的条件不知足就走这个 elif 条件: 上面的条件不知足就走这个 else: 上面全部的条件不知足就走这段
写个猜年龄的游戏吧
age_of_oldboy = 48
guess = int(input(">>:")) if guess > age_of_oldboy : print("猜的太大了,往小里试试...") elif guess < age_of_oldboy : print("猜的过小了,往大里试试...") else: print("恭喜你,猜对了...")
上面的例子,根据你输入的值不一样,会最多获得3种不一样的结果
再来个匹配成绩的小程序吧,成绩有ABCDE5个等级,与分数的对应关系以下
A 90-100 B 80-89 C 60-79 D 40-59 E 0-39
要求用户输入0-100的数字后,你能正确打印他的对应成绩
score = int(input("输入分数:"))
if score > 100: print("我擦,最高分才100...") elif score >= 90: print("A") elif score >= 80: print("B") elif score >= 60: print("C") elif score >= 40: print("D") else: print("太笨了...E")
这里有个问题,就是当我输入95的时候 ,它打印的结果是A,可是95 明明也大于第二个条件elif score >=80:
呀, 为何不打印B呢?这是由于代码是从上到下依次判断,只要知足一个,就不会再往下走啦,这一点必定要清楚呀!
12.1,基本循环
while
条件:
# 循环体
# 若是条件为真,那么循环体则执行
# 若是条件为假,那么循环体不执行
12.2,循环停止语句
若是在循环的过程当中,由于某些缘由,你不想继续循环了,怎么把它停止掉呢?这就用到break 或 continue 语句
例子:break
count = 0
while count <= 100 : #只要count<=100就不断执行下面的代码
print("loop ", count) if count == 5: break count +=1 #每执行一次,就把count+1,要否则就变成死循环啦,由于count一直是0 print("-----out of while loop ------")
输出
loop 0
loop 1 loop 2 loop 3 loop 4 loop 5 -----out of while loop ------
例子:continue
count = 0
while count <= 100 : count += 1 if count > 5 and count < 95: #只要count在6-94之间,就不走下面的print语句,直接进入下一次loop continue print("loop ", count) print("-----out of while loop ------")
输出
loop 1
loop 2
loop 3
loop 4
loop 5
loop 95
loop 96
loop 97
loop 98
loop 99
loop 100
loop 101
-----out of while loop ------
12.3,while ... else ..
与其它语言else 通常只与if 搭配不一样,在Python 中还有个while ...else 语句
while 后面的else 做用是指,当while 循环正常执行完,中间没有被break 停止的话,就会执行else后面的语句
count = 0
while count <= 5 : count += 1 print("Loop",count) else: print("循环正常执行完啦") print("-----out of while loop ------")
输出
Loop 1
Loop 2 Loop 3 Loop 4 Loop 5 Loop 6 循环正常执行完啦 -----out of while loop ------
若是执行过程当中被break啦,就不会执行else的语句啦
count = 0
while count <= 5 : count += 1 if count == 3:break print("Loop",count) else: print("循环正常执行完啦") print("-----out of while loop ------")
输出
Loop 1
Loop 2
-----out of while loop ------