|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 b
    else:
        return a
    
print(max_s(1,3))

一个是最小值

def min_s(a, b):
    if a > b:
        return b
    else:
        return a

print(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 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

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

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

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

def mark(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

mark_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.mfbz.cn/a/382830.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux--基础开发工具篇(2)(vim)(配置白名单sudo)

目录 前言 1. vim 1.1vim的基本概念 1.2vim的基本操作 1.3vim命令模式命令集 1.4vim底行命令 1.5 异常问题 1.6 批量注释和批量去注释 1.7解决普通用户无法sudo的问题 1.8简单vim配置 前言 在前面我们学习了yum&#xff0c;也就是Linux系统的应用商店 Linux--基础开…

专业135+总400+中国科学院大学859国科大信号与系统考研经验电子信息与通信,真题,大纲,参考书

今年考研专业课859信号与系统135&#xff0c;总分400上岸国科大&#xff0c;总结一下自己这一年的复习经验&#xff0c;希望对后面报考中科院大学的同学有所帮助。 专业课&#xff1a; 国科大不同研究所都是统一命题&#xff0c;859信号与系统的参考书目是郑君里的《信号与系…

windows 下安装gin

go install 执行命令&#xff0c;执行不了的参考一下 https://blog.csdn.net/weixin_42592326/article/details/135946806 Golang 中没法下载第三方包解决办法-CSDN博客 go install github.com/gin-gonic/ginlatest 还是安装不了的话&#xff0c;用手机开热点&#xff0c;电…

73. 矩阵置零(Java)

目录 题目描述&#xff1a;输入&#xff1a;输出&#xff1a;代码实现&#xff1a; 题目描述&#xff1a; 给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 输入&#xff1a; matrix [[1,1,1],[1,0,…

react函数组件中使用context

效果 1.在父组件中创建一个createcontext并将他导出 import React, { createContext } from react import Bpp from ./Bpp import Cpp from ./Cpp export let MyContext createContext(我是组件B) export let Ccontext createContext(我是组件C)export default function App…

Hive正则表达式

Hive版本&#xff1a;hive-3.1.2 一、Hive的正则表达式概述 正则表达式是一种用于匹配和操作文本的强大工具&#xff0c;它是由一系列字符和特殊字符组成的模式&#xff0c;用于描述要匹配的文本模式。 Hive的正则表达式灵活使用解决HQL开发过程中的很多问题&#xff0c;本篇文…

08-OpenFeign-结合Sentinel,实现熔断降级

当我们在对服务远程调用时&#xff0c;会因为服务的请求超时、抛出异常等情况&#xff0c;导致调用失败。 如果短时间内&#xff0c;产生大量请求异常。引发上游的调用方请求积压&#xff0c;最终会引起整个调用链雪崩。 为此我们需要对核心的调用过程进行监控&#xff0c;当…

自适应二次元404页面源码

自适应二次元404页面源码&#xff0c;HTMLCSSJS,喜欢二次元的朋友可以下载使用 蓝奏云&#xff1a;https://wfr.lanzout.com/iuPNQ1ns7dxg

数据结构——6.2 图的存储与基本操作

6.2 图的存储与基本操作 概念 图的存储 邻接矩阵存有向图和无向图 根据邻接矩阵求度&#xff1a; 无向图&#xff1a;第i个结点的度 第i行 (或第列) 的非零元素个数 有向图&#xff1a; 第i个结点的出度 第i行的非零元素个数 第i个结点的入度 第i列的非零元素个数 第i个结…

刘谦春晚纸牌魔术背后的数学—海明码原理简介

在昨天2024年的春晚舞台上&#xff0c;魔术大师刘谦以一场令人拍案叫绝的纸牌魔术再度震撼全场。他巧妙地利用了数学原理&#xff0c;精准无误地让观众“随机”选择的纸牌完成了配对&#xff0c;尤其是令人忍俊不禁的是主持人尼格买提的纸牌却没有如愿配对&#xff0c;小尼碎了…

Linux操作系统基础(七):Linux常见命令(二)

文章目录 Linux常见命令&#xff08;二&#xff09; 一、kill命令 二、ifconfig命令 三、clear命令 四、重启与关机命令 五、which命令 六、hostname命令 七、grep命令 八、|管道 九、useradd命令 十、userdel命令 十一、tar命令 十二、su命令 十三、ps命令 Linu…

最适合新手的SpringBoot+SSM项目《苍穹外卖》实战—(一)项目概述

黑马程序员最新Java项目实战《苍穹外卖》&#xff0c;最适合新手的SpringBootSSM的企业级Java项目实战。 项目简介 《苍穹外卖》项目的定位是一款为餐饮企业&#xff08;餐厅、饭店&#xff09;定制的软件产品。该项目是一个在线外卖订购系统&#xff0c;顾客可以通过网站或者…

CSP-202009-2-风险人群筛查

CSP-202009-2-风险人群筛查 解题思路 检查是否经过高危区 (x > x1) && (x < x2) && (y > y1) && (y < y2) 检查坐标是否在高危区域内&#xff0c; !isPassed 确保仅在第一次经过高危区域时增加 pass 计数。如果条件成立&#xff0c;表示…

第3集《佛说四十二章经》

和尚尼慈悲、诸位法师、诸位同学&#xff0c;阿弥陀佛&#xff01; 请大家打开讲议第四面&#xff0c;三、随文释义。 前面讲到本经的修学纲要是顿渐兼收&#xff0c;理事无碍。本经的修学有两个主题&#xff1a; (一)顿教法门&#xff1a; 顿教法门是一种智慧的观照。修学…

【人工智能教育】“奇幻森林里的决战:小明‘剑’指期末,勇闯试卷迷宫

在智慧校园的奇幻乐园中&#xff0c;教育的故事不再局限于传统的粉笔与黑板&#xff0c;而是跃然于光影之间&#xff0c;流淌于数据之海。小明和他的同学们正是这个新世界的探险者&#xff0c;他们手握名为“智能辅导助手”的魔法棒&#xff0c;勇闯知识的迷宫。每当他们在力学…

Linux进程间通信(IPC)

要想进程间通信&#xff0c;数据交换&#xff0c;必须通过内核&#xff1b; 一个进程将数据写到内核&#xff0c;然后另一个进程从内核读走数据。 IPC&#xff1a;进程间通信&#xff08;interprocess communication) 通信方式&#xff1a; 管道信号共享映射区&#xff08;…

【知识整理】技术新人的培养计划

一、培养计划落地实操 1. 概要 新人入职&#xff0c;要给予适当的指导&#xff0c;目标&#xff1a; 1、熟悉当前环境&#xff1a; 生活环境&#xff1a;吃饭、交通、住宿、娱乐 工作环境&#xff1a;使用的工具&#xff0c;Mac、maven、git、idea 等 2、熟悉并掌握工作技…

【机器学习】单变量线性回归

文章目录 线性回归模型&#xff08;linear regression model&#xff09;损失/代价函数&#xff08;cost function&#xff09;——均方误差&#xff08;mean squared error&#xff09;梯度下降算法&#xff08;gradient descent algorithm&#xff09;参数&#xff08;parame…

基于Linux的HTTP代理服务器搭建与配置实战

在数字化世界中&#xff0c;HTTP代理服务器扮演着至关重要的角色&#xff0c;它们能够帮助我们管理网络请求、提高访问速度&#xff0c;甚至在某些情况下还能保护我们的隐私。而Linux系统&#xff0c;凭借其强大的功能和灵活性&#xff0c;成为了搭建HTTP代理服务器的理想选择。…

I2C基础协议详解

串口是传感器、外设常用的接口&#xff0c;在低速器件中可以通过串口传输数据。高速复杂的器件&#xff0c;往往内部存在很多寄存器&#xff0c;这些寄存器的配置一般也是采用串口通信&#xff0c;可以节省IO口。 常用串口大致分为UART、IIC、SPI三种&#xff0c;其中IIC时序稍…