当前位置: 首页 > 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的封装,项目还是有点难度的,大家不要轻视。下节课,我们会进行项目的实战,大家做好准备。
最后,别忘了一圈三连,点个关注哦!

相关文章:

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

文章目录 前言一、复习一、函数实战之——if语句特殊系统1.判断等第分数&#xff08;函数名为mark&#xff08;参数num&#xff09;&#xff09;2.石头剪刀布判断程序 二、练习总结 前言 Hello&#xff0c;大家好&#xff0c;我是你们的BoBo仔&#xff0c;感谢你们来阅读我的文…...

vue3 之 商城项目—home

home—整体结构搭建 根据上面五个模块建目录图如下&#xff1a; home/index.vue <script setup> import HomeCategory from ./components/HomeCategory.vue import HomeBanner from ./components/HomeBanner.vue import HomeNew from ./components/HomeNew.vue import…...

git flow与分支管理

git flow与分支管理 一、git flow是什么二、分支管理1、主分支Master2、开发分支Develop3、临时性分支功能分支预发布分支修补bug分支 三、分支管理最佳实践1、分支名义规划2、环境与分支3、分支图 四、git flow缺点 一、git flow是什么 Git 作为一个源码管理系统&#xff0c;…...

【Linux】学习-进程信号

进程信号 信号入门 生活角度的信号 你在网上买了很多件商品,再等待不同商品快递的到来。但即便快递没有到来,你也知道快递来临时,你该怎么处理快递。也就是你能“识别快递”,也就是你意识里是知道如果这时候快递员送来了你的包裹,你知道该如何处理这些包裹当快递员到了你…...

webgis后端安卓系统部署攻略

目录 前言 一、将后端项目编译ARM64 二、安卓手机安装termux 1.更换为国内源 2.安装ssh远程访问 3.安装文件远程访问 三、安装postgis数据库 1.安装数据库 2.数据库配置 3.数据导入 四、后端项目部署 五、自启动设置 总结 前言 因为之前一直做的H5APP开发&#xf…...

【数据分享】1929-2023年全球站点的逐日平均风速数据(Shp\Excel\免费获取)

气象数据是在各项研究中都经常使用的数据&#xff0c;气象指标包括气温、风速、降水、能见度等指标&#xff0c;说到气象数据&#xff0c;最详细的气象数据是具体到气象监测站点的数据&#xff01; 有关气象指标的监测站点数据&#xff0c;之前我们分享过1929-2023年全球气象站…...

【多模态大模型】视觉大模型SAM:如何使模型能够处理任意图像的分割任务?

SAM&#xff1a;如何使模型能够处理任意图像的分割任务&#xff1f; 核心思想起始问题: 如何使模型能够处理任意图像的分割任务&#xff1f;5why分析5so分析 总结子问题1: 如何编码输入图像以适应分割任务&#xff1f;子问题2: 如何处理各种形式的分割提示&#xff1f;子问题3:…...

Shell之sed

sed是什么 Linux sed 命令是利用脚本来处理文本文件。 可依照脚本的指令来处理、编辑文本文件。主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。 sed命令详解 语法 sed [-hnV][-e <script>][-f<script文件>][文本文件] sed [-nefr] [动作…...

AJAX——认识URL

1 什么是URL&#xff1f; 统一资源定位符&#xff08;英语&#xff1a;Uniform Resource Locator&#xff0c;缩写&#xff1a;URL&#xff0c;或称统一资源定位器、定位地址、URL地址&#xff09;俗称网页地址&#xff0c;简称网址&#xff0c;是因特网上标准的资源的地址&…...

《Docker极简教程》--Docker环境的搭建--在Linux上搭建Docker环境

更新系统&#xff1a;首先确保所有的包管理器都是最新的。对于基于Debian的系统&#xff08;如Ubuntu&#xff09;&#xff0c;可以使用以下命令&#xff1a;sudo apt-get update sudo apt-get upgrade安装必要的依赖项&#xff1a;安装一些必要的工具&#xff0c;比如ca-certi…...

开源微服务平台框架的特点是什么?

借助什么平台的力量&#xff0c;可以让企业实现高效率的流程化办公&#xff1f;低代码技术平台是近些年来较为流行的平台产品&#xff0c;可以帮助很多行业进入流程化办公新时代&#xff0c;做好数据管理工作&#xff0c;从而提升企业市场竞争力。流辰信息专业研发低代码技术平…...

C#系列-C#操作UDP发送接收数据(10)

在C#中&#xff0c;发送UDP数据并接收响应通常涉及创建两个UdpClient实例&#xff1a;一个用于发送数据&#xff0c;另一个用于接收响应。以下是发送UDP数据并接收响应的示例代码&#xff1a; 首先&#xff0c;我们需要定义一个方法来发送UDP数据&#xff0c;并等待接收服务器…...

突破编程_C++_面试(基础知识(10))

面试题29&#xff1a;什么是嵌套类&#xff0c;它有什么作用 嵌套类指的是在一个类的内部定义的另一个类。嵌套类可以作为外部类的一个成员&#xff0c;但它与其声明类型紧密关联&#xff0c;不应被用作通用类型。嵌套类可以访问外部类的所有成员&#xff0c;包括私有成员&…...

初步探索Pyglet库:打造轻量级多媒体与游戏开发利器

目录 pyglet库 功能特点 安装和导入 安装 导入 基本代码框架 导入模块 创建窗口 创建控件 定义事件 运行应用 程序界面 运行结果 完整代码 标签控件 常用事件 窗口事件 鼠标事件 键盘事件 文本事件 其它场景 网页标签 音乐播放 图片显示 祝大家新…...

【npm】安装全局包,使用时提示:不是内部或外部命令,也不是可运行的程序或批处理文件

问题 如图&#xff0c;明明安装Vue是全局包&#xff0c;但是使用时却提示&#xff1a; 解决办法 使用以下命令任意一种命令查看全局包的配置路径 npm root -g 然后将此路径&#xff08;不包括node_modules&#xff09;添加到环境变量中去&#xff0c;这里注意&#xff0c;原…...

Go 语言 for 的用法

For statements 本文简单翻译了 Go 语言中 for 的三种用法&#xff0c;可快速学习 Go 语言 for 的使用方法&#xff0c;希望本文能为你解开一些关于 for 的疑惑。详细内容可见文档 For statements。 For statements with single condition 在最简单的形式中&#xff0c;只要…...

熵权法Python代码实现

文章目录 前言代码数据熵权法代码结果 前言 熵权法做实证的好像很爱用&#xff0c;matlab的已经实现过了&#xff0c;但是matlab太大了早就删了&#xff0c;所以搞一搞python实现的&#xff0c;操作空间还比较大 代码 数据 import pandas as pd data [[100,90,100,84,90,1…...

浏览器提示ERR_SSL_KEY_USAGE_INCOMPATIBLE解决

ERR_SSL_KEY_USAGE_INCOMPATIBLE报错原因 ERR_SSL_KEY_USAGE_INCOMPATIBLE 错误通常发生在使用 SSL/TLS 连接时,指的是客户端和服务器之间进行安全通信尝试失败,原因是证书中的密钥用途(Key Usage)或扩展密钥用途(Extended Key Usage, EKU)与正在尝试的操作不兼容。这意味…...

使用深度学习进行“序列到序列”分类

目录 加载序列数据 定义 LSTM 网络架构 测试 LSTM 网络 此示例说明如何使用长短期记忆 (LSTM) 网络对序列数据的每个时间步进行分类。 要训练深度神经网络以对序列数据的每个时间步进行分类,可以使用“序列到序列”LSTM 网络。通过“序列到序列”LSTM 网络,可以对…...

Python和Java的区别(不断更新)

主要通过几个方面区分Python和Java&#xff0c;让大家有一个对比&#xff1a; 语言类型 Java是一种静态类型、编译型语言。 Python是一种动态类型、解释型语言&#xff0c;注重简洁和灵活的语法。 语法 在Java中&#xff0c;变量需要显式地声明&#xff0c;指定其类型。例如&am…...

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

synchronized 学习

学习源&#xff1a; https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖&#xff0c;也要考虑性能问题&#xff08;场景&#xff09; 2.常见面试问题&#xff1a; sync出…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

springboot 百货中心供应链管理系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;百货中心供应链管理系统被用户普遍使用&#xff0c;为方…...

简易版抽奖活动的设计技术方案

1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

PHP和Node.js哪个更爽?

先说结论&#xff0c;rust完胜。 php&#xff1a;laravel&#xff0c;swoole&#xff0c;webman&#xff0c;最开始在苏宁的时候写了几年php&#xff0c;当时觉得php真的是世界上最好的语言&#xff0c;因为当初活在舒适圈里&#xff0c;不愿意跳出来&#xff0c;就好比当初活在…...

条件运算符

C中的三目运算符&#xff08;也称条件运算符&#xff0c;英文&#xff1a;ternary operator&#xff09;是一种简洁的条件选择语句&#xff0c;语法如下&#xff1a; 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true&#xff0c;则整个表达式的结果为“表达式1”…...

系统设计 --- MongoDB亿级数据查询优化策略

系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log&#xff0c;共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题&#xff0c;不能使用ELK只能使用…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章&#xff1f;AI自动生成&#xff0c;效率提升10倍&#xff01; 支持多语言、自动配图、定时发布&#xff0c;让内容创作更轻松&#xff01; AI内容生成 → 不想每天写文章&#xff1f;AI一键生成高质量内容&#xff01;多语言支持 → 跨境电商必备&am…...

12.找到字符串中所有字母异位词

&#x1f9e0; 题目解析 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义&#xff1a; 若两个字符串包含的字符种类和出现次数完全相同&#xff0c;顺序无所谓&#xff0c;则互为…...