鱼C论坛

 找回密码
 立即注册
查看: 4419|回复: 12

关于input默认输入是str的问题。

[复制链接]
发表于 2014-9-22 19:25:50 | 显示全部楼层 |阅读模式

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

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

x
刚开始上Python课,在游戏改进一课里碰到了一些问题。

先上代码。

import random
secret = random.randint(20,30)
guess = input("猜猜伦家几岁啦:")

while (isinstance(guess,int) == False):
    print("不守规矩!要输入数字的啦!")
    break

if guess == secret:
    print("居然猜对了,说,是不是注意我很久了!")
    print("看你这么有诚意,做我男朋友怎么样,五险一金等你哟~")       

while guess != secret:
    if guess < secret:
        print("咦,伦家看起来这么年轻嘛~")
        print("别跑,伦家要以身相许~")
    else :
        print("讨厌,伦家哪里有这么老~")
        print("你过来,看我不打死你~")
    guess = input("再猜:")

我尝试在给guess赋值后插入一句:type(guess),才发现,不管输入数字还是其他字符,类型都是数字。
但是这个程序的目的是想判断用户是否输入数字,如果不是的话进行提示,请问有什么办法能解决吗?

因为是新手,所以问题可能很弱智,请大家多包涵~

O(∩_∩)O~

               

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

使用道具 举报

发表于 2014-9-22 21:17:11 | 显示全部楼层
  1. import random
  2. secret = random.randint(20,30)
  3. guess = input("猜猜伦家几岁啦:")
  4. while True:
  5.     if not guess.isdigit():
  6.         print("不守规矩!要输入数字的啦!")
  7.         guess = input("请重新输入:")
  8.     else:
  9.         guess = int(guess)
  10.         while guess != secret:
  11.             if guess < secret:
  12.                 print("咦,伦家看起来这么年轻嘛~")
  13.                 print("别跑,伦家要以身相许~")
  14.             else :
  15.                 print("讨厌,伦家哪里有这么老~")
  16.                 print("你过来,看我不打死你~")
  17.             guess = input("再猜:")
  18.         print("恭喜你猜对了")
  19.         break

  20.    
复制代码

评分

参与人数 1荣誉 +2 鱼币 +4 贡献 +2 收起 理由
bevin + 2 + 4 + 2 你们这么卖萌真的好么

查看全部评分

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

使用道具 举报

 楼主| 发表于 2014-9-22 22:23:24 | 显示全部楼层

:handshake   太感谢啦!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-9-23 11:10:04 | 显示全部楼层
赞一个~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-9-23 11:10:44 | 显示全部楼层
我也刚学这个课程,鱼币不够,后面的课后作业都看不了怎么办
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-9-23 19:53:58 | 显示全部楼层

试了下这段代码,有点问题:
当猜错年龄之后,再次输入的值没转换成整形,会出错
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-9-23 22:57:50 | 显示全部楼层
牧野流星 发表于 2014-9-23 19:53
试了下这段代码,有点问题:
当猜错年龄之后,再次输入的值没转换成整形,会出错

确实,诚心请教改进代码,感激不尽~:loveliness:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-9-24 10:25:01 | 显示全部楼层
牧野流星 发表于 2014-9-23 19:53
试了下这段代码,有点问题:
当猜错年龄之后,再次输入的值没转换成整形,会出错
  1. import random
  2. secret = random.randint(20,30)
  3. guess = input("猜猜伦家几岁啦:")
  4. flag = 1
  5. while flag:
  6.     if guess.isdigit() == 0:
  7.         print("不是数字,再猜:")
  8.         guess = input()
  9.     while guess.isdigit():
  10.         if int(guess) < secret:
  11.             print("咦,伦家看起来这么年轻嘛~")
  12.             print("别跑,伦家要以身相许~")
  13.         elif int(guess) > secret :
  14.             print("讨厌,伦家哪里有这么老~")
  15.             print("你过来,看我不打死你~")
  16.         else:
  17.             print("恭喜你猜对了")
  18.             flag = 0
  19.             break
  20.         guess = input("再猜:")
复制代码


看看这样的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-9-24 12:38:15 | 显示全部楼层
我做这个的时候是用的try和except。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-9-26 19:16:42 | 显示全部楼层
顶顶顶顶顶顶顶顶顶顶顶顶顶
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-9-27 01:28:51 | 显示全部楼层
谢谢分享资源
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-9-28 18:20:52 | 显示全部楼层

很不错,学习下你的代码~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-9-28 18:21:39 | 显示全部楼层
男朋友蛇精病丶 发表于 2014-9-23 22:57
确实,诚心请教改进代码,感激不尽~

8楼的代码不错~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-16 05:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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