鱼C论坛

 找回密码
 立即注册
查看: 2373|回复: 6

[已解决]python问题 请教为什么会这样呢?

[复制链接]
发表于 2020-3-12 20:32:22 | 显示全部楼层 |阅读模式

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

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

x
我模仿作业中的答案写出了这个程序:
import random
answer = random.randint(1,10)
print("__________分割线___________")
a = input("please input a number you want:")
#print("please input a number you want:")
i = 3
b = 0
while (b != answer) and (i > 0):
    #a = input()
    b = int(a)
    i = i-1
    if b == answer:
        print("you win!")
    else:
        if b > answer:
            print("bigger!")
        else:
            print("smaller!")
        if i > 0:
            print("one more time:")
        else:
            print("no chance!")
print("GG~~~")


但是运行结果却是这样的:
__________分割线___________
please input a number you want:5
smaller!
one more time:
smaller!
one more time:
smaller!
no chance!
GG~~~


请问这是为什么呢?为啥一次性就自动运行完了呢?

最佳答案
2020-3-12 21:42:41
本帖最后由 wuqramy 于 2020-3-12 21:50 编辑

你的a只会保持第一次输入的值,有用的代码被#注释了,正确代码如下:
import random
answer = random.randint(1,10)
print("__________分割线___________")
a = input("please input a number you want:")
i = 3
b = 0
while (b != answer) and (i > 0):
    b = int(a)
    i = i-1
    if b == answer:
        print("you win!")
    else:
        if b > answer:
            print("bigger!")
        else:
            print("smaller!")
        if i > 0:
            a = input("one more time:")
        else:
            print("no chance!")
print("GG~~~")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-12 20:34:41 | 显示全部楼层
因为循环中没有a = input("please input a number you want:"),a的值一直不变
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-12 21:34:55 | 显示全部楼层
#a = input()井号把这段代码注释掉了,不再发挥作用,所以a的值在循环中一直不变。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-12 21:42:41 | 显示全部楼层    本楼为最佳答案   
本帖最后由 wuqramy 于 2020-3-12 21:50 编辑

你的a只会保持第一次输入的值,有用的代码被#注释了,正确代码如下:
import random
answer = random.randint(1,10)
print("__________分割线___________")
a = input("please input a number you want:")
i = 3
b = 0
while (b != answer) and (i > 0):
    b = int(a)
    i = i-1
    if b == answer:
        print("you win!")
    else:
        if b > answer:
            print("bigger!")
        else:
            print("smaller!")
        if i > 0:
            a = input("one more time:")
        else:
            print("no chance!")
print("GG~~~")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-12 22:11:09 | 显示全部楼层
import random
answer = random.randint(1,10)
print("__________分割线___________")
a = input("please input a number you want:")
#print("please input a number you want:")
i = 3
b = 0
while (b != answer) and (i > 0):
    #a = input()                    问题出自这行, #把a=input()语句变成注释了
    b = int(a)
    i = i-1
    if b == answer:
        print("you win!")
    else:
        if b > answer:
            print("bigger!")
        else:
            print("smaller!")
        if i > 0:
            print("one more time:")
        else:
            print("no chance!")
print("GG~~~")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-12 22:12:41 | 显示全部楼层
感谢大家的解答,我明白了。然后我根据“wuqramy”的建议修改了代码,确实能够正常运行了,非常感谢。我想再追问大家一下,修改后我觉得while后边的(b!=answer)好像没什么意义,就去掉了,结果是也能够正常运行程序,那是不是这个判断语句确实没有什么用处呢?~~

代码如下:

import random
answer = random.randint(1,10)
print("__________分割线___________")
a = input("please input a number you want:")
i = 3
b = 0
while i > 0:   
    b = int(a)
    i = i-1
    if b == answer:
        print("you win!")
    else:
        if b > answer:
            print("bigger!")
        else:
            print("smaller!")
        if i > 0:
            a = input("one more time:")
        else:
            print("no chance!")
print("GG~~~")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-13 08:31:39 | 显示全部楼层
#把有用代码注释掉了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-12 04:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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