青少年Python编程基础15天(第十四天)

梁老师
梁老师 北京小升初老师~

0 人点赞了该文章 · 57 浏览




上次课我们讲到了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# 设置一个列表xpeople = ""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) # 设置一个列表xpeople = ""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("恭喜你赢了比赛!") breakguess()

我们现在按F5就能正常运行了,其实,函数的用法有很多,我们在暑假班的课程中,会讲解很多具体的实例.

那么今天的课程就讲到这里了,后的小练习是:把拜年的那个for循环程序做成函数,函数名字叫happy_new_year.


图片


添加 家长论坛微信 



发布于 2024-04-25 09:21

免责声明:

本文由 梁老师 原创发布于 家长帮 ,著作权归作者所有。

登录一下,更多精彩内容等你发现,贡献精彩回答,参与评论互动

登录! 还没有账号?去注册

暂无评论

广告
All Rights Reserved Powered BY WeCenter V4.1.0 © 2025 京ICP备20005761号-2