前言
目前为止,我们写的Python代码都是一条一条语句顺序执行,这种代码结构通常称之为顺序结构。然而仅有顺序结构并不能解决所有的问题,为了解决不同条件创造的不同结果,需要使用分支结构,循环,判断等......
一、分支结构
在Python中,要构造分支结构可以使用if
、elif
和else
关键字。
在上一篇我们了解了变量、赋值、基本函数的使用,为了熟悉分支结构,这里做个简单举例。
# 用户验证
require = input('请在B站输入用户名: ')
target = input('请完成操作: ')
# 用户名是早盦呀且目标是要求点赞、投币、收藏,如果成功会得到UP主的祝福与赞扬否则也请下次一定!
if require == '早盦呀' and target == '点赞':
print('你真是个天才!')
else:
print('请下次一定!')
例子中只使用了
if
、else
,表示简单的判断,注意书写规范,if
与else
后要加:
(此案例源于一个不会英语的up主的心声)
image.png
实际操作还是要按照代码要求才能执行哦!
使用简易流程图表示:
image.png
二、循环结构
如果在程序中需要我们重复的执行某条或某些指令,我们可以使用循环语句来代替人工去操作,摆脱单调枯燥的工作!
在Python中构造循环结构有两种做法,一种是for-in
循环,一种是while
循环。
-
for-in循环
例:用for循环实现1~100求和
sum = 0
for x in range(101):
sum += x
print(sum)
![](https://img.haomeiwen.com/i18109062/565ce6e24dcf339a.png)
计算机很轻松计算出我们要的结果
-
while循环
如果要构造不知道具体循环次数的循环结构,我们推荐使用while
循环。
这里列举了一个优秀工程师骆昊的代码,目前我可能写不出这样的例子,但要能看懂!
例子:
"""
猜数字游戏
计算机出一个1~100之间的随机数由人来猜
计算机根据人猜的数字分别给出提示大一点/小一点/猜对了
Version: 0.1
Author: 骆昊
"""
import random
answer = random.randint(1, 100)
counter = 0
while True:
counter += 1
number = int(input('请输入: '))
if number < answer:
print('大一点')
elif number > answer:
print('小一点')
else:
print('恭喜你猜对了!')
break
print('你总共猜了%d次' % counter)
if counter > 7:
print('你的智商余额明显不足')
-
导图梳理:
Python判断与循环.png
三、函数与模块
上一篇中简单介绍了一些基础性的函数,至于模块,先简单理解为“工具包”吧,在Python中我们要导入某模块要使用import
在下面的案例中我们要使用第一个模块——random(生成随机数)
在使用前要先导入模块 import random
在导入后我们执行:
random.
然后按下tab会自动显示模块,我们需要随机整数的模块也就是random.randint
random.randint(a,b) 表示返回a与b之间的整数,包含a 与 b
![](https://img.haomeiwen.com/i18109062/96f705540d2287fb.png)
四、应用案例-石头剪刀布
要求:
1.控制台输入要出的拳--石头(1)/剪刀(2)/布(3)
2.电脑随机出拳
3.比较胜负
代码功能都是一步一步实现的,在我们还不是很了解模块的情况下,不太知道随机这个功能怎么来实现,所以我们先假定电脑现在只会出石头
- 1.石头剪刀布.py第一版
# 1.控制台输入要出的拳--石头(1)/剪刀(2)/布(3)
player = int(input("请输入你要出的拳 石头(1)/剪刀(2)/布(3):"))
# 2.电脑现在只会出拳头
computer = 1
print("玩家选择的是 %d - 电脑选择的是 %d" % (player,computer))
# 3.比较胜负
# 先简单写出胜利的所有条件
# 为了代码美观方便查看,我们可以在if的判断条件加一组()然后把条件分行
if ((player == 1 and computer == 2)
or (player == 2 and computer == 3)
or (player == 3 and computer == 1)):
print("欧耶!电脑弱爆了!")
# 写出平局的情况
elif player == computer:
print("哎呦不错啊,我们再来")
# 剩下的就是玩家输掉的情况
else:
print("不服,我们决战到天亮!")
![](https://img.haomeiwen.com/i18109062/e5f61a28fd6aac1b.png)
写完后要对判断是否成立做好测试!
- 2.石头剪刀布.py第二版
使用随机数模块让电脑随机出拳
# 导入模块
import random
# 控制台输入要出的拳--石头(1)/剪刀(2)/布(3)
player = int(input("请输入你要出的拳 石头(1)/剪刀(2)/布(3):"))
# 电脑随机出拳头
computer = random.randint(1,3)
print("玩家选择的是 %d - 电脑选择的是 %d" % (player,computer))
# 比较胜负
# 先简单写出胜利的所有条件
if ((player == 1 and computer == 2)
or (player == 2 and computer == 3)
or (player == 3 and computer == 1)):
print("欧耶!电脑弱爆了!")
# 写出平局的情况
elif player == computer:
print("哎呦不错啊,我们再来")
# 剩下的就是玩家输掉的情况
else:
print("不服,我们决战到天亮!")
执行下验证不同的结果
![](https://img.haomeiwen.com/i18109062/26fa382acdf09695.png)
网友评论