第6章 学习笔记
简介
Python代码在执行时是按照自上向下顺序执行的。
通过流程控制语句,可以改变程序的执行顺序,也可以让指定的程序反复执行多次
流程控制语句分成两大类:条件判断语句,循环语句
条件判断语句(if语句)
--语法: if 条件表达式 :语句
--执行流程:if语句在执行时,会先对条件表达式进行求值判断,如果为True,则执行if后面的语句,如果为False,则不执行。
--默认情况下,if语句只会控制紧随其后的那条语句,如果希望if可以控制多条语句,则可以在if后跟一个代码块。
语法:if 条件表达式 :
代码块
--代码块中保存着一组代码,同一个代码块中的代码,要么执行要么都不执行;
代码块是就是一种为代码分组的机制;
如果要编写代码块,语句不能紧随在:后边,而是要写在下一行;
代码块以缩进(缩进有两种方式:一种是使用Tab键;一种是使用(4个)空格;python官方文档用的四个空格开始,直到代码恢复到之前的缩进级别时结束;
---可以使用逻辑运算符来连接多个条件;
如果需要所有条件同时满足,则用and;如果希望只有一个条件满足即可,则须使用or;
------input()函数(用来获取用户的输入)
-input()调用后,程序会立即停止,等待用户输入;
-用户输入完内容后,点击回车程序才会继续向下执行;
-用户输入完内容后,其所输入的内容会以返回值的形式返回;
【注意】:input()的返回值是一个字符串(所以如果我们想对数字大小进行比较的时候,一定要考虑类型转换!!!)
例:a=input()
if a>5 :
print('max=',a)
此时会报错,因为a的返回值是字符串,是不可以直接和5比大小的
正确改法:a=int(input())或者if int(a)>5或者a=input()
a=int(a)
-input()函数中可以设置一个字符串作为参数,这个字符串会作为提示文字显示;
例:a=input('请输入任意内容:')
-input可以用于暂时阻止程序结束;
##if-else语句
-语法:
if 条件表达式 :
代码块
else :
代码块
-执行流程:
if-else语句执行时,先对if后的条件表达式进行求值判断,如果为True,则执行if后的代码块;如果为False,则执行else后的代码块;
##if-elif-else语句(else可省略)
-语法:
if 条件表达式 :
代码块
elif 条件表达式 :
代码块
elif 条件表达式 :
代码块
elif 条件表达式 :
代码块
else :
代码块
-执行流程:
if-elif-else语句在执行时,会自上而下依次对条件表达式进行求值判断,如果条件表达式的结果为True,则执行当前代码,然后语句结束;如果表达式的结果为False,则继续向下判断,直到找到True为止;如果所有的表达式都是False,则执行else后的代码块。
-if-elif-else中只会有一个代码块执行
练习1:
编写一个程序,获取一个用户输入的整数。然后通过程序显示这个数是奇数还是偶数。
练习2:
编写一个程序,检查任意一个年份是否是闰年。
如果一个年份可以被4整除不能被100整除,或者可以被400整除,这个年份就是闰年
练习3:
我家的狗5岁了,5岁的狗相当于多大年龄的人呢?
其实非常简单,狗的前两年每一年相当于人类的10.5岁,然后每增加一年就增加四岁。
那么5岁的狗相等于人类的年龄就应该是10.5+10.5+4+4+4 = 33岁
编写一个程序,获取用户输入的狗的年龄,然后通过程序显示其相当于人类的年龄。
如果用户输入负数,请显示一个提示信息
练习4:
从键盘输入小明的期末成绩:
当成绩为100时,'奖励一辆BMW'
当成绩为[80-99]时,'奖励一台iphone'
当成绩为[60-79]时,'奖励一本参考书'
其他时,什么奖励也没有
练习5:
大家都知道,男大当婚,女大当嫁。那么女方家长要嫁女儿,当然要提出一定的条件:
高:180cm以上; 富:1000万以上; 帅:500以上;
如果这三个条件同时满足,则:'我一定要嫁给他'
如果三个条件有为真的情况,则:'嫁吧,比上不足,比下有余。'
如果三个条件都不满足,则:'不嫁!'
循环语句
--print()自带换行功能;
--python语句中的 end=''是为末尾end传递一个空字符串,这样print函数不会在字符串末尾添加一个换行符,而是添加一个空字符串,其实这也是一个语法要求,表示这个语句没结束;
--print默认是打印一行,结尾加换行。end=' '意思是末尾不换行,加空格;
例: i=0
while i<5 :
j=i
while j<5 :
print('* ',end='')
j+=1
print()
i+=1
最后打印出来的结果为 * * * * *
* * * *
* * *
* *
*
--循环语句可以使指定的代码块重复指定的次数;
--循环语句分为两种,while循环 和 for循环;
--while循环:
--语法:
while 条件表达式 :
代码块
else :
代码块
--执行流程:while语句在执行时,会先对while后的条件表达式进行求值判断,如果判断结果为True,则执行循环体(代码块),循环体执行完毕后,继续对条件表达式进行求值判断,以此类推,直到判断循环结果问False,则循环终止;如果循环有对应的else,则执行else后的代码块。
--条件表达式恒为True的循环称为死循环,他会一直运行下去,慎用!
--循环的三个条件(表达式)
(1)初始化表达式,通过初始化表达式初始化一个变量;
i=0
(2)条件表达式,用来设置执行循环的条件;
while i<10 :
print(i)
(3)更新表达式,修改初始化变量的值;
i+=1;
练习1:
求100以内所有的奇数之和
练习2:
求100以内所有7的倍数之和,以及个数
练习3:
水仙花数是指一个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身(例如:1**3 + 5**3 + 3**3 = 153)。
求1000以内所有的水仙花数
练习4:
获取用户输入的任意数,判断其是否是质数。质数是只能被1和它自身整除的数,1不是质数也不是合数。
循环嵌套
练习1:
打印99乘法表
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
... 9*9=81
练习2:
求100以内所有的质数
break 与continue
--break---可用来立刻退出循环语句(包括else)
例:i=0
while i<=4 :
if i==3 :
break
print(i)
i+=1
else :
print('循环结束')
最后输出为 0
1
2
--continue可用来跳过当次循环
例:
i=0
while i<=4 :
i+=1
if i==3 :
continue
print(i)
else :
print('循环结束')
最后的输出为 1
2
4
5
循环结束
--break和continue都只是对最近的循环起作用;
--pass只是用来在判断或循环语句中占位的;
例:
i=1
if i<5 :
pass
模块
可以通过引入模块对python进行扩充;
引入一个time模块,来统计程序执行的时间;
from time import *
time函数可用来获取当前的时间,返回的单位是秒;
例:
from time import *
begin=time()
i=0
while i<=4 :
print(i)
i+=1
end=time()
print(end-begin)
小游戏 《唐僧大战白骨精》
1、身份选择
① 显示提示信息
欢迎光临 xxx 游戏!
请选择你的身份:
1.xxx
2.xxx
请选择:x
② 根据用户选择来分配身份(显示不同的提示消息)
1.---
2.---
3.---
2、游戏进行
① 显示玩家的基本信息(攻击力 生命值)
② 显示玩家可以进行的操作:
1、练级
- 提升玩家的攻击力和生命值
2、打BOSS
- 玩家对BOSS进行攻击,玩家要攻击BOSS,BOSS对玩家进行反击
- 计算BOSS是否被玩家消灭,玩家是否被BOSS消灭
- 游戏结束
3、逃跑
- 退出游戏,显示提示信息,游戏结束!