鱼C论坛

 找回密码
 立即注册
查看: 854|回复: 2

[已解决]第005讲:闲聊之Python的数据类型 动动手第1题

[复制链接]
发表于 2019-11-8 14:58:10 | 显示全部楼层 |阅读模式

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

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

x
这是以下代码


print('----------欢迎光临-----------')
print("不妨猜下小甲鱼心里想的什么数字:",end='')
import random
ser = random.randint(1,10)
guess = 0
times = 3
while (guess != ser) and (times>0):
    temp = input()   
    if temp.isdigit:
        guess = int(temp)
        if guess == ser:   
            print('我的天,你是小甲鱼心里的蛔虫吗!')
            print('答对了哦')
        else:
            if guess > ser:     
                print('大了大了')   
            else :  
                print('小了小了')
            if times > 1:
                print('再试一次吧:',end = '')               
            else:
                print('机会用光了哦')
    else:                                                             #主要是这里,这里如果输入的不是数字,列如a,他就会直接显示错误,而不会去打印下面的东西了
        print("输入错误,请输入一个整数:",end = '')
    times = times -1
print('游戏结束咯')

按要求应该是输入的是数字的话就会继续下去,不是的话应该就会打印  ("输入错误,请输入一个整数:)。但是当输入不是数字的显示
Traceback (most recent call last):
  File "D:/python/第4讲 条件分支 while循环 引入外援/第4讲 课后作业4.py", line 10, in <module>
    guess = int(temp)
ValueError: invalid literal for int() with base 10: 'a'

为什么不会重新要求输入数字呢,求解
最佳答案
2019-11-8 20:37:49
漏了对括号:

if temp.isdigit()

补上就行了:
print('----------欢迎光临-----------')
print("不妨猜下小甲鱼心里想的什么数字:",end='')
import random
ser = random.randint(1,10)
guess = 0
times = 3
while (guess != ser) and (times>0):
    temp = input()   
    if temp.isdigit:
        guess = int(temp)
        if guess == ser:   
            print('我的天,你是小甲鱼心里的蛔虫吗!')
            print('答对了哦')
        else:
            if guess > ser:     
                print('大了大了')   
            else :  
                print('小了小了')
            if times > 1:
                print('再试一次吧:',end = '')               
            else:
                print('机会用光了哦')
    else:                                                             #主要是这里,这里如果输入的不是数字,列如a,他就会直接显示错误,而不会去打印下面的东西了
        print("输入错误,请输入一个整数:",end = '')
    times = times -1
print('游戏结束咯')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-11-8 15:18:57 | 显示全部楼层
if temp.isdigit():
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-8 20:37:49 | 显示全部楼层    本楼为最佳答案   
漏了对括号:

if temp.isdigit()

补上就行了:
print('----------欢迎光临-----------')
print("不妨猜下小甲鱼心里想的什么数字:",end='')
import random
ser = random.randint(1,10)
guess = 0
times = 3
while (guess != ser) and (times>0):
    temp = input()   
    if temp.isdigit:
        guess = int(temp)
        if guess == ser:   
            print('我的天,你是小甲鱼心里的蛔虫吗!')
            print('答对了哦')
        else:
            if guess > ser:     
                print('大了大了')   
            else :  
                print('小了小了')
            if times > 1:
                print('再试一次吧:',end = '')               
            else:
                print('机会用光了哦')
    else:                                                             #主要是这里,这里如果输入的不是数字,列如a,他就会直接显示错误,而不会去打印下面的东西了
        print("输入错误,请输入一个整数:",end = '')
    times = times -1
print('游戏结束咯')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-15 13:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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