鱼C论坛

 找回密码
 立即注册
查看: 1597|回复: 6

[已解决]课后005讲 问题

[复制链接]
发表于 2020-10-19 12:23:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
@ILQA1J@[W_X]EGD42`{Z0F.png
左边的为什么运行不起来T.T
最佳答案
2020-10-19 12:53:54
本帖最后由 笨鸟学飞 于 2020-10-19 12:57 编辑

==========代码问题比较多=========
import random                                 
secret =random.randint(1,10)
print("请猜数字1-10")

time = 3
guess = 0               #后面有赋值语句,这条多余了
temp=input()         #这个temp也多余了,可以直接写为guess = int(input())
guess = int(temp)

while (guess != secret) and (time > 0):      #输入整数不等于随机生成的密码,并且次数大于3进入循环
   
    if temp.isdigit():         #你这里判断是否已经晚了?如果输入不是全数字,guess = int(temp)就会报错了,int()函数报错                           
        if guess == secret:
            print("恭喜你猜对了!")         #猜对了然后呢?跳到次数减1语句,又重新进入while循环。应该在这后面加一条break
        else:                                          #这段没什么大问题。
            if guess > secret:                     
                print("大了,重新输入")        
            else:
                print("小了,重新输入")
            if time > 1:                           
                print("还有机会在试一次吧")  
            else:                                    
                print("没有机会咯")
    else:
        print("输入有误,请重新输入")    #这里判断已经晚了

    time = time - 1                 #大问题来了。你次数减一以后呢?重新进入循环,根本没有让你输入新密码的代码

print("游戏结束")
============你的算法有问题===============
1、初始化变量,这个是没有错的
2、搭建循环(循环条件只要看是否有次数就行):
    1)输入密码
    2)校验密码
        3)正确--跳出循环
        4)错误--次数减1,从头开始循环
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-19 12:26:37 | 显示全部楼层
左边while前面有一句guess = 0。当然进不去循环了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-19 12:36:45 | 显示全部楼层
笨鸟学飞 发表于 2020-10-19 12:26
左边while前面有一句guess = 0。当然进不去循环了

import random
secret =random.randint(1,10)
print("请猜数字1-10")

time = 3
guess = 0
temp=input()
guess = int(temp)

while (guess != secret) and (time > 0):
   
    if temp.isdigit():
        if guess == secret:
            print("恭喜你猜对了!")
        else:
            if guess > secret:
                print("大了,重新输入")
            else:
                print("小了,重新输入")
            if time > 1:
                print("还有机会在试一次吧")
            else:
                print("没有机会咯")
    else:
        print("输入有误,请重新输入")

    time = time - 1

print("游戏结束")


发现了..改了一下 又直接 回复3次错误 不循环是什么回事
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-19 12:53:54 | 显示全部楼层    本楼为最佳答案   
本帖最后由 笨鸟学飞 于 2020-10-19 12:57 编辑

==========代码问题比较多=========
import random                                 
secret =random.randint(1,10)
print("请猜数字1-10")

time = 3
guess = 0               #后面有赋值语句,这条多余了
temp=input()         #这个temp也多余了,可以直接写为guess = int(input())
guess = int(temp)

while (guess != secret) and (time > 0):      #输入整数不等于随机生成的密码,并且次数大于3进入循环
   
    if temp.isdigit():         #你这里判断是否已经晚了?如果输入不是全数字,guess = int(temp)就会报错了,int()函数报错                           
        if guess == secret:
            print("恭喜你猜对了!")         #猜对了然后呢?跳到次数减1语句,又重新进入while循环。应该在这后面加一条break
        else:                                          #这段没什么大问题。
            if guess > secret:                     
                print("大了,重新输入")        
            else:
                print("小了,重新输入")
            if time > 1:                           
                print("还有机会在试一次吧")  
            else:                                    
                print("没有机会咯")
    else:
        print("输入有误,请重新输入")    #这里判断已经晚了

    time = time - 1                 #大问题来了。你次数减一以后呢?重新进入循环,根本没有让你输入新密码的代码

print("游戏结束")
============你的算法有问题===============
1、初始化变量,这个是没有错的
2、搭建循环(循环条件只要看是否有次数就行):
    1)输入密码
    2)校验密码
        3)正确--跳出循环
        4)错误--次数减1,从头开始循环

评分

参与人数 1鱼币 +5 收起 理由
io37 + 5 感谢楼主无私奉献!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-10-19 13:04:02 | 显示全部楼层
笨鸟学飞 发表于 2020-10-19 12:53
==========代码问题比较多=========
import random                                 
secret =random.ra ...

好的 谢谢.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-19 13:04:23 | 显示全部楼层
本帖最后由 jackz007 于 2020-10-19 13:06 编辑

        楼主试试这个代码
  1. #coding:gbk
  2. import random
  3. secret = random . randint(1 , 10)
  4. c = 3
  5. for x in range(c):
  6.     guess = int(input("请猜数字 1 - 10 : "))
  7.     if guess == secret:
  8.         print("恭喜你猜对了!")
  9.         break
  10.     else:
  11.         if guess > secret : print("大了" , end = "")
  12.         else : print("小了" , end = "")
  13.         if x < c - 1 : print(" , 重新输入")
  14.         else : print(" , 没有机会咯")
  15.         print()
  16. print("游戏结束")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-19 14:18:07 | 显示全部楼层
本帖最后由 io37 于 2020-10-19 14:24 编辑

11
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 15:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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