当前位置: 首页 > news >正文

|Python新手小白低级教程|第二十章:函数(2)【包括石头剪刀布判断程序(模拟版)】

文章目录

  • 前言
  • 一、复习
  • 一、函数实战之——if语句特殊系统
    • 1.判断等第分数(函数名为mark(参数num))
    • 2.石头剪刀布判断程序
  • 二、练习
  • 总结

前言

Hello,大家好,我是你们的BoBo仔,感谢你们来阅读我的文章!今天,我们在上节课的基础上,会更加深入地学习函数。如果对上节课印象模糊的,别忘了阅读上一期的文章哦!

上一章文章内容如下:
https://editor.csdn.net/md/?articleId=136090124

一、复习

上节课,我们学习了函数封装,让我们浅浅的复习一下。
首先,用于新建函数、封装函数的关键字是def关键字,首先是格式:

def 函数(参数,参数):语句return 参数

上节课我们做了两个例子,一个是最大值

def max_s(a,b):if a < b:return belse:return aprint(max_s(1,3))

一个是最小值

def min_s(a, b):if a > b:return belse:return aprint(min_s(1, 3))

我们了解这俩函数的原理之后,有做了许多项目。
今天,我们要学会封装更多函数。

一、函数实战之——if语句特殊系统

1.判断等第分数(函数名为mark(参数num))

这个程序我们已经做了n遍,所以大家应该是非常熟悉了,我们直接搬上源代码
https://editor.csdn.net/md/?articleId=135768858
我们直接上源代码

mark = 84
if mark >= 91:print("A")
if mark >= 76 and mark <= 89:print("B")
if mark >= 60 and mark <= 75:print("C")
if mark <= 59:print("D")

这是我们的初级程序。
我们要把他们封装为函数,首先得把def和函数名加上

def mark(num):

这两个写完之后,接下来就是上面一大坨
我们首先得返回,用return。
提示:把print化为return时要注意:最好不要直接转字符串,先设计几个基础变量。

mark = 84
if mark >= 91:a = 'A'return a
if mark >= 76 and mark <= 89:b = 'B'return b
if mark >= 60 and mark <= 75:c = 'C'return c
if mark <= 59:d = 'D'return d

我们再仔细改改,把mark的值删掉,把if里的比较量全部改为num

if num >= 91:a = 'A'return a
if num >= 76 and num <= 89:b = 'B'return b
if num >= 60 and num <= 75:c = 'C'return c
if num <= 59:d = 'D'return d

到这里,封装的细节过程就结束了,我们直接封装起来。

def mark(num):if num >= 91:a = 'A'return aif num >= 76 and num <= 89:b = 'B'return bif num >= 60 and num <= 75:c = 'C'return cif num <= 59:d = 'D'return d

这就是封装的所有过程了。
接下来就是正文,我们先设置一个输入变量。

mark_num = int(input('输入考试分数:'))
print(mark(mark_num))

这是我们要做的正文部分,接下来就是合并了。

def mark(num):if num >= 91:a = 'A'return aif num >= 76 and num <= 89:b = 'B'return bif num >= 60 and num <= 75:c = 'C'return cif num <= 59:d = 'D'return dmark_num = int(input('输入考试分数:'))
print(mark(mark_num))

这就是全过程了,怎么样,你做对了么?

2.石头剪刀布判断程序

【提示:该程序VS使用者建议不要学习,因为VS没有中文库】
众所周知,有一种游戏叫做石头剪刀布,它是靠判断来决出胜负的。
首先是规则:
石头<布
布<剪刀
剪刀<石头

了解规则之后,我们要制作程序了。
我们没有学过random库,所以我们只能做一个简单的输入程序。
首先,我们别急着封装函数,我们先想想,我们可以怎么模拟这个程序。

首先,我们设两个变量。

a = str(input('输入手势1'))
b = str(input('输入手势2'))

这两个变量设好之后,我们就是给石头、剪刀、布给予特殊表示方式了。
我们可以设石头为h0,设剪刀为h1,设布为h2。

h0 = '石头'
h1 = '剪刀'
h2 = '布'

OK,接下来就是想想if语句怎么写
首先,是如果同时出现石头和布,那么一定是布赢。但是因为有可能两种位置会调换,所以我们要写出3*2种情况。
根据这个思路,我们会写出这些代码:

a = str(input('输入手势1'))
b = str(input('输入手势2'))
h0 = '石头'
h1 = '剪刀'
h2 = '布'if a == h0 and b == h1:print('a胜利')
elif a == h1 and b == h0:print('b胜利')
elif a == h0 and b == h2:print('b胜利')
elif a == h2 and b == h0:print('a胜利')
elif a == h1 and b == h2:print('a胜利')
elif a == h2 and b == h1:print('b胜利')

当然,不排除平局哈
我们直接写:

elif a == h0 and b == h0:print('平局')
elif a == h1 and b == h1:print('平局')
elif a == h2 and b == h2:print('平局')

OK,核心内容到此结束,接下来就是封装和整理。
首先,我们新建一个函数,暂且叫他

game(h0,h1,h2)

然后把上面的种种条件插入def

def game(h0,h1,h2):a = str(input('输入手势1'))b = str(input('输入手势2'))h0 = '石头'h1 = '剪刀'h2 = '布'if a == h0 and b == h1:print('a胜利')elif a == h1 and b == h0:print('b胜利')elif a == h0 and b == h2:print('b胜利')elif a == h2 and b == h0:print('a胜利')elif a == h1 and b == h2:print('a胜利')elif a == h2 and b == h1:print('b胜利')elif a == h0 and b == h0:print('平局')elif a == h1 and b == h1:print('平局')elif a == h2 and b == h2:print('平局')

啊,好累呀~~~~
接下来,我们直接用程序
因为我们把好多东西扔进了函数封装里。
完整代码如下:

def game(a, b):h0 = '石头'h1 = '剪刀'h2 = '布'if a == h0 and b == h1:print('a胜利')elif a == h1 and b == h0:print('b胜利')elif a == h0 and b == h2:print('b胜利')elif a == h2 and b == h0:print('a胜利')elif a == h1 and b == h2:print('a胜利')elif a == h2 and b == h1:print('b胜利')elif a == h0 and b == h0:print('平局')elif a == h1 and b == h1:print('平局')elif a == h2 and b == h2:print('平局')a = str(input('输入手势1'))
b = str(input('输入手势2'))
game(a, b)

我在里面懒得写return了。
OK,如此工程到此完结!啊,好累~~~~

二、练习

今天的篇幅已经够长了,这代码未必有点恶心。现在,我们来浅浅休息一下,做1道小题目吧!

题目:判断闰年

用户输入年份year, 判断是否为闰年?
( year能被4整除但是不能被100整除 或者 year能被400整除, 那么就是闰年)

答案……我们下期揭晓!

总结

这节课我们学习了if的封装,项目还是有点难度的,大家不要轻视。下节课,我们会进行项目的实战,大家做好准备。
最后,别忘了一圈三连,点个关注哦!

http://www.lryc.cn/news/297686.html

相关文章:

  • vue3 之 商城项目—home
  • git flow与分支管理
  • 【Linux】学习-进程信号
  • webgis后端安卓系统部署攻略
  • 【数据分享】1929-2023年全球站点的逐日平均风速数据(Shp\Excel\免费获取)
  • 【多模态大模型】视觉大模型SAM:如何使模型能够处理任意图像的分割任务?
  • Shell之sed
  • AJAX——认识URL
  • 《Docker极简教程》--Docker环境的搭建--在Linux上搭建Docker环境
  • 开源微服务平台框架的特点是什么?
  • C#系列-C#操作UDP发送接收数据(10)
  • 突破编程_C++_面试(基础知识(10))
  • 初步探索Pyglet库:打造轻量级多媒体与游戏开发利器
  • 【npm】安装全局包,使用时提示:不是内部或外部命令,也不是可运行的程序或批处理文件
  • Go 语言 for 的用法
  • 熵权法Python代码实现
  • 浏览器提示ERR_SSL_KEY_USAGE_INCOMPATIBLE解决
  • 使用深度学习进行“序列到序列”分类
  • Python和Java的区别(不断更新)
  • Ubuntu22.04 gnome-builder gnome C 应用程序习练笔记(三)
  • vue electron 应用在windows系统上以管理员权限打开应用
  • c实现链表
  • 力扣231. 2 的幂(数学,二分查找,位运算)
  • Maven私服部署与JAR文件本地安装
  • 【MySQL】字符串函数的学习
  • AI助力农作物自动采摘,基于YOLOv5全系列【n/s/m/l/x】参数模型开发构建作番茄采摘场景下番茄成熟度检测识别计数分析系统
  • 记录下ibus-libpinyin输入法的重新安装
  • 第三百一十八回
  • 破除Github API接口的访问次数限制
  • 蓝桥杯嵌入式第8届真题(完成) STM32G431