设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 11121|回复: 3
打印 上一主题 下一主题

关于赋值的逻辑问题

[复制链接]

6

主题

2

好友

654

积分

实习版主

Rank: 7Rank: 7Rank: 7

楼主
发表于 2017-12-18 14:22:19 |显示全部楼层
可以把初始的mintimes设置个比较大的值比如100,  保证第一次作比较是第一次游戏的times比它小就好了
回复

使用道具 举报

6

主题

2

好友

654

积分

实习版主

Rank: 7Rank: 7Rank: 7

沙发
发表于 2017-12-18 16:10:23 |显示全部楼层
pylearner 发表于 2017-12-18 15:29
谢谢,您说的确实是方法,但是这样初始的是最少玩100次 不符合实际啊.

你显示的时候可以不显示初始值为100啊。。 mintime是记录玩的最小值的,它的初始值本身就是没有意义的。。 你可以在初始值定义的时候还是0,只在下面开始第一此比较的时候把它的值换成100 来完成第一次的比较赋值,并不会显示在输出或记录文件中。。
回复

使用道具 举报

6

主题

2

好友

654

积分

实习版主

Rank: 7Rank: 7Rank: 7

板凳
发表于 2017-12-19 09:28:29 |显示全部楼层
pylearner 发表于 2017-12-19 02:34
谢谢! 但是我不明白放在哪里让这个mintimes = 100 只执行一次.

from random import randint
f = open('c:\python\game.txt')
score = f.read().split()
f.close()
gametimes = int(score[0])
mintimes   = int (score[1])
totaltimes = int (score[2])
if gametimes > 0:
     avgtimes = totaltimes / gametimes
else:
     avgtimes =0
print('你完了%d次,最少%d轮猜出,平均%.3f猜出答案'%(
gametimes, mintimes, avgtimes))

num = randint (1,10)
times = 0
print("开始猜")
bingo = False
while bingo == False:
       times += 1
       answer = int(input ())
       if answer < num:
           print ('small')
       if answer == num:
           print ('bingo')
           bingo = True
       if answer > num:
           print('big')
totaltimes += times
gametimes +=1
if mintimes==0:
      mintimes = 100

if gametimes == 0 or times < mintimes :
      mintimes = times
result = '%d %d %d'%(gametimes, mintimes, totaltimes)

f = open ('c:\python\game.txt','w')
f.write (result)
f.close()
回复

使用道具 举报

6

主题

2

好友

654

积分

实习版主

Rank: 7Rank: 7Rank: 7

地板
发表于 2017-12-19 15:41:35 |显示全部楼层
pylearner 发表于 2017-12-19 02:34
谢谢! 但是我不明白放在哪里让这个mintimes = 100 只执行一次.

不对欸 它这个条件语句里面不是已经有个 if gametimes==0了么。。 这个不就可以保证第一次的时候 把玩的结果直接赋给mintimes了么。。 也不用再设大值什么的了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-5-30 18:56 , Processed in 0.023494 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部