Skip to content
Advertisement

Python script crashes when I input an integer

I was trying to make a simple dice in py, and I tried to make so you can change the amount of sides the dice has and if it’s left empty, to default to 6. But when I input something, it crashes.

import keyboard #Import keyboard stuff like enter (pip install keyboard)
import random #Import random stuff
import time

sides = 1
sidesSelect = input("Amount of sides the dice has. If empty, 6: ")
is_non_empty= bool(sidesSelect)
if is_non_empty is False:
    sides = 6
else:
    sides = sidesSelect

time.sleep(0.5)

while True: 
    nmb = random.randint(1,sides) #Get random integer
    print("The dice rolled ", nmb) 
    input('Press enter to roll the dice again') #Ask if you want to throw again
    time.sleep(random.uniform(0.2,0.8))

I already tried changing == is, and nothing happened

if is_non_empty is false:

Advertisement

Answer

One issue your code has is it is trying to use the input directly without taking care of the type.

input() returns a string, so it has to be converted to proper type before using it in randint

Try something like this.

#python3

sidesSelect = int(input("Amount of sides the dice has. If empty, 6: ") or "6")

nmb = random.randint(1, sidesSelect) #Get random integer

input()

User contributions licensed under: CC BY-SA
2 People found this is helpful
Advertisement