难 好多知识点都不懂 不懂的问题后面再来问 先帮测试一下哪里出错了
import sys
from datetime import datetime
from random import random
def guide_page(guide_word):
print("{0}{1}{2}".format('*'* 15, guide_word, '*'* 15))
def all_num(n):
# 运用isdigit()函数判断输入的是否为数字并返回结果
return n.isdigit()
def num_legal(ls):
# 取出序列值比较
# 若两者相等
ls_int =list(map(int,ls))
if int(int[0]) == int(int[1]):
# 提示玩家重新启动程序
# 退出程序
sys.exit()
# 数字区间起始值大于终止值
elif int(int[0]) > int(int[1]):
# 提示玩家重新启动程序
print("你输入的数字期间大小有误!!请重新启动程序:")
sys.exit()
# 反之 则返回值为1
else:
return 1
def set_final_num(num1, num2): # 设置两个参数用于接收用户所输入区间的起始值和终止值
ls = [num1, num2] # 其保存到列表里
ls = list(filter(all_num, ls)) # 利用内置函数filter()及思路分析2中的all_num(n)过滤以确保输入值全部为数字
if num_legal(ls) == 2: # 若全部为数字
if num_legal(ls) == 1: # 调有自定义等值判断函数,判断输入值是否相等
return random.randint(int(num1), int(num2)) # 运用random模块 返回产生区间的随机数
# 反之则提示玩家输入的为非数字字符,请重新启动
else:
print("你输入的为非数字字符,请重新启动!")
sys.exit()
def check_num_legal(num):
# 利用条件语句判读输入数值是否在指定的区间内
if num < int(i) or num > int(j):
print("对不起你输入的数字未在指定的区间内:")
return True
else:
return False
def wiite_record(times, value): # 设置参数接受玩家猜测的次数(times)和本次猜测的次数的具体数字(value)
# 使用with语法操作日志文件 将获取到的参数和时间以追加方式写入日志文件
f.write("{d}:第{t}次你猜测的数字为:{v}\n".format(d=datetime.datetime.now(), t=times, v=value))
def main(rand1):
temp = rand1 # 设置变量temp接收已产生的随机数
times = 0 # 记录猜测数字的次数
while True: # 设置无限循环
num = int(input("请输入你要猜测个数字:")) # 提示用户输入所猜测数字,并转换为int类型
print('**********')
if check_num_legal(num): # if判断核查数值函数,如果为真跳过本次循环
continue
# 使用if语句判断用户猜测的数字,相等,大于,小于的情况
if num == temp:
times += 1
wiite_record(times, num) # 测的数字调有日志写入函数,传入猜测的次数和用户猜测的数字
print('恭喜你!只用了{}次就赢得了游戏'.format(times))
break
elif num > temp:
times += 1
wiite_record(times, num) # 调有日志写入函数,传入猜测的次数和用户猜测的数字
print('Higher than the answer')
else:
times += 1
wiite_record(times, num) # 调有日志写入函数,传入猜测的次数和用户猜测的数字
print('Higher than the answer')
if __name__ == "__main__":
# 调用guide_page()输出如图效果图所示的标题信息
guide_page('欢迎进入数字猜猜小游戏')
# 设置两个变量(i,j)分别接受用户输入数字区间的起始值和终止值
i = input('数字区间的起始值:')
j = input('数字区间的终止值:')
# 调用set_final_num()函数得到随机数
rand1 = set_final_num(num1=i, num2=j)
# 调用main()函数执行程序流程
main(rand1)
正在回答
同学,你好。上面的截图是根据同学提供的代码改的,同学只需要按照上面的截图更改即可,如果需要代码,如下:
import sys from datetime import datetime # from random import random import random def guide_page(guide_word): print("{0}{1}{2}".format('*'* 15, guide_word, '*'* 15)) def all_num(n): # 运用isdigit()函数判断输入的是否为数字并返回结果 return n.isdigit() def num_legal(ls): # 取出序列值比较 # 若两者相等 ls_int =list(map(int,ls)) # if int(int[0]) == int(int[1]): if int(ls_int[0]) == int(ls_int[1]): # 提示玩家重新启动程序 print("你输入的数字期间大小相等!!请重新启动程序:") # 退出程序 sys.exit() # 数字区间起始值大于终止值 # elif int(int[0]) > int(int[1]): elif int(ls_int[0]) > int(ls_int[1]): # 提示玩家重新启动程序 print("你输入的数字期间大小有误!!请重新启动程序:") sys.exit() # 反之 则返回值为1 else: return 1 def set_final_num(num1, num2): # 设置两个参数用于接收用户所输入区间的起始值和终止值 ls = [num1, num2] # 其保存到列表里 ls = list(filter(all_num, ls)) # 利用内置函数filter()及思路分析2中的all_num(n)过滤以确保输入值全部为数字 # if num_legal(ls) == 2: # 若全部为数字 if len(ls) == 2: # 若全部为数字 if num_legal(ls) == 1: # 调有自定义等值判断函数,判断输入值是否相等 # return random.randint(int(num1), int(num2)) # 运用random模块 返回产生区间的随机数 return random.randrange(int(num1), int(num2)) # 运用random模块 返回产生区间的随机数 # 反之则提示玩家输入的为非数字字符,请重新启动 else: print("你输入的为非数字字符,请重新启动!") sys.exit() def check_num_legal(num): # 利用条件语句判读输入数值是否在指定的区间内 if num < int(i) or num > int(j): print("对不起你输入的数字未在指定的区间内:") return True else: return False def wiite_record(times, value): # 设置参数接受玩家猜测的次数(times)和本次猜测的次数的具体数字(value) # 使用with语法操作日志文件 将获取到的参数和时间以追加方式写入日志文件 with open('record.txt', 'a+', encoding='UTF-8') as f: # f.write("{d}:第{t}次你猜测的数字为:{v}\n".format(d=datetime.datetime.now(), t=times, v=value)) f.write("{d}:第{t}次你猜测的数字为:{v}\n".format(d=datetime.now(), t=times, v=value)) def main(rand1): temp = rand1 # 设置变量temp接收已产生的随机数 times = 0 # 记录猜测数字的次数 while True: # 设置无限循环 num = int(input("请输入你要猜测个数字:")) # 提示用户输入所猜测数字,并转换为int类型 print('**********') if check_num_legal(num): # if判断核查数值函数,如果为真跳过本次循环 continue # 使用if语句判断用户猜测的数字,相等,大于,小于的情况 if num == temp: times += 1 wiite_record(times, num) # 测的数字调有日志写入函数,传入猜测的次数和用户猜测的数字 print('恭喜你!只用了{}次就赢得了游戏'.format(times)) break elif num > temp: times += 1 wiite_record(times, num) # 调有日志写入函数,传入猜测的次数和用户猜测的数字 print('Higher than the answer') else: times += 1 wiite_record(times, num) # 调有日志写入函数,传入猜测的次数和用户猜测的数字 # print('Higher than the answer') print('Lower than the answer') if __name__ == "__main__": # 调用guide_page()输出如图效果图所示的标题信息 guide_page('欢迎进入数字猜猜小游戏') # 设置两个变量(i,j)分别接受用户输入数字区间的起始值和终止值 i = input('数字区间的起始值:') j = input('数字区间的终止值:') # 调用set_final_num()函数得到随机数 rand1 = set_final_num(num1=i, num2=j) # 调用main()函数执行程序流程 main(rand1)
同学可参考此代码,在理解的基础上做出进一步的优化,争取自己尝试着修改,对同学编程的能力提高才会有帮助。
祝学习愉快~
- 参与学习 人
- 提交作业 2727 份
- 解答问题 8160 个
想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星