鱼C论坛

 找回密码
 立即注册
查看: 1017|回复: 8

[已解决]新手求助!!!!!!Python的基础!

[复制链接]
发表于 2019-9-13 21:25:13 | 显示全部楼层 |阅读模式

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

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

x
第五讲的课后练习里面进行改进
文字小游戏,目前要达到几个要求,
1.答案随机
2.猜答案三次
3.给大了还是小了的提示
4.检测输入的是不是整数

结合以上要求我自己试了一下代码:

import random
times = 3
serect = random.randint(1,10)
print ('---------------我爱鱼c工作室----------------')
guess = 0
temp= input ("不妨猜一下小甲鱼现在心里想的是哪个数字:")
while not temp.isdigit() and times>0:
    print('抱歉,输入不合法')
    temp= input ('请输入一个整数:')
    times=times-1
    if times ==0:
        print(" 机会用光咯QAQ")
        print ("游戏结束不玩啦!")
guess = int(temp)
while guess != serect and (times>0) :
    temp= input ("哎呀,猜错啦,请重新输入:")
    guess = int(temp)
    times = times - 1
if guess == serect:
    print("卧槽你是小甲鱼心里的蛔虫吗?!")
    print("哼,猜中了也没奖励!")
    print ("游戏结束不玩啦!")
else:
    if guess > serect and times > 0:
        print ("哥 大了大了")
        print ("再试一次吧!",end="")
    else :
        print ("哥 小了小了")
if guess!=serect and times ==0:
    print(" 机会用光咯QAQ")
    print ("游戏结束不玩啦!")

思考了一下,输入错误内容也要扣次数,结合参考答案,我修改改进了一下,完美达到所有要求(大雾),但是为输入不合法三次之后,系统会提示报错
---------------我爱鱼c工作室----------------
不妨猜一下小甲鱼现在心里想的是哪个数字:qwq
抱歉,输入不合法
请输入一个整数:qwq
抱歉,输入不合法
请输入一个整数:qwq
抱歉,输入不合法
请输入一个整数:qwq
机会用光咯QAQ
游戏结束不玩啦!
Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\我爱小甲鱼\文字游戏3.py", line 14, in <module>
    guess = int(temp)
ValueError: invalid literal for int() with base 10: 'qwq'

最后这里还是报错了,说明这个进程这个是有问题的吧? QAQ,想搞清楚,想把所有结果都完美地复现出来       
最佳答案
2019-9-14 14:06:19
帮你改进了一下,看不懂找我:
  1. import random

  2. times = 4
  3. serect = random.randint(1,10)
  4. guess = 0

  5. while times >= 0 and guess != serect:
  6.     try:
  7.         times = times - 1
  8.         temp= input("不妨猜一下小甲鱼现在心里想的是哪个数字:")
  9.         guess = int(temp)

  10.         if guess == serect:
  11.             print("卧槽你是小甲鱼心里的蛔虫吗?!")
  12.             print("哼,猜中了也没奖励!")
  13.             print ("游戏结束不玩啦!")
  14.         elif guess > serect:
  15.             print ("哥,大了大了!")
  16.         else:
  17.             print ("哥,小了小了!")
  18.                
  19.     except ValueError:
  20.         print("输入错误!")
  21.         if times == 0:
  22.             break

  23.     except:
  24.         print("程序出错啦!")
  25.             
  26. if times == 0:
  27.     print("机会用光咯QAQ")
  28.     print ("游戏结束不玩啦!")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-9-13 21:25:52 | 显示全部楼层
啊不对,应该是第六讲
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-13 21:32:04 | 显示全部楼层
应该是这样,试试:
  1. import random
  2. times = 3
  3. serect = random.randint(1,10)
  4. print ('---------------我爱鱼c工作室----------------')
  5. guess = 0
  6. temp= input ("不妨猜一下小甲鱼现在心里想的是哪个数字:")
  7. while not temp.isdigit() and times>0:
  8.     print('抱歉,输入不合法')
  9.     temp= input ('请输入一个整数:')
  10.     times=times-1
  11.     if times ==0:
  12.         print(" 机会用光咯QAQ")
  13.         print ("游戏结束不玩啦!")
  14.         exit()
  15. guess = int(temp)
  16. while guess != serect and (times>0) :
  17.     temp= input ("哎呀,猜错啦,请重新输入:")
  18.     guess = int(temp)
  19.     times = times - 1
  20. if guess == serect:
  21.     print("卧槽你是小甲鱼心里的蛔虫吗?!")
  22.     print("哼,猜中了也没奖励!")
  23.     print ("游戏结束不玩啦!")
  24. else:
  25.     if guess > serect and times > 0:
  26.         print ("哥 大了大了")
  27.         print ("再试一次吧!",end="")
  28.     else :
  29.         print ("哥 小了小了")
  30. if guess!=serect and times ==0:
  31.     print(" 机会用光咯QAQ")
  32.     print ("游戏结束不玩啦!")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-14 10:14:02 | 显示全部楼层
你一开始三次输入的qwq在进行完三次while循环后, 继续执行while后面的 guess = int(temp)了啊,qwq不能int转化为整型
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-14 13:50:26 | 显示全部楼层
你这样写有很多不好的地方,比如第二次输入的不是整数,也会报错。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-14 14:06:19 | 显示全部楼层    本楼为最佳答案   
帮你改进了一下,看不懂找我:
  1. import random

  2. times = 4
  3. serect = random.randint(1,10)
  4. guess = 0

  5. while times >= 0 and guess != serect:
  6.     try:
  7.         times = times - 1
  8.         temp= input("不妨猜一下小甲鱼现在心里想的是哪个数字:")
  9.         guess = int(temp)

  10.         if guess == serect:
  11.             print("卧槽你是小甲鱼心里的蛔虫吗?!")
  12.             print("哼,猜中了也没奖励!")
  13.             print ("游戏结束不玩啦!")
  14.         elif guess > serect:
  15.             print ("哥,大了大了!")
  16.         else:
  17.             print ("哥,小了小了!")
  18.                
  19.     except ValueError:
  20.         print("输入错误!")
  21.         if times == 0:
  22.             break

  23.     except:
  24.         print("程序出错啦!")
  25.             
  26. if times == 0:
  27.     print("机会用光咯QAQ")
  28.     print ("游戏结束不玩啦!")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-14 14:48:08 | 显示全部楼层
花下小百合 发表于 2019-9-13 21:25
啊不对,应该是第六讲

那你在这里说还不如更改一下主题......
@花下小百合
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-14 16:34:02 | 显示全部楼层
在判断输入的是不是整数的那部分,可以使用:

  1. try:
  2.     guess = int(temp)
  3. except ValueError:
  4.     print('抱歉,输入不合法')
复制代码

楼主所给出的算法,输入 ‘123QAQ’ 也是不会输出 ‘输入不合法’ 的,还是会报错哦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-28 16:25:59 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-1 18:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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