寄安 发表于 2020-8-1 21:38:35

课后练习上的代码为什么在我的IDLE上不能执行

import random
times = 3
secret = random.randint(1,10)
print('------------------我爱鱼C工作室------------------')
# 这里先给guess赋值(赋一个绝对不等于secret的值)
guess = 0
# print()默认是打印完字符串会自动添加一个换行符,end=" "参数告诉print()用空格代替换行
# 嗯,小甲鱼觉得富有创意的你应该会尝试用 end="JJ"?
print("不妨猜一下小甲鱼现在心里想的是哪个数字:", end=" ")
while (guess != secret) and (times > 0):
    temp = input()
    guess = int(temp)
    times = times - 1 # 用户每输入一次,可用机会就-1
    if guess == secret:
      print("我草,你是小甲鱼心里的蛔虫吗?!")
      print("哼,猜中了也没有奖励!")
    else:
      if guess > secret:
            print("哥,大了大了~~~")
      else:
            print("嘿,小了,小了~~~")
      if times > 0:
            print("再试一次吧:", end=" ")
      else:
            print("机会用光咯T_T")
print("游戏结束,不玩啦^_^")



前辈们,帮帮忙
我也找不出原因,谢谢谢谢{:10_254:}
(这是零基础学python第四节的练习题)

Twilight6 发表于 2020-8-1 21:40:47

本帖最后由 Twilight6 于 2020-8-1 21:48 编辑



因为你直接回车 输入了一个空字符串

但 int 函数是将其他类型的值转化为整数

而导致无法转化空格为整数报错,你输入纯数字字符即可解决问题

当到第五课你会学习字符串方法,到时候可以用字符串方法str.isdigit 函数来判断是否为纯数字字符串

到时候我们就可以避免这种情况的发生,用 isdigit 进行判断输入是否合法

页: [1]
查看完整版本: 课后练习上的代码为什么在我的IDLE上不能执行