鱼C论坛

 找回密码
 立即注册
查看: 1045|回复: 5

python 零基础入门第4讲课后

[复制链接]
发表于 2019-5-3 19:40:33 | 显示全部楼层 |阅读模式

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

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

x
写了如下codes,但是在run module 的时候发现如果才的数字小,之后会一直出现“小了,请重新输入:" 即使输入的数字抖超过1-10这个范围,求解!!但是如果先小后大就不会有这个问题,很疑惑

import random
secret = random.randint(1,10)
temp = input("你猜猜小甲鱼现在心里想的是什么数字?")
guess = int(temp)
while guess != secret:
    if guess == secret:
        print("哇擦,你是小甲鱼肚子里的蛔虫吗?")
        print("哼,猜中了也没有奖励!")
    else:
        if guess > secret:
            temp = input("诶呀,大了!请重新输入吧:")
            guess = int(temp)
        if guess < secret:
            temp = input("诶呀,小了!请重新输入吧:")
print("哇擦,你是小甲鱼肚子里的蛔虫吗?")
print("哼,猜中了也没有奖励!")
print("游戏结束,不玩了")
—————————————— 下方为运行结果——————————————————

你猜猜小甲鱼现在心里想的是什么数字?1
诶呀,小了!请重新输入吧:2
诶呀,小了!请重新输入吧:3
诶呀,小了!请重新输入吧:4
诶呀,小了!请重新输入吧:5
诶呀,小了!请重新输入吧:6
诶呀,小了!请重新输入吧:7
诶呀,小了!请重新输入吧:8
诶呀,小了!请重新输入吧:9
诶呀,小了!请重新输入吧:10
诶呀,小了!请重新输入吧:11

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

使用道具 举报

 楼主| 发表于 2019-5-3 19:52:00 | 显示全部楼层
应该是我在 if guess < secret:
                    temp = input(......)
忘了加          guess = int(temp) 这个的原因吧?我后来加上后貌似就好了

那么另一个问题想请教的问题是,对于第一个else 后面两次出现的 guess = int(temp) 这个语句,可否只出现一次呢?如果可以,应该怎么优化哈?感谢&#128591;
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-3 20:17:45 | 显示全部楼层
temp = input("诶呀,大了!请重新输入吧:")
            guess = int(temp)

直接写成guess=int(input("诶呀,大了!请重新输入吧:"))
小了同理

大了或小了都得重新输入啊 怎么能只出现一次呢..
那简单 反正只有提示不同 在两个if后面再重新输入就是了
  1. import random
  2. secret = random.randint(1,10)
  3. temp = input("你猜猜小甲鱼现在心里想的是什么数字?")
  4. guess = int(temp)
  5. while guess != secret:
  6.     if guess == secret:
  7.         print("哇擦,你是小甲鱼肚子里的蛔虫吗?")
  8.         print("哼,猜中了也没有奖励!")
  9.     else:
  10.         if guess > secret:
  11.             temp = input("诶呀,大了!请重新输入吧:"
  12.             # 删掉了
  13.         if guess < secret:
  14.             temp = input("诶呀,小了!请重新输入吧:")
  15.         guess = int(temp)  # 加在了这里

  16. print("哇擦,你是小甲鱼肚子里的蛔虫吗?")
  17. print("哼,猜中了也没有奖励!")
  18. print("游戏结束,不玩了")


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

使用道具 举报

发表于 2019-5-3 20:36:19 | 显示全部楼层
  1. import random
  2. secret = random . randint(1 , 10)
  3. prompt = '你猜猜小甲鱼现在心里想的是什么数字?'
  4. while True :                                             # 应该把输入放入循环,以便统一输入、统一判断、统一显示
  5.     guess = int(input(prompt))
  6.     if guess == secret:
  7.         print("哇擦,你是小甲鱼肚子里的蛔虫吗?")
  8.         print("哼,猜中了也没有奖励!")
  9.         break                                            # 添加此句,猜对了应该结束循环
  10.     else:
  11.         prompt = '诶呀,小了!请重新输入吧:'
  12.         if guess > secret:
  13.             prompt = '诶呀,大了!请重新输入吧:'
  14. print("游戏结束,不玩了")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-3 20:38:29 | 显示全部楼层
ietar 发表于 2019-5-3 20:17
temp = input("诶呀,大了!请重新输入吧:")
            guess = int(temp)

感谢,还有如下问题想请教下:

Q1: 我想在while 语句的时候在限制下次数,但是我理解 times <4应该是输入3次,第三次不对,就说没有机会了,可是运行的时候发现是第4次输错,才说没机会了?

Q2: 关于结束语,我的想法是如果在正确次数内,最后的结束语都应只是 guess == secret 后的三句,然后如果在限定次数内都没有答对,结束语是“没有机会”,但是目前是正确的后面也会有“没有机会”, 要想达到正确的目的,是不是在guess == secret 的三个语句后面还有加些什么??

import random
secret = random.randint(1,10)
temp = input("你猜猜小甲鱼现在心里想的是什么数字?")
guess = int(temp)
times = 1
while (guess != secret) and (times < 4):
    guess = int(temp)
    times += 1
    if guess == secret:
        print("哇擦,你是小甲鱼肚子里的蛔虫吗?")
        print("哼,猜中了也没有奖励!")
        print("游戏结束,不玩了")
    else:
        if guess > secret:
            temp = input("诶呀,大了!请重新输入吧:")
        else:
            temp = input("诶呀,小了!请重新输入吧:")
print("抱歉,机会已经用尽啦!")
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-3 20:55:27 | 显示全部楼层
玛吉锕咪 发表于 2019-5-3 20:38
感谢,还有如下问题想请教下:

Q1: 我想在while 语句的时候在限制下次数,但是我理解 times  secret:
...

4楼朋友提示了已经 因为循环之前已经输入了1次 加上循环的3次 所以有4次机会

结束那个更好办 最后那行print之前价格判断 if times==4: print('......')

break第4课这么早应该还没讲到 所以暂时这么改就是了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-15 15:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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