ansire 发表于 2023-5-8 21:56:58

小甲鱼007讲改进小游戏

在看小甲鱼的007讲的时候,自己动手写代码,出现了以下两个问题,求助大神。
如图所示,我想实现的效果应该是:
1、猜对了就直接结束,不输出“"三次都猜错了,没机会了",
2、猜错的情况下,“猜错了,还剩X次机会”和“请再猜一次”在同一行,(目前在两行)。
求教!

歌者文明清理员 发表于 2023-5-8 22:00:54

歌者文明清理员 发表于 2023-5-8 22:02:37

本帖最后由 歌者文明清理员 于 2023-5-8 22:05 编辑

算了,我直接说吧

猜对了里面的break改成 exit(),直接退出程序
在同一行的话,得再加上end="",sep是分隔符,end是字符串末尾的内容,设置为空字符串可以取消默认的换行

sfqxx 发表于 2023-5-8 22:20:10



问题1:猜对了就直接结束,不输出“三次都猜错了,没机会了”
解决方法:加入判断语句。在猜对了的情况下,使用break语句跳出循环即可,代码如下:


import random
counts = 3
answer = random.randint(1, 10)
guess = int(input("猜猜猪猪侠心中想的是数字几,1~10的整数,有三次机会哦:"))
while counts > 0:
    if guess == answer:
      print("猜对了")
      break
    counts = counts - 1
    if counts > 0:
      print("猜错了,还剩", counts, "次机会", sep="")
      guess = int(input("请再猜一次:"))
print("游戏结束!")

问题2:猜错的情况下,“猜错了,还剩X次机会”和“请再猜一次”在同一行,(目前在两行)。
解决方法:去掉print语句中的换行符"\n",然后把两条语句合并为一行即可,代码如下:

import random
counts=3
answer=random.randint(1,10)
guess=int(input("猜猜猪猪侠心中想的是数字几,1~10的整数,有三次机会哦:"))
while counts>0:
    if guess==answer:
      print("猜对了")
      break
    counts=counts-1
    if counts>0:
      print("猜错了,还剩",counts,"次机会",end=" ")
      guess=int(input("请再猜一次:"))
print("游戏结束!")

有用请设置最佳答案

歌者文明清理员 发表于 2023-5-8 22:39:01

sfqxx 发表于 2023-5-8 22:20
问题1:猜对了就直接结束,不输出“三次都猜错了,没机会了”
解决方法:加入判断语句。在猜对了的情 ...

没求助帖先偷偷访问www.bilibili.com

sfqxx 发表于 2023-5-8 23:01:43

歌者文明清理员 发表于 2023-5-8 22:39
没求助帖先偷偷访问www.bilibili.com

6

ansire 发表于 2023-5-8 23:26:24

歌者文明清理员 发表于 2023-5-8 22:02
算了,我直接说吧

猜对了里面的break改成 exit(),直接退出程序


答对了要给反馈而不是退出软件,您这样的话不适合

ansire 发表于 2023-5-8 23:28:17

sfqxx 发表于 2023-5-8 22:20
问题1:猜对了就直接结束,不输出“三次都猜错了,没机会了”
解决方法:加入判断语句。在猜对了的情 ...

第二个问题解决了,第一个问题没解决其实。三次都猜错了,我想告诉他“三次都猜错了,没机会了",而不是”游戏结束“,实际上这个问题没解决呢

歌者文明清理员 发表于 2023-5-8 23:29:37

ansire 发表于 2023-5-8 23:26
答对了要给反馈而不是退出软件,您这样的话不适合

啊这,不然就做不到了
或者你可以写到一个函数里
def main():
    你原来的while循环代码
      print("猜对了")
      return#只退出函数
    print('没机会了')
然后在主程序里
guess=...
main()

歌者文明清理员 发表于 2023-5-8 23:30:08

ansire 发表于 2023-5-8 23:28
第二个问题解决了,第一个问题没解决其实。三次都猜错了,我想告诉他“三次都猜错了,没机会了",而不是 ...

看4楼的吧

15113181453 发表于 2023-5-9 01:20:04

ansire 发表于 2023-5-8 23:28
第二个问题解决了,第一个问题没解决其实。三次都猜错了,我想告诉他“三次都猜错了,没机会了",而不是 ...

加个判断啊,把print("三次都猜错了,没机会了")
改成
if guess==answer:
    print("牛逼对了")
else:
    print("三次都猜错了,没机会了")
      

ansire 发表于 2023-5-9 09:05:03

15113181453 发表于 2023-5-9 01:20
加个判断啊,把print("三次都猜错了,没机会了")
改成

这次OK了,感谢感谢。需要再嵌套一个if语句才行

wangqq157 发表于 2023-5-9 09:11:33

import random
counts=3
answer=random.randint(1,10)
guess=int(input("猜猜猪猪侠心中想的是数字几,1~10的整数,有三次机会哦:"))
while True:
    counts=counts-1
    if guess==answer:
      print("猜对了")
      break
   
    elif counts>0:
      print("猜错了,还剩",counts,"次机会",end=" ")
      guess=int(input("请再猜一次:"))
    else:
      print("三次都猜错了,没有机会了")
      break
   
print("游戏结束!")
页: [1]
查看完整版本: 小甲鱼007讲改进小游戏