有人知道我的初学者(骰子游戏)代码是否正确以及从哪里开始制作骰子游戏?

时间:2014-11-07 21:25:06

标签: python error-handling runtime-error

以下是代码:

from random import randint
def random_number():
    random_num = randint(range(1,7))
    for i in random_num:
        enter = int(raw_input("Enter a nunber: "))
        if random_num == enter:
            print "Congratulations, You Win!!!"
        elif random_num != enter:
            print "That's not the correct answer!"
        else:
            print "That's not a valid number!"

出于某种原因,我无法测试我的代码(它会弹出cmd,而它就是这样)。有人可以帮我吗?

3 个答案:

答案 0 :(得分:0)

替换:

 random_num = randint(range(1,7))

为:

 random_num = randint(1,7)

还有:

对于范围内的i(1,7):

from random import randint
def random_number():
    random_num = randint(1,7)
        for i in range(1,7):
            enter = int(raw_input("Enter a nunber: "))
            if type(enter) == int:
                if random_num == enter:
                    print "Congratulations, You Win!!!"
                    break
                else:print "wrong guess"
            else:print "That's not a valid number!"

RANDOM_NUMBER()

range将给出从开始到结束1的数字列表,如果给出了ony end,它将以'0'作为起始点。 randint会在指定范围之间给出随机数
为什么你的cmd弹出并出去,你没有调用你定义的函数random_number你需要调用函数,就像我在编辑的代码中所做的那样

答案 1 :(得分:0)

  

出于某种原因,我无法测试我的代码(它会弹出cmd,就是这样)。有人可以帮我吗?

您创建了一个函数random_number,但您从未调用该函数。所以,当你运行你的脚本时,它只是定义了那个函数,然后,没有其它任何东西,它就会退出。

要解决此问题,只需在调用它的脚本末尾添加一行:

random_number()

你也有这个更一般的二合一问题:

  

有人知道我的初学者(骰子游戏)代码是否正确以及从哪里开始制作骰子游戏?

这不正确。事实上,它存在多种问题,而且技术上更好但很奇怪。不幸的是,StackOverflow不是一个调试服务。如果你有一个特定的问题,你可以问这个并得到答案,但不只是“让我的代码工作”。

至于从哪里开始......好吧,你已经开始在正确的地方。你正在模拟一个(7面)模具的滚动,你正在与用户交互...这是一个骰子游戏,对吧?你现在只需要调试它。

答案 2 :(得分:-1)

如果您在Windows上,只需使用您的终端,cd到目录并使用" python filename.py"执行代码。其中filename是你的python代码的文件名。如果已经在系统变量中安装了python,这将有效。 (安装时默认)

否则,你应该改变:

random_num = randint(range(1,7)) 

random_num = randint(1,7)

并删除

for i in random_num:

你的代码应该可行,但另外两个条件是没用的。 你应该使用像

这样的东西
enter.isdigit()

知道用户是否输入了号码。

加,

enter < 7 and enter > 0

确保用户输入的号码在有效范围内。

你应该使用IDE来工作,这会容易得多!

编辑: 在这里,我会做这样的事情:

from random import randint
def random_number():
    random_num = randint(1,7)
    while True:
        enter = raw_input("Enter a number: ")
        if enter.isdigit():
            if int(enter)<7 and int(enter)>0:
                if random_num == int(enter):
                    print "Congratulations, You Win!!!"
                    break
                elif random_num != int(enter):
                    print "That's not the correct answer!"
                    break
            else:
                print "That's not a valid number!"            
        else:
            print "That's not even a number!"

random_number()