猜数字游戏(python,C++), 同一个类中的方法相互调用(两种办法)

  •  # random.randint(a, b),使用randint()函数,我们可以在一个指定的整数范围内生成一个随机整数。在使用该函数时,我们需要指定整数范围的上限和下限。该函数返回一个随机整数,其取值范围是[a,b],即包括a和b本身
  • # input接受一个参数,用于要向用户显示的提示或说明,包括但不限于字符串,整型数字;
  • # python的格式运算符与C,C++的格式运算符相似,但是python的变量前要加一个%,如果有多个变量还需要用圆括号将这几个变量括起来,并在括号前加一个%
  • # python中的逻辑运算符是用 and,or,not来表示的,而不是 &&, ||, ! 来表示

python代码,函数实现:

import randomdef start(l, h, num, cnt):
#从[l, h]中猜一个数,你有cnt次机会,num是用户猜测的数字Random = random.randint(1, (1 << 31) - 1 ) % (h-l) + 1 + l;
# random.randint(a, b)
# 使用randint()函数,我们可以在一个指定的整数范围内生成一个随机整数。在使用该函数时,我们需要指定整数范围的
# 上限和下限。该函数返回一个随机整数,其取值范围是[a,b],即包括a和b本身。while(1):if(Random > num):print("您的数字太小了,请再输入一个数")print("您还剩下 %d 次机会\n" %(cnt))num = int(input(""))# input接受一个参数,用于要向用户显示的提示或说明,包括但不限于字符串,整型数字;elif(Random < num):print("您的数字太大了,请再输入一个数")print("您还剩下 %d 次机会\n" %cnt)# python的格式运算符与C,C++的格式运算符相似,但是python的变量前要加一个%,如果有多个# 变量还需要用圆括号将这几个变量括起来,并在括号前加一个%num = int(input(""))else:print("恭喜您猜对了,游戏结束!\n")breakcnt -= 1if(cnt == 0):print("游戏失败!!!欢迎下次见面!\n")breakprint("欢迎来到游戏王国")
while(1):while(1):op = input("请选择您的游戏难度:\nsimple or medium or hard")if(op == "simple"):print("请您在 1~50 中选择一个数:")num = int(input(""))start(0,50,num,9)elif( op == "medium"):print("请您在 51~500 中选择一个数:")num = int(input(""))start(50,500,num,9)elif(op == "hard"):print("请您在 501~1000 中选择一个数:")num = int(input(""))start(500,1000,num,9)else:print("您的选择错误:您只能在 simple or medium or hard 中选择:")if op == "simple" or op == "medium" or op == "hard" :break# python中的逻辑运算符是用 and,or,not来表示的,而不是 &&, ||, ! 来表示print("您是不是觉得这个游戏太有趣了!您还想继续玩这个游戏吗?")str = input("请您输入yes or no :")if(str == "yes" or str == "YES" or str == "Yes" or str == "YEs"):print("好的,咱们继续:\n")else:print("好的,很期待与您的下一次见面,祝您生活愉快!!!\n")break

python代码,将函数封装在一个类中实现:

# 同一个类中的方法相互调用,一是可以用 self.方法名()  
# 同一个类中的方法相互调用,二是可以用 类名.方法名()
# 同一个类中的方法相互调用,一是可以用 类名.方法名(self, ) 
# 当用类名.方法名时,加不加self参数都可

# 类实现:
import random
# 引进random模块class NumGame:def __init__(self, name, id):self.name = nameself.id = id;
"""为该数字游戏类增添两个属性,姓名以及id号"""def start(self, l, h, num, cnt):#从[l, h]中猜一个数,你有cnt次机会,num是用户猜测的数字Random = random.randint(1, (1 << 31) - 1 ) % (h-l) + 1 + l;# random.randint(a, b)# 使用randint()函数,我们可以在一个指定的整数范围内生成一个随机整数。在使用该函数时,我们需要指定整数范围的# 上限和下限。该函数返回一个随机整数,其取值范围是[a,b],即包括a和b本身。while(1):if(Random > num):print(f"{self.name} 您的数字太小了,请再输入一个数")print(f"{self.name} 您还剩下 %d 次机会\n" %(cnt))num = int(input(""))# input接受一个参数,用于要向用户显示的提示或说明,包括但不限于字符串,整型数字;elif(Random < num):print(f"{self.name} 您的数字太大了,请再输入一个数")print(f"{self.name} 您还剩下 %d 次机会\n" %cnt)# python的格式运算符与C,C++的格式运算符相似,但是python的变量前要加一个%,如果有多个# 变量还需要用圆括号将这几个变量括起来,并在括号前加一个%num = int(input(""))else:print("恭喜您猜对了,游戏结束!\n")breakcnt -= 1if(cnt == 0):print("游戏失败!!!欢迎下次见面!\n")breakdef start_game(self):print(f"{self.name} 欢迎来到游戏王国")while(1):while(1):op = input("请选择您的游戏难度:\nsimple or medium or hard")if(op == "simple"):print("请您在 1~50 中选择一个数:")num = int(input(""))self.start(0,50,num,9)
# 同一个类中的方法相互调用,一是可以用 self.方法名()  elif( op == "medium"):print("请您在 51~500 中选择一个数:")num = int(input(""))NumGame.start(50,500,num,9)
# 同一个类中的方法相互调用,二是可以用 类名.方法名()elif(op == "hard"):print("请您在 501~1000 中选择一个数:")num = int(input(""))NumGame.start(self, 500,1000,num,9)
# 同一个类中的方法相互调用,一是可以用 类名.方法名(self, ) 
# 当用类名.方法名时,加不加self参数都可else:print("您的选择错误:您只能在 simple or medium or hard 中选择:")if op == "simple" or op == "medium" or op == "hard" :break# python中的逻辑运算符是用 and,or,not来表示的,而不是 &&, ||, ! 来表示print("您是不是觉得这个游戏太有趣了!您还想继续玩这个游戏吗?")str = input("请您输入yes or no :")if(str == "yes" or str == "YES" or str == "Yes" or str == "YEs"):print("好的,咱们继续:\n")else:print("好的,很期待与您的下一次见面,祝您生活愉快!!!\n")breakming = NumGame("小明", "10086")
ming.start_game()

C++代码:

#include <iostream>
#include <stdlib.h>
#include <ctime>using namespace std;void start(int l,int h,int num,int cnt)
{srand((unsigned) time(NULL));int Random = rand() % (h-l) + 1 + l;while(1){if(Random > num){puts("您的数字太小了,请再输入一个数");printf("您还剩下 %d 次机会\n",cnt);cin >> num;}else if(Random < num){puts("您的数字太大了,请再输入一个数");printf("您还剩下 %d 次机会\n",cnt);cin >> num;}else{puts("恭喜您猜对了,游戏结束!\n");break;}--cnt;if(cnt == 0){puts("游戏失败!!!欢迎下次见面!\n");break;}}
}int main()
{puts("欢迎来到游戏王国");string op;while(1){do{puts("请选择您的游戏难度:\nsimple or medium or hard");cin >> op;int num;if(op == "simple"){puts("请您在 1~50 中选择一个数:");cin >> num;start(0,50,num,9);}else if( op == "medium"){puts("请您在 51~500 中选择一个数:");cin >> num;start(50,500,num,9);}else if(op == "hard"){puts("请您在 501~1000 中选择一个数:");cin >> num;start(500,1000,num,9);}elseputs("您的选择错误:您只能在 simple or medium or hard 中选择:");}while(op != "simple" && op != "medium" && op != "hard");string str;puts("您是不是觉得这个游戏太有趣了!您还想继续玩这个游戏吗?");puts("请您输入yes or no :");cin >> str;if(str == "yes" || str == "YES" || str == "Yes" || str == "YEs")puts("好的,咱们继续:\n");else{puts("好的,很期待与您的下一次见面,祝您生活愉快!!!\n");break;}}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/596903.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从vue小白到高手,从一个内容管理网站开始实战开发第六天,登录功能后台功能设计--API项目中的登录实现(一)

从vue小白到高手,从一个内容管理网站开始实战开发第五天,登录功能后台功能设计--数据库与API项目-CSDN博客文章浏览阅读348次,点赞9次,收藏7次。本次文章主要讲了开发后台API项目给前台vue调用的话,需要使用的数据库并新建数据库和表、安装开发工具、如何创建API项目以及A…

IOC解决程序耦合

1.什么是IOC IOC (Inverse of Control)即控制反转&#xff1a;由ioc容器来创建依赖对象&#xff0c;程序只需要从IOC容器获取创建好的对象。 我们在获取对象时&#xff0c;都是采用new的方式。是主动的。 我们获取对象时&#xff0c;同时跟工厂要&#xff0c;有工厂为我们查找…

RH850从0搭建Autosar开发环境【51】- Davinci Configurator拓展之手动添加Can接收与发送报文(上)

Davinci Configurator拓展之手动添加Can接收与发送报文 一、EcuC模块1.添加Rx PDU2.添加Tx PDU二、CAN模块1.添加CanHardwareObject_MyRx2.添加CanHardwareObject_MyTx三、CANIF模块1.创建Hth2.创建Hrh3.创建Buffer4.创建RxPdu5.创建TxPdu总结各位兄弟不好意思鸽了这么久,后面…

面试经典150题(65-66)

leetcode 150道题 计划花两个月时候刷完&#xff0c;今天&#xff08;第三十一天&#xff09;完成了2道(65-66)150&#xff1a; 65.&#xff08;106. 从中序与后序遍历序列构造二叉树&#xff09;题目描述&#xff1a; 给定两个整数数组 inorder 和 postorder &#xff0c;其…

Impala-查询Kudu表详解(超详细)

文章目录 前言一、使用Impala查询kudu表介绍1. 使用Impala与Kudu表的好处2. 配置Impala以使用Kudu3. Kudu副本因子 二、Impala DDL增强功能1. Kudu表的主键列2. Kudu表特定的列属性1. 主键属性2. NULL | NOT NULL属性3. DEFAULT属性4. ENCODING属性5. COMPRESSION属性6. BLOCK_…

Linux之IP地址、主机名、域名解析

一、IP地址 可以通过ifconfig命令查看本机的ip地址&#xff0c;如果无法使用ifconfig命令&#xff0c;可以安装 安装&#xff1a;yum -y install net-tools ens33&#xff1a;主网卡&#xff0c;里面的inet就是ip地址 lo&#xff1a;本地回环网卡&#xff0c;127.0.0.1&…

Apache Doris (六十): Doris - 物化视图

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你学编程的个人空间-豹哥教你学编程个人主页-哔哩哔哩视频 目录

OpenHarmony—开发环境搭建

背景 因为没有实体的开发硬件&#xff0c;且不想破坏原有的Linux环境&#xff0c;所以这里基于 Docker QEMU 搭建开发环境 宿主机Linux系统命令行方式DockerQEMU 6.2 Docker环境准备 安装Docker 在Ubuntu中&#xff0c;可以使用下面的命令来安装Docker&#xff1a; sudo …

考研复试复习-算法笔记(1前言)

1、PAT Programming Ability Test,是考察计算机程序设计能力的一个考试&#xff0c;分为三级&#xff0c;顶级将涉及到大量ACM-ICPC竞赛的考点 今年春季的话截止时间为 2024 年 2 月 29 日 23:59&#xff0c;要是考研没考上的兄弟姐妹们可以考虑以下这个&#xff0c;这个等级证…

androidStudio sync failed GradlePropertiesModel (V2)

大家在增加模块的时候经常遇到吧&#xff1f;重启后就好了。 Cannot get GradlePropertiesModel (V2) for project ‘GradleProject{path’:app’}’ 然而&#xff0c;今天开机以后&#xff0c;无论如何&#xff0c;点击gradle的大象图标(Sync Project with Gradle Files)&…

详细解读QLC SSD无效编程问题-4

对于这些全部页面被无效化的WL&#xff0c;执行第二次编程实际上是不必要的&#xff0c;但当前的策略并未注意到这一问题。而对于那些既有有效页面又有无效页面&#xff08;图11中显示为1到3个&#xff09;的WL&#xff0c;应当被编程&#xff0c;但可以利用这些无效信息来改进…

springboot实现用户操作日志记录

springboot实现用户操作日志记录 简介&#xff1a;之前写了《aop实现日志持久化记录》一文&#xff0c;主要介绍自定义aop标注方法上&#xff0c;通过切面方法对用户操作插入mysql。思路正确但是实际操作上存在一些小问题&#xff0c;本文将从项目出发&#xff0c;对细节进行补…

UE5.1_Python使用1

UE5.1_Python使用1 目录 UE5.1_Python使用1 1. 问题及链接: 2. 使用: UE5-Python依赖:

【JaveWeb教程】(2)Web前端基础:JavaScript入门不再难:一篇文章教你轻松搞定JavaScript的基础语法与函数

目录 1 介绍2 引入方式3 基础语法3.1 书写语法3.2 变量3.3 数据类型和运算符 4 函数4.1 第一种定义格式4.2 第二种定义格式 html完成了架子&#xff0c;css做了美化&#xff0c;但是网页是死的&#xff0c;我们需要给他注入灵魂&#xff0c;所以接下来我们需要学习JavaScript&a…

普通用户用哪款电脑杀毒软件最好?

前言 各位小伙伴接触到电脑的时候&#xff0c;都一定有听过“电脑一定要安装杀毒软件”这句话。 毕竟在电脑诞生之初到今天&#xff0c;电脑木马和病毒依旧存在。 中了木马或病毒的电脑会出现什么现象&#xff1f;具体得看中了什么样的病毒。 但轻则资料泄漏、电脑瘫痪&…

生成式AI:重塑开发流程与开发工具的革命性

生成式AI&#xff1a;重塑开发流程与开发工具 1. 自动化代码生成&#xff1a;提高开发效率2. 智能需求分析&#xff1a;准确理解用户需求3. 实时测试与优化&#xff1a;提高软件质量与稳定性4. 总结 随着人工智能技术的飞速发展&#xff0c;生成式AI已经逐渐成为软件开发领域的…

SSL/TLS 握手过程详解

SSL握手过程详解 1、SSL/TLS 历史发展2、SSL/TLS握手过程概览2.1、协商交换密码套件和参数2.2、验证一方或双方的身份2.3、创建/交换对称会话密钥 3、TLS 1.2 握手过程详解4、TLS 1.3 握手过程详解5、The TLS 1.2 handshake – Diffie-Hellman Edition 1、SSL/TLS 历史发展 可…

自然语言转SQL,一个微调ChatGPT3.5的实例(下)--模型微调及模型性能

提交训练集进行微调 一旦我们创建了JSONL文件&#xff08;可以在这里或ipfs_here找到一个小样本&#xff09;&#xff0c;下一步是使用以下命令将创建的文件上传到OpenAI&#xff1a; openai.api_key os.getenv("OPENAI_API_KEY") print(openai.File.create(fileo…

【水浸传感器】软硬件一体水浸监测整套方案远程监测解决各种环境漏水问题

一、痛点分析 在工业生产中&#xff0c;水浸传感器可以安装在数据中心、半导体厂房、输油管道、车间仓库、变电室等易发生水浸的区域。一旦检测到漏水情况&#xff0c;立即发出信号反馈。然而&#xff0c;水浸传感器分散在各个地点&#xff0c;导致管理不集中、不便捷&#xf…

Fiber Golang 中的路由和中间件

掌握 GoLang Fiber 中的路由和中间件艺术&#xff0c;以进行高效的 Web 开发 在网络开发领域中&#xff0c;创建一个有效地路由和管理各种任务的 Web 应用程序至关重要。路由决定了如何处理传入的请求&#xff0c;而中间件在执行任务&#xff0c;如身份验证、日志记录和请求解…