使用随机包时的空白文本

时间:2018-04-22 17:34:32

标签: python random

我正在制作骰子计划,每当我尝试输入" D4" (因为那是我现在唯一拥有的东西)我得到了我编码的随机数,然后是空白文本。

我正在使用:
Windows 10 Home
Python 3.6

这是我的代码:

Excelsior JET

我知道这是非常混乱的代码,所以我会尝试解释为什么我会按照它们的方式拥有某些东西。

首先,这:https://i.stack.imgur.com/6cvmD.png

我之所以这样做,是因为我只想尝试" if"声明一般代码,没有任何显示。这就是为什么我只是在else语句中显示实际代码的原因。

其次,这是:https://i.stack.imgur.com/QBoj0.png

我知道这可以很容易地简化,但我想要做的是在实际结果出现之前显示随机数,这样做的结果是它实际上是你的呀轧制。

我真的希望有人看到这个,因为我现在已经尝试修复它大约5天了。

3 个答案:

答案 0 :(得分:0)

所以,如果我确实理解你,那么你应该做你想做的事情:

import os
import time
from random import *

os.system('cls')

print("What dice would you like to roll?")

print("D4, D6, D10, D12, D20")

D4 = randint(1, 4) # No need for the int conversions. randint returns an int (as the name suggests)

D6 = randint(1, 6)

D10 = randint(1, 10)

D12 = randint(1, 12)

D20 = randint(1, 20)

age = D4

diceI = input("Name: ")

if diceI == "D4": # if the input you gave equals the string "D4"
    os.system('cls')
    time.sleep(.1)
    print("4")
    os.system('cls')
    time.sleep(.1)
    print("2")
    os.system('cls')
    time.sleep(.1)
    print("3")
    os.system('cls')
    time.sleep(.1)
    print("4")
    os.system('cls')
    time.sleep(.1)
    print("1")
    os.system('cls')
    time.sleep(.1)
    print("3")
    os.system('cls')
    time.sleep(.1)
    print("2")
    os.system('cls')
    time.sleep(.1)
    print(randint(1, 4)) # No need for the random.randint, since you used import *

答案 1 :(得分:0)

只是

if (diceI == "D4"):

而不是

if (diceI == D4):

,因为D4是一个字符串

答案 2 :(得分:0)

您的错误来自于将字符串diceI = input("Name: ")与存储在变量D4 = int(randint(1, 4))中的整数进行比较。

diceI是一个字符串 - 所以将它与另一个字符串进行比较 - 而不是整数。另外D4 = randint(1, 4)就足够了 - randint已经产生了一个整数,你不需要将int(randint(1, 4))转换成一个整数。

您可以直接从输入中获取骰子并跳过部分代码,如下所示:

import random 
import os
import time
os.system('cls')

print("What dice would you like to roll?")
print("D4, D6, D10, D12, D20")

dice = ""
# continue to ask for input until the input is one of the ones in the list
while dice not in ["D4", "D6", "D10", "D12", "D20"]:
    dice = input("Name: ")

diceNr = int(dice[1:])  # remove the D and convert the remaining number to integer

if (diceNr == 4):
    print("lol") 
else:
    # get a random number between 1 and diceNr 
    print(random.randint(1,diceNr ))  

请参阅randint-Doku

  

random.randint(a,b)
  返回随机整数N,使得a <= N <= b