鱼C论坛

 找回密码
 立即注册
查看: 2122|回复: 2

谁来帮我看下,为什么我的数据保存.是什么原因?

[复制链接]
发表于 2020-3-19 23:16:25 | 显示全部楼层 |阅读模式
10鱼币
本帖最后由 一个账号 于 2020-3-20 21:54 编辑
  1. import random,requests
  2. def ran_num():
  3.     url = 'https://python666.cn/cls/number/guess/'
  4.     r = requests.get(url)
  5.     return r.text

  6. def num_input():  # 强制用户输入数字
  7.     while True:
  8.         str = input("请猜一个1--100的整数字:")
  9.         if not str.isdigit():
  10.             print(f"你输入的{str}不符合游戏规则,请重新输入:")
  11.         elif int(str) not in range(1, 101):
  12.             print(f"你输入的{str}不在数值范围内,请重新输入:")
  13.         else:
  14.             return int(str)
  15. def guess_game(name,cishu,lunshu,ave_lun): #猜数据的主体程序,# 次数,轮数,平均轮次,每次猜中轮数
  16.     list1=[]#每次猜中轮数的集合
  17.     while True:
  18.         answer = int(ran_num()) #带入从网上获取的随机数
  19.         times = 0
  20.         cishu += 1
  21.         while True:
  22.             times += 1
  23.             lunshu += 1
  24.             b = num_input() #带入强制用户输入的数字
  25.             ave_lun = lunshu / cishu
  26.             if answer > b:
  27.                 print("小了,小了,再来")
  28.             elif answer < b:
  29.                 print("大了,大了,再来")
  30.             else:
  31.                 list1.append(times)
  32.                 kuai_lun = min(list1)
  33.                 print("ok,你一共猜了{}轮。".format(lunshu))
  34.                 print("{},你已经玩了{}次,最少{}猜出,平均{}猜出答案".format(name, cishu, kuai_lun, ave_lun))
  35.                 break

  36.         if input("y继续,其他退出") != ('Y' and 'y'):
  37.             print("退出游戏,下次再来")
  38.             break

  39. with open("game_many_user.txt" )as f:
  40.     lst_a = f.readlines()
  41.     dic_a = {}
  42.     list2 = []
  43.     for i in lst_a:
  44.         data = i.strip().split(" ")
  45.         list2.append(data[0])
  46.         # print(list2)  # 所有玩家名字的列表
  47.         # print(data) #这个是各个玩家数据的列表形式
  48.         # print(data[0], data[1:])
  49.         dic_a[data[0]] = data[1:]
  50.     print('dic_a:', dic_a)  # 玩家的数据形式将以字典结构呈现
  51. def main():
  52.     name = input("尊姓大名:")
  53.     if name in list2:
  54.         print("你已经玩了{}次,最少{}猜出答案,平均{}轮猜出.开始游戏吧".format(dic_a[name][0], dic_a[name][1], dic_a[name][2]))
  55.         cishu = int(dic_a[name][0])
  56.         lunshu = int(dic_a[name][1])
  57.         ave_lun = float(dic_a[name][2])
  58.         guess_game(name,cishu,lunshu,ave_lun)
  59.     else:
  60.         print(f"{name},已经玩了0次,最少0轮猜出答案,平均0轮猜出,开始游戏吧")
  61.         cishu = 0
  62.         lunshu = 0
  63.         ave_lun = 0
  64.         lst = []
  65.         guess_game(name,cishu,lunshu,ave_lun)
  66.     dic_a[name] = [str(cishu), str(lunshu), str(ave_lun)]
  67.     with open("game_many_user.txt", 'r+', encoding='utf-8') as f2:
  68.         for key in dic_a:
  69.             data_line = key + ' ' + ' '.join(dic_a[key]) + '\n'
  70.             f2.write(data_line)
  71. main()
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-3-19 23:17:01 | 显示全部楼层
数据没保存成功,不知道是什么原因
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-3-23 09:04:06 | 显示全部楼层
李白清洁球 发表于 2020-3-19 23:17
数据没保存成功,不知道是什么原因

你的 game_many_user.txt 里面是什么?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-9 08:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表