小仔子 发表于 2020-5-4 18:09:21

python基础

temp = input("请输入你心中的数字吧")
guess = int(temp)
while guess != 8:
    temp = input("哎呀,猜错了再来一次吧:")
    guess = int(temp`)   
    if guess == 8:
      print("哇草,你是小甲鱼心里的蛔虫吗?")
    else:
      if guess < 8:
            print("你输入的答案小了")
      else:
            print("你输入的答案大了")
print("你的游戏体验时间到了,游戏结束")

为什么输入小于8的数字后不显示{你输入的答案小了}

liuzhengyuan 发表于 2020-5-4 18:10:16

本帖最后由 liuzhengyuan 于 2020-5-4 18:11 编辑

第5行多了一个 ` 符号,还有,第一次输入是不会说出大小的,这就是游戏的特性

temp = input("请输入你心中的数字吧")
guess = int(temp)
while guess != 8:
    temp = input("哎呀,猜错了再来一次吧:")
    guess = int(temp`)   
    if guess == 8:
      print("哇草,你是小甲鱼心里的蛔虫吗?")
    else:
      if guess < 8:
            print("你输入的答案小了")
      else:
            print("你输入的答案大了")
print("你的游戏体验时间到了,游戏结束")

改成这样试试:

temp = input("请输入你心中的数字吧")
guess = int(temp)
while guess != 8:
    temp = input("哎呀,猜错了再来一次吧:")
    guess = int(temp)   
    if guess == 8:
      print("哇草,你是小甲鱼心里的蛔虫吗?")
    else:
      if guess < 8:
            print("你输入的答案小了")
      else:
            print("你输入的答案大了")
print("你的游戏体验时间到了,游戏结束")

小仔子 发表于 2020-5-4 18:12:42

liuzhengyuan 发表于 2020-5-4 18:10
第5行多了一个 ` 符号

temp = input("请输入你心中的数字吧")


还是不行,我输入小于8的数后显示:
请输入你心中的数字吧哎呀,猜错了再来一次吧:

Traceback (most recent call last):
File "/usercode/file.py", line 4, in <module>
    temp = input("哎呀,猜错了再来一次吧:")
EOFError: EOF when reading a line

liuzhengyuan 发表于 2020-5-4 18:14:12

小仔子 发表于 2020-5-4 18:12
还是不行,我输入小于8的数后显示:
请输入你心中的数字吧哎呀,猜错了再来一次吧:



第一次输入是不会说出大小的,这就是游戏的特性

小仔子 发表于 2020-5-4 18:16:17

liuzhengyuan 发表于 2020-5-4 18:14
第一次输入是不会说出大小的,这就是游戏的特性

Traceback (most recent call last):
File "/usercode/file.py", line 2, in <module>
    guess = int(temp)
ValueError: invalid literal for int() with base 10: ''

这是什么问题

liuzhengyuan 发表于 2020-5-4 18:17:45

小仔子 发表于 2020-5-4 18:16
Traceback (most recent call last):
File "/usercode/file.py", line 2, in
    guess = int(temp) ...

这是因为你什么也没有输入……才会这样子……
你是不是用在线编译器做的,建议用离线的 IDLE

wuqramy 发表于 2020-5-4 18:18:48

这样就OK了
temp = input("请输入你心中的数字吧")
guess = int(temp)
while guess != 8:
    if guess < 8:
      print("你输入的答案小了")
    else:
      print("你输入的答案大了")
    temp = input("哎呀,猜错了再来一次吧:")
    guess = int(temp)
if guess == 8:
    print("哇草,你是小甲鱼心里的蛔虫吗?")
print("你的游戏体验时间到了,游戏结束")

wuqramy 发表于 2020-5-4 18:19:29

小仔子 发表于 2020-5-4 18:16
Traceback (most recent call last):
File "/usercode/file.py", line 2, in
    guess = int(temp) ...

你什么都没有输入
程序一开始就按了回车

小仔子 发表于 2020-5-4 18:21:06

liuzhengyuan 发表于 2020-5-4 18:17
这是因为你什么也没有输入……才会这样子……
你是不是用在线编译器做的,建议用离线的 IDLE

对,我用的是在线,我是第一次写,
我想问一下
while guess != 8:
    temp = input("哎呀,猜错了再来一次吧:")
    guess = int(temp)   
    if guess == 8:
      print("哇草,你是小甲鱼心里的蛔虫吗?")
    else:
      if guess < 8:
            print("你输入的答案小了")
      else:
            print("你输入的答案大了")
这些不是循环后这才开始的吗?
那我第一次输入正确后为什么也会显示
下面循环正确的结果

wuqramy 发表于 2020-5-4 18:23:01

小仔子 发表于 2020-5-4 18:21
对,我用的是在线,我是第一次写,
我想问一下
while guess != 8:


用这个试试
temp = input("请输入你心中的数字吧")
guess = int(temp)
while guess != 8:
    if guess < 8:
      print("你输入的答案小了")
    else:
      print("你输入的答案大了")
    temp = input("哎呀,猜错了再来一次吧:")
    guess = int(temp)
if guess == 8:
    print("哇草,你是小甲鱼心里的蛔虫吗?")
print("你的游戏体验时间到了,游戏结束")

liuzhengyuan 发表于 2020-5-4 18:24:13

本帖最后由 liuzhengyuan 于 2020-5-4 18:26 编辑

小仔子 发表于 2020-5-4 18:21
对,我用的是在线,我是第一次写,
我想问一下
while guess != 8:


看一下我加的注释,应该就能明白了

temp = input("请输入你心中的数字吧") # 循环前第一次输入
guess = int(temp)
while guess != 8: # 如果输入错误,会进循环
    temp = input("哎呀,猜错了再来一次吧:") # 第一次输入完后,就直接第二次输入了,没有进行判断
    guess = int(temp)   
    if guess == 8:
      print("哇草,你是小甲鱼心里的蛔虫吗?")
    else:
      if guess < 8: # 按着顺序的思维想,到第二次输入时,才会判断大小……
            print("你输入的答案小了")
      else:
            print("你输入的答案大了")
print("你的游戏体验时间到了,游戏结束")

如果你想要第一次也判断的话,就采用楼上的方法吧~

小仔子 发表于 2020-5-4 18:28:48

temp = input("请输入你心中的数字吧")
guess = int(temp)
while guess != 8:
    temp = input("哎呀,猜错了再来一次吧:")
    guess = int(temp)
        if guess < 8:
              print("你输入的答案小了")
    else:
      print("你输入的答案大了")mp)

if guess == 8:
    print("哇草,你是小甲鱼心里的蛔虫吗?")
print("你的游戏体验时间到了,游戏结束")

小仔子 发表于 2020-5-4 18:29:20

小仔子 发表于 2020-5-4 18:28
temp = input("请输入你心中的数字吧")
guess = int(temp)
while guess != 8:


我这样可以吗

小仔子 发表于 2020-5-4 18:29:58

小仔子 发表于 2020-5-4 18:28
temp = input("请输入你心中的数字吧")
guess = int(temp)
while guess != 8:


我这样可以吗

wuqramy 发表于 2020-5-4 18:30:26

小仔子 发表于 2020-5-4 18:29
我这样可以吗

可以
但是第一次输入的话还是直接开始第二次
页: [1]
查看完整版本: python基础