鱼C论坛

 找回密码
 立即注册
查看: 1961|回复: 9

[已解决]课后作业第四讲设置3次输入机会的代码可以这样改吗?

[复制链接]
发表于 2022-8-11 01:04:55 | 显示全部楼层 |阅读模式

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

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

x
file:///C:/Users/29613/Desktop/%E6%8D%95%E8%8E%B7.PNG
我不太明白guess和end的设置,所以按我自己的理解修改了一下,有人可以帮我看看这样修改是可以的嘛?
最佳答案
2022-8-11 14:03:22
本帖最后由 一点点儿 于 2022-8-11 14:19 编辑

这样修改的话有一些问题:

1.如果第一次就猜对不会打印 "你是小甲鱼肚子里的蛔虫吗?!"   "哼,猜中了也没有奖励"

修改方案:在while循环后加上
  1. if guess == secret:
  2.             print("你是小甲鱼肚子里的蛔虫吗?!")
  3.             print("哼,猜中了也没有奖励")
复制代码


2.源代码这里
  1. if times > 0:
  2.             print("再试一次吧:",end = "")
  3.         else:
  4.             print("机会用光啦")
复制代码

判断条件应为 times > 1




3.第一次猜错不会提示猜大了还是猜小了,这里建议参考老师的代码







前2个问题修改后的代码如下:
  1. import random
  2. times = 3
  3. secret = random.randint(1,10)
  4. print('----------小甲鱼工作室-----------')
  5. temp = input("不妨猜一下小甲鱼现在想的是哪一个数字:")#让用户随机输入一个数
  6. guess = int(temp)
  7. while (guess != secret) and (times>1):
  8.     temp = input("猜错了请重新输入吧:")
  9.     guess = int(temp)#如果把变量guess放在前面
  10.     times = times - 1
  11.     if guess == secret:
  12.             print("你是小甲鱼肚子里的蛔虫吗?!")
  13.             print("哼,猜中了也没有奖励")
  14.     else:
  15.         if guess > secret:
  16.             print("猜大啦")
  17.         else:
  18.             print("猜小啦")
  19.         if times > 1:
  20.             print("再试一次吧:",end = "")
  21.         else:
  22.             print("机会用光啦")
  23. if times == 3:
  24.             print("你是小甲鱼肚子里的蛔虫吗?!")
  25.             print("哼,猜中了也没有奖励")
  26.             
  27. print("游戏结束,不玩啦!")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-8-11 01:07:53 | 显示全部楼层
这是老师的:
import random
times = 3
secret = random.randint(1,10)
print('----------小甲鱼工作室-----------')
guess = 0
print("不妨猜一下小甲鱼现在想的是哪一个数字:",end="")
while (guess != secret) and (times > 0):
    temp = input()
    guess = int(temp)
    times = times - 1
    if guess == secret:
            print("你是小甲鱼肚子里的蛔虫吗?!")
            print("哼,猜中了也没有奖励")
    else:
        if guess > secret:
            print("猜大啦")
        else:
            print("猜小啦")
        if times > 0:
            print("再试一次吧:",end = "")
        else:
            print("机会用光啦")
        
print("游戏结束,不玩啦!")
这是我的:
import random
times = 3
secret = random.randint(1,10)
print('----------小甲鱼工作室-----------')
temp = input("不妨猜一下小甲鱼现在想的是哪一个数字:")#让用户随机输入一个数
guess = int(temp)
while (guess != secret) and (times>1):
    temp = input("猜错了请重新输入吧:")
    guess = int(temp)#如果把变量guess放在前面
    times = times - 1
    if guess == secret:
            print("你是小甲鱼肚子里的蛔虫吗?!")
            print("哼,猜中了也没有奖励")
    else:
        if guess > secret:
            print("猜大啦")
        else:
            print("猜小啦")
        if times > 0:
            print("再试一次吧:",end = "")
        else:
            print("机会用光啦")
        
print("游戏结束,不玩啦!")
麻烦了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-11 01:32:25 | 显示全部楼层
fish鳞陨 发表于 2022-8-11 01:07
这是老师的:
import random
times = 3

给你的代码稍微调了一下顺序
  1. import random
  2. times = 3
  3. secret = random.randint(1,10)
  4. print('----------小甲鱼工作室-----------')
  5. temp = input("不妨猜一下小甲鱼现在想的是哪一个数字:")#让用户随机输入一个数
  6. guess = int(temp)
  7. times = times - 1
  8. while (guess != secret) and (times>0):
  9.     if guess == secret:
  10.             print("你是小甲鱼肚子里的蛔虫吗?!")
  11.             print("哼,猜中了也没有奖励")
  12.     else:
  13.         if guess > secret:
  14.             print("猜大啦")
  15.         else:
  16.             print("猜小啦")
  17.     temp = input("再试一次吧:")
  18.     guess = int(temp)#如果把变量guess放在前面
  19.     times = times - 1
  20.     if times <= 0:
  21.         print("机会用光啦")
  22.         
  23. print("游戏结束,不玩啦!")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-11 10:32:50 | 显示全部楼层
本帖最后由 jackz007 于 2022-8-11 10:41 编辑

        print() 加了 end = "" 选项后,完成打印后不会回车换行,考察下面的代码区别及对应的效果差异
【代码-1】:
  1. print('ABC')
  2. print('DEF')
  3. print('GHI')
复制代码

【效果-1】:
  1. ABC
  2. DEF
  3. GHI
复制代码

【代码-2】:
  1. print('ABC' , end = '')
  2. print('DEF' , end = '')
  3. print('GHI')
复制代码

【效果-2】:
  1. ABCDEFGHI
复制代码

        
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-11 10:59:05 | 显示全部楼层
跟小甲鱼所说代码相对比多一次input输入,所以修改下第二次input输入位置,跑出效果与小甲鱼基本一致
你的
  1. import random
  2. times = 3
  3. secret = random.randint(1,10)
  4. print('----------小甲鱼工作室-----------')
  5. temp = input("不妨猜一下小甲鱼现在想的是哪一个数字:")#[color=Red]多一次input输入[/color]
  6. guess = int(temp)
  7. while (guess != secret) and (times>1):
  8.     temp = input("猜错了请重新输入吧:")
  9.     guess = int(temp)#如果把变量guess放在前面
  10.     times = times - 1
  11.     if guess == secret:
  12.             print("你是小甲鱼肚子里的蛔虫吗?!")
  13.             print("哼,猜中了也没有奖励")
  14.     else:
  15.         if guess > secret:
  16.             print("猜大啦")
  17.         else:
  18.             print("猜小啦")
  19.         if times > 0:
  20.             print("再试一次吧:",end = "")
  21.         else:
  22.             print("机会用光啦")
  23.         
  24. print("游戏结束,不玩啦!")
复制代码



修改后
  1. import random
  2. times = 3
  3. secret = random.randint(1,10)
  4. print('----------小甲鱼工作室-----------')
  5. temp = input("不妨猜一下小甲鱼现在想的是哪一个数字:")#让用户随机输入一个数
  6. guess = int(temp)
  7. while (guess != secret) and (times>1):
  8.    
  9.     guess = int(temp)#如果把变量guess放在前面
  10.     times = times - 1
  11.     if guess == secret:
  12.             print("你是小甲鱼肚子里的蛔虫吗?!")
  13.             print("哼,猜中了也没有奖励")
  14.     else:
  15.         if guess > secret:
  16.             print("猜大啦")
  17.            
  18.         else:
  19.             print("猜小啦")
  20.            
  21.         temp = input("猜错了请重新输入吧:")#[color=Red]改变输入位置[/color]
  22.         if times > 0:
  23.             print("再试一次吧:",end = "")
  24.         else:
  25.             print("机会用光啦")
  26.         
  27. print("游戏结束,不玩啦!")
复制代码


你可以试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-11 14:03:22 | 显示全部楼层    本楼为最佳答案   
本帖最后由 一点点儿 于 2022-8-11 14:19 编辑

这样修改的话有一些问题:

1.如果第一次就猜对不会打印 "你是小甲鱼肚子里的蛔虫吗?!"   "哼,猜中了也没有奖励"

修改方案:在while循环后加上
  1. if guess == secret:
  2.             print("你是小甲鱼肚子里的蛔虫吗?!")
  3.             print("哼,猜中了也没有奖励")
复制代码


2.源代码这里
  1. if times > 0:
  2.             print("再试一次吧:",end = "")
  3.         else:
  4.             print("机会用光啦")
复制代码

判断条件应为 times > 1




3.第一次猜错不会提示猜大了还是猜小了,这里建议参考老师的代码







前2个问题修改后的代码如下:
  1. import random
  2. times = 3
  3. secret = random.randint(1,10)
  4. print('----------小甲鱼工作室-----------')
  5. temp = input("不妨猜一下小甲鱼现在想的是哪一个数字:")#让用户随机输入一个数
  6. guess = int(temp)
  7. while (guess != secret) and (times>1):
  8.     temp = input("猜错了请重新输入吧:")
  9.     guess = int(temp)#如果把变量guess放在前面
  10.     times = times - 1
  11.     if guess == secret:
  12.             print("你是小甲鱼肚子里的蛔虫吗?!")
  13.             print("哼,猜中了也没有奖励")
  14.     else:
  15.         if guess > secret:
  16.             print("猜大啦")
  17.         else:
  18.             print("猜小啦")
  19.         if times > 1:
  20.             print("再试一次吧:",end = "")
  21.         else:
  22.             print("机会用光啦")
  23. if times == 3:
  24.             print("你是小甲鱼肚子里的蛔虫吗?!")
  25.             print("哼,猜中了也没有奖励")
  26.             
  27. print("游戏结束,不玩啦!")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-11 14:36:40 | 显示全部楼层
jackz007 发表于 2022-8-11 10:32
print() 加了 end = "" 选项后,完成打印后不会回车换行,考察下面的代码区别及对应的效果差异
【 ...

好详细!现在明白了 非常感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-11 14:47:59 | 显示全部楼层
一点点儿 发表于 2022-8-11 14:03
这样修改的话有一些问题:

1.如果第一次就猜对不会打印 "你是小甲鱼肚子里的蛔虫吗?!"   "哼,猜中了 ...

重新跑了下确实出现了你说的情况,修改后就正常啦 非常感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-11 14:54:20 | 显示全部楼层
临时号 发表于 2022-8-11 01:32
给你的代码稍微调了一下顺序

我有一个问题想问您一下,就是while后是猜不对的情况,但是下面一句又是guess==secret,那如果一开始while后的条件不成立,是会直接跳过这个循环来到if这里吗?(不知道这么说能不能把我的疑问点讲明白orz)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-11 15:27:08 | 显示全部楼层
fish鳞陨 发表于 2022-8-11 14:54
我有一个问题想问您一下,就是while后是猜不对的情况,但是下面一句又是guess==secret,那如果一开始whil ...

会直接说游戏结束,不玩啦,不好意思,没考虑到这种情况
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-18 09:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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