Python求教
Python从入门到基础p5课件里面,和小甲鱼玩游戏,怎么表示10及其以上的数字,我输入10显示比8小,输入7777也显示比8小可以说详细一点吗,没理解{:10_245:} 字符串和数值不一样 把代码发出来 没有给代码,看问题,只能盲猜你的错误。。。。。
估计你是直接拿input得到的结果进行比较了。。。input得到的是str类型,直接比较,会比较器ASCII码值,'10'与'8'进行比较,实际上比较的是'1'和'8'的ASCII码值,显然'8'更大,'7777'也是如此。
没代码不知道是不是这个错误。。 代码发出来好分析 代码~ 这个问题问的非常好
看看代码 分支是不是逻辑有问题? 本帖最后由 青衫折剑为谁舞 于 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("游戏结束,不和你玩了!") 青衫折剑为谁舞 发表于 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]