数字猜猜猜还请帮忙完善
#coding='utf-8'
import logging
import random
import sys
from datetime import datetime
class Games:
def guide_page(self,guide_word):
guide_word='欢迎进入数字猜猜猜小游戏'
return '*****************%s************************'%guide_word
def all_num(self,n):
n=input('请继续输入您猜测的数字:')
print(n.isdigit())
def num_legal(self,ls):
self.ls=ls
if int(ls[0])==int(ls[-1]):
print('您输入的区间数字相同,重新启动程序')
elif int(ls[0])>int(ls[-1]):
print('您输入的起始区间大于终止区间,请重新输入')
else:
return 1
sys.exit()
def set_final_num(self,num1,num2):
i=input('数字区间起始值:')
j=input('数字区间终止值:')
num3 = list[num1, num2]
print('所产生的随机数字区间为:%s' % num3)
return num3
def write_record(self,times,value):
logging.basicConfig(level='DEBUG',format='%(asctime)s%(message)s',filename='record.txt',filemode='w')
def check_num_legal(self,num):
#判断所输入得值是否在指定区间
if int(num)<int(self.ls[0]) or int(num)>int(self.ls[-1]):
print('对不起您输入得数字未在指定区域')
return 1
def main(self,rand1):
temp=0
while True:
pass
if __name__=='__main__':
s=Games()
print(s.guide_page(guide_word='欢迎进入数字猜猜猜小游戏'))
s.set_final_num(input('数字区间起始值:'),input('数字区间终止值:'))
s.all_num(input('请继续输入您猜测的数字:'))
s.num_legal()
s.check_num_legal()
12
收起
正在回答 回答被采纳积分+1
1回答
好帮手慕念
2021-08-04 13:05:30
同学,你好!可以参考下面的注释和代码
#coding='utf-8'
import logging
import random
import sys
from datetime import datetime
class Games:
def guide_page(self,guide_word):
# guide_word='欢迎进入数字猜猜猜小游戏'
return '*****************%s************************'%guide_word
def all_num(self,n):
# n=input('请继续输入您猜测的数字:')
# print(n.isdigit())
# 返回其判定结果
return n.isdigit()
def num_legal(self,ls):
self.ls=ls
if int(ls[0])==int(ls[-1]):
print('您输入的区间数字相同,重新启动程序')
elif int(ls[0])>int(ls[-1]):
# print('您输入的起始区间大于终止区间,请重新输入')
print('您输入的数字区间大小有误! !请重新启动程序。')
else:
return 1
sys.exit()
def set_final_num(self,num1,num2):
# i=input('数字区间起始值:')
# j=input('数字区间终止值:')
# num3 = list[num1, num2]
# 利用内置函数filter()及all_num(n)过滤以确保输入值全部为数字
num_range = list(filter(self.all_num,[num1, num2]))
# print('所产生的随机数字区间为:%s' % num3)
# return num3
if len(num_range) == 2:
l = self.num_legal(num_range)
if l:
# 提示所输入的数字 以及 游戏区间
print('所产生的随机数字区间为:{0}'.format(num_range))
return random.randrange(int(num1), int(num2))
else:
print('您所输入的为非数字字符,请重新启动!')
sys.exit()
def write_record(self,times,value):
# logging.basicConfig(level='DEBUG',format='%(asctime)s%(message)s',filename='record.txt',filemode='w')
# 根据datetime模块获取玩家进行每一次猜测数字输入的时间
now = datetime.now()
logging.basicConfig(
level=logging.DEBUG,
format='%(message)s',
filename='record.txt',
# 将获取到的参数和时间信息以追加方式写入日志文件
filemode='a'
)
return logging.info(f'{now}:第{times}次您猜测的数字为:{value}')
def check_num_legal(self,num):
#判断所输入得值是否在指定区间
if int(num)<int(self.ls[0]) or int(num)>int(self.ls[-1]):
print('对不起您输入得数字未在指定区域')
return 1
def main(self,rand1):
temp=0
while True:
# pass
guess_num = input('请继续输入您猜测的数字:')
# 判断是否为数字类型
if self.all_num(guess_num):
# 转换为int 类型
guess_num = int(guess_num)
else:
print('您所输入的为非数字字符!!请重新输入')
if self.check_num_legal(guess_num):
# 如果数字未在指定区间,跳过本次循环,继续下一轮循环
continue
else:
temp += 1
# 传入次数temp guess_num 数字
self.write_record(temp, guess_num)
# 猜测数字与随机数字的大小比较
print('*' * 18)
if guess_num < rand1:
print('Lower than the answer')
elif guess_num > rand1:
print('Higher than the answer')
else:
print('恭喜您!只用了{0}次就赢得了游戏'.format(temp))
break
if __name__=='__main__':
s=Games()
print(s.guide_page(guide_word='欢迎进入数字猜猜猜小游戏'))
# s.set_final_num(input('数字区间起始值:'),input('数字区间终止值:'))
# s.all_num(input('请继续输入您猜测的数字:'))
# s.num_legal()
# s.check_num_legal()
i=input('数字区间起始值:')
j=input('数字区间终止值:')
rand = s.set_final_num(i, j)
s.main(rand)
祝学习愉快!
Python全能工程师
- 参与学习 人
- 提交作业 16233 份
- 解答问题 4470 个
全新版本覆盖5大热门就业方向:Web全栈、爬虫、数据分析、软件测试、人工智能,零基础进击Python全能型工程师,从大厂挑人到我挑大厂,诱人薪资在前方!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星