青少年Python编程基础15天(第十四天)
上次课我们讲到了while循环语句,并且做了一个猜拳的小游戏。但是小明的爸爸晚上在玩小明做的猜拳游戏时运气不好,总是输给电脑,想不玩了但是无法退出,这怎么办呢?我们应该增加一个选项,“退出游戏的选项”,我们应该在people这一行的说明里面增加4,"退出游戏",像下面这样:
people = int(input("请您选择相应的数字:1:石头;2:剪刀;3:布; 4:退出游戏:"))
那么也就是说选择数字4并按回车键,就会退出游戏,我们应该改写while循环,当people不等于4的时候才进行循环,代码像下面这样:
while people != 4:
这样的话如果我们选择数字4,就不会进入while循环了,好了我们运行一下看看效果:
哇,出错了,提示我们people这个变量没有被定义,为什么呢?李雷你说说,......对的,因为程序是从上到下逐条读取代码执行的,当进行到第5行,while people != 4的时候,因为我们定义people这个变量是在这一行的下面,Python还没有读取到变量,所以会给出没有定义的提示.那么为了解决这个问题,我们先设一下people变量,先让它为空,我们在第四行添加people="",整体代码像下面这样:
import random # 引用random模块
x = (1,2,3) # 设置一个列表x
people = ""
while people != 4:
computer = random.choice(x) # 从列表x中随机选择一个数赋值给变量computer
people = int(input("请您选择相应的数字:1:石头;2:剪刀;3:布; 4:退出游戏:"))
if (computer == 1 and people == 2) or \
(computer == 2 and people == 3) or \
(computer == 3 and people == 1):
print("抱歉,您输了,请继续:")
elif computer == people:
print("挺好,平局,请继续:")
else:
print("恭喜你赢了比赛!")
break
好,这回Python在运行这个程序时,先看到空的people变量,然后在while循环中,再获取到用户输入的数值.
我们运行一下程序,然后选择数字4并按回车,看看什么效果:
好奇怪啊,为什么Python会从else那部分退出呢?是不是因为while等于4的原因啊所以它用break直接跳出了.我们得需要改写一下内容,添加一个elif,将people等于4的时候要打印"再见",整体代码像下面这样:
import random # 引用random模块
x = (1,2,3) # 设置一个列表x
people = ""
while people != 4:
computer = random.choice(x) # 从列表x中随机选择一个数赋值给变量computer
people = int(input("请您选择相应的数字:1:石头;2:剪刀;3:布; 4:退出游戏:"))
if (computer == 1 and people == 2) or \
(computer == 2 and people == 3) or \
(computer == 3 and people == 1):
print("抱歉,您输了,请继续:")
elif computer == people:
print("挺好,平局,请继续:")
elif people == 4:
print("再见!")
else:
print("恭喜你赢了比赛!")
break
好啦,这一次我们再选择4的时候就会出现"再见"的字样了.
那么今天我们讲什么内容呢?我们以前讲过python编程语言的容器:变量、列表、字典。它们一个比一个容量大,那么有没有比字典容量更大的呢?有的,那就是“函数”。准确的说,函数不是容器,因为它不仅仅包含元素,还能包含一组动作。比如变量,它包含的是一个元素,列表,包含的是多个元素,字典,包含的是多个带有说明的元素。那么如果我们想把上面的猜拳游戏中的代码包含进去,这些容器都解决不了了,于是,Python语言的开发者就想到了函数,那么函数怎么写呢?标准的格式是:def 然后加函数的名字,然后加一对小括号用来放参数,最后用冒号,函数里面的内容像if或者while语句一样,要缩进。代码像下面这样:
def hello():
print("你好")
好,那么我们想把猜拳游戏中的代码做成函数,以便将来方便使用,应该怎么做呢?只要在x=(1,2,3)的上一行加上def并且起个名字(我们叫它guess吧)就可以了,整体代码像下面这样:
import random # 引用random模块
def guess():
x = (1,2,3) # 设置一个列表x
people = ""
while people != 4:
computer = random.choice(x) # 从列表x中随机选择一个数赋值给变量computer
people = int(input("请您选择相应的数字:1:石头;2:剪刀;3:布; 4:退出游戏:"))
if (computer == 1 and people == 2) or \
(computer == 2 and people == 3) or \
(computer == 3 and people == 1):
print("抱歉,您输了,请继续:")
elif computer == people:
print("挺好,平局,请继续:")
elif people == 4:
print("再见!")
else:
print("恭喜你赢了比赛!")
break
好了,加上def guess后,下面所有代码都加缩进就可以了,如果不加缩进,Python会认为不加缩进的代码在函数外面运行,那样的话猜拳游戏就会出错了.
但是这个guess函数怎么运行呢?很简单,在程序的最后一行函数的外面添加guess()就可以运行了,完整的代码像下面这样:
import random # 引用random模块
def guess():
x = (1,2,3) # 设置一个列表x
people = ""
while people != 4:
computer = random.choice(x) # 从列表x中随机选择一个数赋值给变量computer
people = int(input("请您选择相应的数字:1:石头;2:剪刀;3:布; 4:退出游戏:"))
if (computer == 1 and people == 2) or \
(computer == 2 and people == 3) or \
(computer == 3 and people == 1):
print("抱歉,您输了,请继续:")
elif computer == people:
print("挺好,平局,请继续:")
elif people == 4:
print("再见!")
else:
print("恭喜你赢了比赛!")
break
guess()
我们现在按F5就能正常运行了,其实,函数的用法有很多,我们在暑假班的课程中,会讲解很多具体的实例.
那么今天的课程就讲到这里了,后的小练习是:把拜年的那个for循环程序做成函数,函数名字叫happy_new_year.

添加 家长论坛微信
全部 0条评论