找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 4437|回复: 9

[求助] 测试代码纠错

2

主题

7

帖子

7

积分

贫民

积分
7
食货志 发表于 2018-4-19 20:36:45 | 显示全部楼层 |阅读模式
如题:下面代码中,while guess !=secret and tries<6: 在实际跑程序时,为随机次数,并不是给定的6次。求解。

import random
secret=random.randint(1,99)
guess=0
tries=0
print"Ahoy!I'm the Dread Pirate Roberts,and I have a secrect!"
print"It's a number from 1 to 99. I'll give you 6 tries."
while guess !=secret and tries<6:
    guess=input("what's yer guess?")
    if guess<secret:
       print"too low, ye scurvy dog!"
    elif guess>secret:
        print "too high, landlubber!"
        tries=tries+1
if guess ==secret:
    print "avast! Ye got it! Found my secrect, ye did!"
else:
    print"no more guesese! Better luck next time, matey!"
    print"The secret number was",secret

回复

使用道具 举报

3

主题

278

帖子

278

积分

侠客

积分
278

热心会员

uitb 发表于 2018-4-19 20:57:15 | 显示全部楼层
本帖最后由 uitb 于 2018-4-19 20:58 编辑

tries=tries+1缩进不对,你所谓的随机次数是你输入的小于secret的次数+6
回复 支持 反对

使用道具 举报

3

主题

278

帖子

278

积分

侠客

积分
278

热心会员

uitb 发表于 2018-4-19 21:07:12 | 显示全部楼层
本帖最后由 uitb 于 2018-4-19 21:14 编辑

这代码感觉错误也太多了,print 跟后面的字符串都不隔开一下,看不过去了
  1. import random
  2. secret=random.randint(1,99)
  3. guess=0
  4. tries=0
  5. print "Ahoy!I'm the Dread Pirate Roberts,and I have a secrect!"
  6. print "It's a number from 1 to 99. I'll give you 6 tries."
  7. while guess !=secret: #没必要把计数器跟 guess !=secret都放到循环的判断条件里来,一个即可
  8.     guess=input("what's yer guess?")
  9.     if guess<secret:
  10.        print "too low, ye scurvy dog!"
  11.     elif guess>secret:
  12.         print "too high, landlubber!"
  13.     else:
  14.         print "avast! Ye got it! Found my secrect, ye did!"
  15.         break
  16.     if tries >= 6:
  17.         print "no more guesese! Better luck next time, matey!"
  18.         print "The secret number was",secret
  19.         break
  20.     tries=tries+1

复制代码



回复 支持 反对

使用道具 举报

2

主题

7

帖子

7

积分

贫民

积分
7
食货志  楼主| 发表于 2018-4-20 08:51:43 | 显示全部楼层
uitb 发表于 2018-4-19 20:57
tries=tries+1缩进不对,你所谓的随机次数是你输入的小于secret的次数+6

”你所谓的随机次数是你输入的小于secret的次数+6“

怎么改?

计数远远大于6

计数远远大于6
回复 支持 反对

使用道具 举报

2

主题

7

帖子

7

积分

贫民

积分
7
食货志  楼主| 发表于 2018-4-20 09:00:32 | 显示全部楼层
uitb 发表于 2018-4-19 20:57
tries=tries+1缩进不对,你所谓的随机次数是你输入的小于secret的次数+6

用缩进解了。
具体什么原因呢?
回复 支持 反对

使用道具 举报

3

主题

278

帖子

278

积分

侠客

积分
278

热心会员

uitb 发表于 2018-4-20 14:15:06 | 显示全部楼层
食货志 发表于 2018-4-20 09:00
用缩进解了。
具体什么原因呢?

python有严格的缩进要求,你原先的代码,tries=tries+1缩进在guess>secret条件语句内,只有该条件满足时候才执行tries=tries+1,也就是说你开始这个代码的意思是,只有你输入的数大于secret时才算猜测了一次( guess>secret)
回复 支持 反对

使用道具 举报

2

主题

7

帖子

7

积分

贫民

积分
7
食货志  楼主| 发表于 2018-4-23 09:30:36 | 显示全部楼层
uitb 发表于 2018-4-20 14:15
python有严格的缩进要求,你原先的代码,tries=tries+1缩进在guess>secret条件语句内,只有该条件满足时候 ...

“只有你输入的数大于secret时才算猜测了一次( guess>secret)”

实际跑的结果并不是这样,缩进解决后,就严格按照计数器的设定次数开始跑了,而非随机数。


output.png
回复 支持 反对

使用道具 举报

2

主题

7

帖子

7

积分

贫民

积分
7
食货志  楼主| 发表于 2018-4-23 09:33:00 | 显示全部楼层
接上
output1.png
回复

使用道具 举报

2

主题

4

帖子

4

积分

贫民

积分
4
耍大刀 发表于 2018-4-23 12:39:10 | 显示全部楼层
tries=tries+1,同上面的elseif对齐就可以了
回复 支持 反对

使用道具 举报

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

本版积分规则

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