Start_Learning_Python 03 条件、循环
if循环
Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。
条件语句和循环语句可以有 else 子句,它在穷尽列表(以for循环)或条件变为 false (以while循环)导致循环终止时被执行,但循环被break终止时不执行。(稍后讲解break)
可以通过下图来简单了解条件语句的执行过程:
if语句执行有个特点,它是从上往下判断,如果在某个判断上是True,把该判断对应的语句执行后,就忽略掉剩下的elif和else,如果if和 elif条件都为Flast择执行else if <条件判断1>: <执行1> elif <条件判断2>: <执行2> elif <条件判断3>: <执行3> else: <执行4>
OK 很容易理解 不多赘述 直接看代码
age = 24 if age >= 18: # 满足age>18输出adult print('adult') elif age >= 6: # 不满足age>18满足age>=6输出teenager print('teenager') else: # 以上都不满足输出kid print('kid')
输出结果肯定是adult了,可是我还是一个孩纸,我不想让输出结果为adult怎么办?
OK 顺便说一下input 读取用户输入 ,这样我们可以自己输入年龄了。
需要注意的是:input()默认
返回的数据类型是str
,str
不能直接和整数比较,必须先把str
转换成整数。Python提供了int()
函数来完成这件事情:
age = int(input("age:")) if age >= 18: # 满足age>18输出adult print('adult') elif age >= 6: # 不满足age>18满足age>=6输出teenager print('teenager') else: # 以上都不满足输出kid print('kid')
age:9 teenager
OK 我们练习一下,输入三个数 并输出其中最大的那个数值。
print("请依次输入三个数字,系统会为你输出最大值") num1 = int(input("Number1:")) num2 = int(input("Number2:")) num3 = int(input("Number3:")) maxNum = num1 if num2 > num1: maxNum = num2 if num2 > num3: maxNum = num2 else: maxNum = num3 elif num1 > num3: maxNum = num1 else: maxNum = num3 print("最大值为:", maxNum)
下面我们讨论python中的循环语句。
Python中的循环语句有 for 和 while。
Python循环语句的控制结构图如下所示:
Python中while语句的一般形式:
while 判断条件: 语句
同样需要注意冒号和缩进!以下实例使用了 while 来计算 1 到 100 的总和:
n = 100 sum = 0 counter = 1 while counter <= n: sum = sum + counter counter += 1 print("1 到 %d 之和为: %d" % (n, sum)) # 此处用到 % 占位符 作用是%后面()里面的n和sum按顺序替代前面占位的%d
我们可以通过设置while的条件表达式永远不为 false 来实现无限循环!(死循环)
a = 1 while a == 1 : # 表达式永远为 true num = int(input("请输入一个数字 :")) print ("你输入的数字是: ", num) print ("Good bye!")
执行结果如下:
请输入一个数字 :5 请你输入的数字是: 5 请输入一个数字 :
您可以使用 CTRL+C 来退出当前的无限循环。
while循环可以使用else语句:
在 while … else 中条件语句为 false 时执行 else 的语句块:
count = 0 while count < 5: print (count, " 小于 5") count = count + 1 else: print (count, " 大于或等于 5")
执行结果如下:
小于 5 小于 5 小于 5 小于 5 小于 5 大于或等于 5
OK 我们练习一下,用while打印九九乘法表:
乘法表看起来有点复杂,那么首先我们来实现乘法表的最后一横:
a = 1 while a <= 9: z = a*9 print(str(a)+"*"+str(9)+"="+str(z), end=" ") a += 1
print()输出完默认换行,end=" "表示输出完不换横且打印引号里的内容 这里引号内是空格 执行结果如下:
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
我们在循环外面再”嵌套“一层while语句就完成任务了(只可意会不可言传,仔细看思考分析其中的奥妙):
b = 1 while b <= 9: a = 1 while a <= b: z = 9*a print(str(a) + "*" + str(9) + "=" + str(z), end=" ") a += 1 b += 1 print()
结果不出所料:
1*9=9 1*9=9 2*9=18 1*9=9 2*9=18 3*9=27 1*9=9 2*9=18 3*9=27 4*9=36 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
下面来点有趣的 用前面所学的写一个游戏:坦克大战!
骗你的!
学这点知识还不够写出坦克大战的游戏,相信以后会的!
那么我们来玩一个猜数字的游戏 :事先确定一个幸运数字 键盘输入一个数字与之比较,猜错的话提醒是猜大了还是猜小了,如此猜对为止。
#猜数字 猜对为止 lucky_number = 666 guess_number = int(input("猜猜这个数字是多少:")) while guess_number != lucky_number: if guess_number > lucky_number: print("大了!") elif guess_number<lucky_number: print("小了!") guess_number = int(input("请重新输入:")) else: print("猜对了!,努力学习便可做出坦克大战的游戏!")
执行结果:
猜猜这个数字是多少:999 大了! 请重新输入:10 小了! 请重新输入:666 猜对了!,努力学习便可做出坦克大战的游戏!
for
Python的 for循环可以遍历任何序列的项目,如一个列表或者一个字符串。
for循环的一般格式如下:
for <variable> in <sequence>: <statements> else: <statements>
一个实例:
>>> languages = ["C", "java", "C++", "Python"] >>> for x in languages: ... print (x) ... C java C++ Python >>>
rang()函数:
如果你需要遍历数字序列,可以使用内置range()函数。它会生成数列,例如:
>>> for i in range(5): ... print(i) ... 0 1 2 3 4
你也可以使用range指定区间的值:
>>> for i in range(4,8) : print(i) 4 5 6 7 >>>
也可以使range以指定数字开始并指定不同的增量(甚至可以是负数,有时这也叫做'步长'):
>>> for i in range(0, 10, 3) : print(i) 0 3 6 9 >>>
负数:
>>> for i in range(-10, -100, -30) : print(i) -10 -40 -70 >>>
您可以结合range()和len()函数以遍历一个序列的索引,如下所示:(这里不懂的先不用看 等我们学会列表之后再回来看)
>>> a = ['iPhone', 'Sansung', 'Motorola', 'HTC', 'NOKIA'] >>> for i in range(len(a)): ... print(i, a[i]) ... 0 iPhone 1 Sansung 2 Motorola 3 HTC 4 NOKIA >>>
还可以使用range()函数来创建一个列表:
>>> list(range(5)) [0, 1, 2, 3, 4] >>>
break
break 语句可以跳出 for 和 while 的循环体。如果你从 for 或 while 循环中终止,任何对应的循环 else 块将不执行。 实例如下:
for letter in 'Runoob': # 第一个实例 if letter == 'b': break print ('当前字母为 :', letter) var = 10 # 第二个实例 while var > 0: print ('当期变量值为 :', var) var = var -1 if var == 5: break print ("Good bye!")
结果:
当前字母为 : R 当前字母为 : u 当前字母为 : n 当前字母为 : o 当前字母为 : o 当期变量值为 : 10 当期变量值为 : 9 当期变量值为 : 8 当期变量值为 : 7 当期变量值为 : 6 Good bye!
continue
continue语句被用来告诉Python跳过当前循环块中的剩余语句,然后继续进行下一轮循环。
for letter in 'Runoob': # 第一个实例 if letter == 'o': # 字母为 o 时跳过输出 continue print ('当前字母 :', letter) var = 10 # 第二个实例 while var > 0: var = var -1 if var == 5: # 变量为 5 时跳过输出 continue print ('当前变量值 :', var) print ("Good bye!")
结果:
当前字母 : R 当前字母 : u 当前字母 : n 当前字母 : b 当前变量值 : 9 当前变量值 : 8 当前变量值 : 7 当前变量值 : 6 当前变量值 : 4 当前变量值 : 3 当前变量值 : 2 当前变量值 : 1 当前变量值 : 0 Good bye!
Start_Learning_Python 03 条件、循环的更多相关文章
- [转帖]Linux教程(21)-Linux条件循环语句
Linux教程(21)-Linux条件循环语句 2018-08-24 16:49:03 钱婷婷 阅读数 60更多 分类专栏: Linux教程与操作 Linux教程与使用 版权声明:本文为博主原创文 ...
- python学习笔记2_条件循环和其他语句
一.条件循环和其他语句 1.print和import的更多信息. 1.1.使用逗号输出 //print() 打印多个表达式是可行的,用逗号隔开. 在脚本中,两个print语句想在一行输出 ...
- day04 if判断、while条件循环、for迭代器循环部分使用举例
一:if判断 1.成绩>=90,那么:优秀 如果成绩>=80且<90,那么:良好 如果成绩>=70且<80,那么:普通 其 ...
- 6.8 出口条件循环:do while
while循环和for循环都是入口条件循环,即在循环的每次迭代之前检查测试条件,所以有可能根本不执行循环体中的内容.C语言还有出口条件循环(exit-condition loop),即在循环的每次迭代 ...
- Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 7. 条件循环
条件循环能够让程序在条件成立时(即为真时)重复执行循环体中的语句.如果条件一直成立(即永远不会为假),则循环会一直进行下去,不会停止.如果初始时,条件不成立,则循环 1 次也不会执行.Python 中 ...
- Python之条件 循环和其他语句 2014-4-6
#条件 循环和其他语句 23:30pm-1:431.print和import的更多信息 使用逗号将多个表达式输出 >>> print 'age:',42 age: 42 >&g ...
- Python基础教程之第5章 条件, 循环和其它语句
Python 2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)] on win32 #Chapter 5 条件, 循环 ...
- Python笔记2----包、模块、库、条件循环
包.模块.库 包指的是 : 文件夹 模块和库就是.py文件. 其中,库是一些功能相同的模块的集合,其也是模块. 1.import 模块 2.form 库 import 模块 3.import 包.子包 ...
- JS流程控制语句 重复重复(for循环)语句结构: for(初始化变量;循环条件;循环迭代) { 循环语句 }
重复重复(for循环) 很多事情不只是做一次,要重复做.如打印10份试卷,每次打印一份,重复这个动作,直到打印完成.这些事情,我们使用循环语句来完成,循环语句,就是重复执行一段代码. for语句结构: ...
随机推荐
- merge
当两个DataFrame相加的时候,如果,其中一个不全则会相加产生NA,所以必须一次性将数据的索引索引确定下来,然后对所有数据重建索引然后,填充0,再相加.否则有数据的和没数据的相加结果都变为了NA, ...
- 假定CSomething是一个类,执行下面这些语句之后,内存里创建了____个CSomething对象。
CSomething a(); CSomething b(2); CSomething c[3]; CSomething &ra = b; CSomething d=b; CSomething ...
- sql server 时间小汇
SQL server DATE函数 (1)getdate 返回当前系统的日期和时间,精确到3毫秒 要求:获得系统的当前时间 语句:SELECT getdate() 执行结果: 注:getutcda ...
- jQuery 操作复选框(checkbox) attr checked不起作用
参考资料 http://www.paobuke.com/develop/javascript/pbk849.html 这天用到jQuery功能,想实现一个简单的复选框动态全选或全不选,结果测试发现 ...
- phpcms 完美实现 导航栏当前栏目高亮
我们在用phpcms做网站的时候,经常碰到导航栏高亮功能,或者侧栏高亮,这个会涉及到几个问题: .栏目列表页子栏目高亮判断,如果当前页面为子栏目,他的顶级栏目如果在导航栏也要高亮. .内容页高亮,这个 ...
- Linux系统安装及初始化(ubuntu14.04)
Windows 7下硬盘安装Ubuntu 14.04图文教程 Ubuntu 官方已经发布了正式版的 Ubuntu 14.04 LTS,并宣称这是为云计算准备的版本.该版本在云平台和伸缩环境的可靠性.性 ...
- sublime总结
自定义快捷键: preferences->key binding->user ctrl+d 删除行 ctrl+k 选中下一同名变量,alt+F3 选中全部同名变量 [ {"key ...
- 50个必备的实用jQuery代码段
本文会给你们展示50个jquery代码片段,这些代码能够给你的javascript项目提供帮助.其中的一些代码段是从jQuery1.4.2才开始支持的做法,另一些则是真正有用的函数或方法,他们能够帮助 ...
- Is WPFdead
最近看到一个bog.http://www.codeproject.com/Articles/818281/Is-WPF-dead-the-present-and-future-of-WPF 大体上讲了 ...
- 快速幂 fast_exp
long long fast_exp(int base,long long exp,int mod) { long long ans=1LL,a=base; ) { if(exp&1LL) a ...