鱼C论坛

 找回密码
 立即注册
查看: 2104|回复: 4

[已解决]我想在这里加入一个新功能但是还没有学到

[复制链接]
发表于 2020-2-28 01:30:04 | 显示全部楼层 |阅读模式

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

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

x
  1. import random
  2. secret=random.randint(1,9)
  3. print('-----------这是一个猜字谜的游戏,1到9九个数字你有三次机会:-----------')
  4. wri=input('你能猜出我想的是哪个数字吗:')
  5. numb=int(wri)
  6. if numb == secret:
  7.     print('恭喜你,猜对啦!!!')
  8. else:
  9.     time=0
  10.     while ( numb != secret ) and (time < 2):
  11.         if numb < secret:
  12.             print('猜错了,给个提示:小了')
  13.             time+=1
  14.             wri=input('再输一次吧:')
  15.             numb=int(wri)
  16.         else:
  17.             if numb > secret:
  18.                 print('猜错了,给个提示:大了')
  19.                 time+=1
  20.                 wri=input('再输一次吧:')
  21.                 numb=int(wri)
  22.             else:
  23.                 print('总算是答对了')
  24.     print('机会用光喽,失败!!!')
复制代码
今天刚刚开始学习,学到了这一课
可是我发现如果一开始输入的内容不能转成整数就会报错,
我在试图加入如果输入的内容会报错就终止并给出提示然后循环到重新输入
有没有哪个指令可以完成这个操作

最佳答案
2020-2-28 09:11:10
方法1:用isdigit()
  1. import random
  2. secret = random.randint(1,10)
  3. print ("""--- LET'S PLAY ---""")
  4. print ("x是1~10之间的数,只有3次猜的机会哦!")
  5. temp = input("猜猜x=")
  6. count = 0
  7. while not temp.isdigit()and count < 2:
  8.     temp  = input ("不是整数,请重新输入x=")
  9.     count = count + 1
  10. if not temp.isdigit():
  11.     print ("没机会了...")
  12. else:
  13.     guess = int(temp)
  14.     while guess != secret and count < 2:
  15.         if guess > secret:
  16.             print("猜错了,大啦大啦...")
  17.         else:
  18.             print("猜错了,小啦小啦...")
  19.         temp = input("没关系,再试一次!猜猜x=")
  20.         guess = int(temp)
  21.         count = count + 1
  22.     if guess == secret:
  23.         print("恭喜你,猜对啦!")
  24.         print("真棒!!!")
  25.     else:
  26.         print ("没机会了...")
  27.         print ("正确答案:x=",end="")
  28.         print (secret)
  29. print("""---GOOD BYE---""")
复制代码

方法2:用try语句(你稍后会学到异常处理)
  1. import random
  2. secret = random.randint(1,10)
  3. print ("""--- LET'S PLAY ---""")
  4. print ("x是1~10之间的数,只有3次猜的机会哦!")
  5. temp = input("猜猜x=")
  6. count = 0
  7. while not temp.isdigit()and count < 2:
  8.     temp  = input ("不是整数,请重新输入x=")
  9.     count = count + 1
  10. if not temp.isdigit():
  11.     print ("没机会了...")
  12. else:
  13.     guess = int(temp)
  14.     while guess != secret and count < 2:
  15.         if guess > secret:
  16.             print("猜错了,大啦大啦...")
  17.         else:
  18.             print("猜错了,小啦小啦...")
  19.         temp = input("没关系,再试一次!猜猜x=")
  20.         guess = int(temp)
  21.         count = count + 1
  22.     if guess == secret:
  23.         print("恭喜你,猜对啦!")
  24.         print("真棒!!!")
  25.     else:
  26.         print ("没机会了...")
  27.         print ("正确答案:x=",end="")
  28.         print (secret)
  29. print("""---GOOD BYE---""")
复制代码

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

使用道具 举报

发表于 2020-2-28 02:22:09 | 显示全部楼层
  1. import random
  2. secret=random.randint(1,9)
  3. print('-----------这是一个猜字谜的游戏,1到9九个数字你有三次机会:-----------')

  4. def f(numb):
  5.     if numb == secret:
  6.         print('恭喜你,猜对啦!!!')
  7.     else:
  8.         time=0
  9.         while ( numb != secret ) and (time < 2):
  10.             if numb < secret:
  11.                 print('猜错了,给个提示:小了')
  12.                 time+=1
  13.                 wri=input('再输一次吧:')
  14.                 numb=int(wri)
  15.             else:
  16.                 if numb > secret:
  17.                     print('猜错了,给个提示:大了')
  18.                     time+=1
  19.                     wri=input('再输一次吧:')
  20.                     numb=int(wri)
  21.                 else:
  22.                     print('总算是答对了')
  23.         print('机会用光喽,失败!!!')
  24. Flag=1
  25. while Flag:
  26.     try:
  27.         wri=input('你能猜出我想的是哪个数字吗:')
  28.         numb=int(wri)
  29.         Flag=0
  30.         f(numb)
  31.     except ValueError:
  32.         print("你输入的不是整数,请重新输入")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-28 02:41:26 | 显示全部楼层
  1. #-*-coding:gbk-*-
  2. import random
  3. secret = random . randint(1 , 9)
  4. print('-----------猜数字游戏,你有三次机会:-----------')
  5. t = 0
  6. while t < 3:
  7.     wri = input('猜猜我想的数字(1~9):')
  8.     try:
  9.         numb = int(wri)
  10.         t += 1
  11.         if numb == secret:
  12.             if t < 2:
  13.                 print('恭喜你,猜对啦!!!\n')
  14.             else:
  15.                 print('总算是猜对了!!!\n')
  16.             break
  17.         else:
  18.             if numb > secret:
  19.                 print('猜错了,给个提示:大了')
  20.             else:
  21.                 print('猜错了,给个提示:小了')
  22.             if t < 3:
  23.                 print('再输一次吧。\n')
  24.             else:
  25.                 print('3 次机会用光喽,失败!!!')
  26.     except:
  27.         print("请输入整数!\n")
复制代码

        运行实况:
  1. C:\Bin>python x.py
  2. -----------猜数字游戏,你有三次机会:-----------
  3. 猜猜我想的数字(1~9):x
  4. 请输入整数!

  5. 猜猜我想的数字(1~9):12.3
  6. 请输入整数!

  7. 猜猜我想的数字(1~9):7
  8. 猜错了,给个提示:小了
  9. 再输一次吧。

  10. 猜猜我想的数字(1~9):8
  11. 猜错了,给个提示:小了
  12. 再输一次吧。

  13. 猜猜我想的数字(1~9):9
  14. 总算是猜对了!!!


  15. C:\Bin>
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-28 08:37:24 | 显示全部楼层
上面的解答都用了try,except,这个错误捕捉在小甲鱼的课中比较偏后,我刚学时做的作业没有用到try,用一些内置方法,你可以参考一下:
  1. # guessnumber.py
  2. """ ---My first game ---"""
  3. import random
  4. quitgame=""
  5. while quitgame.lower()!="q":
  6.     my_number= random.randint(1,9)
  7.     game_times=0
  8.     while game_times<3:
  9.         temp = input("Guess a number(1-9):")
  10.         if temp.lower().strip()=='q':
  11.             break
  12.         if temp.isdigit() and len(temp)==1:  #利用isgigit()来判断输入的是否是数字,用len()来排除多位数的输入
  13.             guess = int(temp)
  14.             if guess!=my_number:
  15.                 game_times+=1
  16.                 if game_times<3:
  17.                     if guess > my_number:
  18.                         print("too big!input again,u have left",3-game_times,"times.",end=" ")
  19.                     else:
  20.                         print("too small!input again,u have left",3-game_times,"times.",end=" ")
  21.             elif 0<guess<10 and guess==my_number:
  22.                     print("Right number!")
  23.                     break
  24.     if game_times==3:
  25.         print("You guess wrong number 3 times!game over!")
  26.         print("The right number is "+str(my_number))
  27.     if temp.lower().strip()!='q':
  28.         quitgame=input("If you want quit game,press Q,other key to contiune!")
  29.     else:
  30.         break
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-28 09:11:10 | 显示全部楼层    本楼为最佳答案   
方法1:用isdigit()
  1. import random
  2. secret = random.randint(1,10)
  3. print ("""--- LET'S PLAY ---""")
  4. print ("x是1~10之间的数,只有3次猜的机会哦!")
  5. temp = input("猜猜x=")
  6. count = 0
  7. while not temp.isdigit()and count < 2:
  8.     temp  = input ("不是整数,请重新输入x=")
  9.     count = count + 1
  10. if not temp.isdigit():
  11.     print ("没机会了...")
  12. else:
  13.     guess = int(temp)
  14.     while guess != secret and count < 2:
  15.         if guess > secret:
  16.             print("猜错了,大啦大啦...")
  17.         else:
  18.             print("猜错了,小啦小啦...")
  19.         temp = input("没关系,再试一次!猜猜x=")
  20.         guess = int(temp)
  21.         count = count + 1
  22.     if guess == secret:
  23.         print("恭喜你,猜对啦!")
  24.         print("真棒!!!")
  25.     else:
  26.         print ("没机会了...")
  27.         print ("正确答案:x=",end="")
  28.         print (secret)
  29. print("""---GOOD BYE---""")
复制代码

方法2:用try语句(你稍后会学到异常处理)
  1. import random
  2. secret = random.randint(1,10)
  3. print ("""--- LET'S PLAY ---""")
  4. print ("x是1~10之间的数,只有3次猜的机会哦!")
  5. temp = input("猜猜x=")
  6. count = 0
  7. while not temp.isdigit()and count < 2:
  8.     temp  = input ("不是整数,请重新输入x=")
  9.     count = count + 1
  10. if not temp.isdigit():
  11.     print ("没机会了...")
  12. else:
  13.     guess = int(temp)
  14.     while guess != secret and count < 2:
  15.         if guess > secret:
  16.             print("猜错了,大啦大啦...")
  17.         else:
  18.             print("猜错了,小啦小啦...")
  19.         temp = input("没关系,再试一次!猜猜x=")
  20.         guess = int(temp)
  21.         count = count + 1
  22.     if guess == secret:
  23.         print("恭喜你,猜对啦!")
  24.         print("真棒!!!")
  25.     else:
  26.         print ("没机会了...")
  27.         print ("正确答案:x=",end="")
  28.         print (secret)
  29. print("""---GOOD BYE---""")
复制代码

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-4 20:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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