青衫折剑为谁舞 发表于 2021-7-6 19:06:56

Python求教

Python从入门到基础p5课件里面,和小甲鱼玩游戏,怎么表示10及其以上的数字,我输入10显示比8小,输入7777也显示比8小


liuzhengyuan 发表于 2021-7-6 19:15:07

可以说详细一点吗,没理解{:10_245:}

wp231957 发表于 2021-7-6 19:22:05

字符串和数值不一样

深谙流年 发表于 2021-7-6 20:04:57

把代码发出来

sunrise085 发表于 2021-7-6 20:28:12

没有给代码,看问题,只能盲猜你的错误。。。。。

估计你是直接拿input得到的结果进行比较了。。。input得到的是str类型,直接比较,会比较器ASCII码值,'10'与'8'进行比较,实际上比较的是'1'和'8'的ASCII码值,显然'8'更大,'7777'也是如此。

没代码不知道是不是这个错误。。

不能懒 发表于 2021-7-6 20:46:27

代码发出来好分析

超级玛尼哄 发表于 2021-7-6 22:21:36

代码~

Jin_Yu 发表于 2021-7-7 13:06:42

这个问题问的非常好

xfmiao 发表于 2021-7-7 16:46:36

看看代码

课件制作 发表于 2021-7-7 17:07:08

分支是不是逻辑有问题?

青衫折剑为谁舞 发表于 2021-7-7 18:36:52

本帖最后由 青衫折剑为谁舞 于 2021-7-7 18:43 编辑

print("小甲鱼的游戏")
temp = input("猜猜小甲鱼现在心里想的是哪个数:")
guess = int(temp)
while guess != 8:
    if guess == 8:
      print("我靠,你是小甲鱼肚子里的蛔虫吗?")
      print("哼,猜对也没有奖励给你。")
    else:
      if guess > 8:
            print("哎呀,大了大了!")
      else:
            print("哎呀,小了小了!")
    temp = input ("再猜一次吧:")
            
print("游戏结束,不和你玩了!")

Nakupenda_wewe 发表于 2021-7-8 18:01:59

青衫折剑为谁舞 发表于 2021-7-7 18:36
print("小甲鱼的游戏")
temp = input("猜猜小甲鱼现在心里想的是哪个数:")
guess = int(temp)


原因在于你代码的倒数第三行,即temp = input("再猜一次吧:")有问题。你的while循环里检验是guess这个变量而非temp,如果你第一次输入一个比8大的数,例如9,会提示大了。第二次你再输入一个比8小的数,例如5,5就赋值给temp了,但是此时guess的值仍为你第一次输入的9,所以进行第二次循环以及之后的所有循环都会提示大了。
另外如果第一次就输入8,并不会打印“我靠,你是小甲鱼肚子里的蛔虫吗”“哼,猜对也没有奖励给你。”这两句话,而是只打印“游戏结束,不和你玩了!”,原因是guess等于8,循环就不会运行,我稍微改动了一下:
print("小甲鱼的游戏")
temp = input("猜猜小甲鱼现在心里想的是哪个数:")
guess = int(temp)
while guess:
    if guess == 8:
      print("我靠,你是小甲鱼肚子里的蛔虫吗?")
      print("哼,猜对也没有奖励给你。")
      break
    else:
      if guess > 8:
            print("哎呀,大了大了!")
      else:
            print("哎呀,小了小了!")
    guess = int(input("再猜一次吧:"))
print("游戏结束,不和你玩了!")
页: [1]
查看完整版本: Python求教