鱼C论坛

 找回密码
 立即注册
查看: 6210|回复: 13

[已解决]第四课 课后题 求助 guess = int(temp)

[复制链接]
发表于 2017-12-29 01:06:41 | 显示全部楼层 |阅读模式

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

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

x
  1. import random
  2. secret = random.randint(1,10)
  3. print('============我爱鱼C工作室==============')
  4. temp = input('不妨猜一下小甲鱼心里想的数字是多少:')
  5. guess = int(temp)
  6. while guess != secret:
  7.     temp = input('haha,猜错喽!!!:')
  8.     if guess == secret:
  9.         print('握草这你都猜的到?')
  10.         print('哼哼,猜中了也没有奖励哦!')
  11.     else:
  12.         if guess > secret:
  13.             print('错了,大了大了')
  14.         else:
  15.             print('呵呵,小了小了啊')
  16. print('游戏结束,不完喽!!!')
复制代码


看着这里i guess = int(temp)  是重复 定义了一遍  把temp  转换成整型 为什么  循环上面有一次定义了  循环里面还要没循环一次 都定义一遍呢?
然后我把循环里面的 定义整型 去掉了 就填什么数字 都提示小.......................
最佳答案
2017-12-29 07:48:40
python中的变量不用定义,直接赋值使用即可
int()的作用不是定义,而是将temp强制转化为整形,因为input返回的类型为字符串,如果不强制转换,后面的比较是用数字和字符串比较,结果永远为假,所以肯定走最后的else分支
guess = int(temp).png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-12-29 03:40:47 | 显示全部楼层
因为你把while循环里的guess变量去掉之后,就只有while前面那个guess被赋值了,while只能用这个值
而且你每次输入的数字都被赋值到循环内的temp上,相当于循环前面的guess的值永远是第一次你输入的那个数
所以要小一直小,要大一直大。
  1. import random
  2. secret = random.randint(1,10)
  3. print('============我爱鱼C工作室==============')
  4. temp = input('不妨猜一下小甲鱼心里想的数字是多少:')
  5. guess = int(temp)
  6. #这个guess是你第一次赋的值
  7. while guess != secret:
  8.     temp = input('haha,猜错喽!!!:')
  9.     guess = int(temp)#你之后赋的值都在这,去掉它,就只有上面的能用了
  10.     if guess == secret:
  11.         print('握草这你都猜的到?')
  12.         print('哼哼,猜中了也没有奖励哦!')
  13.     else:
  14.         if guess > secret:
  15.             print('错了,大了大了')
  16.         else:
  17.             print('呵呵,小了小了啊')
  18. print('游戏结束,不完喽!!!')
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-29 07:48:40 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
python中的变量不用定义,直接赋值使用即可
int()的作用不是定义,而是将temp强制转化为整形,因为input返回的类型为字符串,如果不强制转换,后面的比较是用数字和字符串比较,结果永远为假,所以肯定走最后的else分支
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-29 08:48:32 | 显示全部楼层
循环外面用int是为了把字符串转成整型,因为input接收的是字符串。

而循环里面是错了之后temp又接收了用户一个输入。guess = int(temp)这句其实有两个作用,一是:字符串转整型;二是给guess赋值,因为后面if判断条件有guess。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-29 09:16:34 | 显示全部楼层
哦 稍作补充,如果没有在循环里面给guess赋值,那么guess在第一次赋值之后就固定了,后面用户的输入并没有起到任何作用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-29 09:45:23 | 显示全部楼层
print('----------我爱鱼C工作室----------')
import random#调用random函数
secret = random.randint(1,10)#随机生成一个1-10的数字
temp = input("不妨试一下小甲鱼现在心里想的是哪个数字:")
guess = int(temp)#用户输入的数字传给guess
while guess != secret :
    temp = input("哎呀,猜错了,请重新输入吧:")
    guess = int(temp)#循环再次输入并传给guess,若不输入,则进入死循环
    if guess ==  secret :
        print("卧槽,你是小甲虫心里的蛔虫嘛?!")
        print("哼,猜中了也没有奖励!")
    else :
        if guess > secret :
            print("哥,大了大了~~~")
        else :
            print("嘿,小了小了~~~")
print("不玩啦,游戏结束")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-29 09:48:34 | 显示全部楼层
胖嘟嘟的女屌丝 发表于 2017-12-29 09:45
print('----------我爱鱼C工作室----------')
import random#调用random函数
secret = random.randint(1, ...

第二次  guess = int(temp)  int是把temp 强制转换, 如果不转换接收的就是字符串,后面没法比较,而且你的不对,你上面 直接把 guess 和 secret 进行比较 ,你少了 把 temp 赋值给 guess,这里的得到的guess 还是上面第一次 的 所以会一直进行循环,进入死循环
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-29 17:31:35 | 显示全部楼层
theonen 发表于 2017-12-29 03:40
因为你把while循环里的guess变量去掉之后,就只有while前面那个guess被赋值了,while只能用这个值
而且你 ...

a明白了   循环的时候  是执行while里面的 temp这个变量的赋值  和 上面的temp没什么关系了  
谢谢  懂了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-29 17:35:07 | 显示全部楼层
紫夜之恋 发表于 2017-12-29 08:48
循环外面用int是为了把字符串转成整型,因为input接收的是字符串。

而循环里面是错了之后temp又接收了用 ...

谢谢指导  感激不尽 谢谢  懂了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-29 17:35:35 | 显示全部楼层
紫夜之恋 发表于 2017-12-29 09:16
哦 稍作补充,如果没有在循环里面给guess赋值,那么guess在第一次赋值之后就固定了,后面用户的输入并没有 ...

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

使用道具 举报

 楼主| 发表于 2017-12-29 17:38:20 | 显示全部楼层
胖嘟嘟的女屌丝 发表于 2017-12-29 09:45
print('----------我爱鱼C工作室----------')
import random#调用random函数
secret = random.randint(1, ...

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

使用道具 举报

 楼主| 发表于 2017-12-29 17:40:05 | 显示全部楼层
胖嘟嘟的女屌丝 发表于 2017-12-29 09:48
第二次  guess = int(temp)  int是把temp 强制转换, 如果不转换接收的就是字符串,后面没法比较,而且你 ...

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

使用道具 举报

 楼主| 发表于 2017-12-29 17:40:38 | 显示全部楼层
BngThea 发表于 2017-12-29 07:48
python中的变量不用定义,直接赋值使用即可
int()的作用不是定义,而是将temp强制转化为整形,因为input返 ...

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

使用道具 举报

发表于 2020-5-24 16:11:51 | 显示全部楼层
print("""用python设计第一个游戏---改进1""")
import random
num1 = random.randint(1,2)
times = 3
temp = input ("随意猜一个数字(最多三次机会):")
guess = int (temp)
while (guess!= num1) and (times>0) :
    if guess == num1:
        print("right")
        print("为啥出不来")
    else:
        if guess > num1 :
            print("大了")
        else:
            print("小了")
        times = times - 1
        if times>0:
            print("最后第" + str(times) + "次机会!")
            temp = input("请重新输入:")
            guess = int(temp)
        else:
            print("机会用光了··")
print("游戏结束")
                                 为啥right出不来呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 08:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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