I'm trying to write a dice roller as practice. I've tried to look into try, except, while, but neither works as I intend it - before asking if the user wants to continue, I'd want to check if the user input is valid, and if not, return to user_number1. Am I looking at this from the wrong angle? What can I do with this? Sorry for the possibly stupid question, I'm pretty new to this.
import random
print("Welcome to the dice roller!")
def roller():
    user_number1 = input("Please input the dice you want to use in the following format: XdY > ")
    user_number_fin = user_number1.split("d")
    num1 = int(user_number_fin[0])
    num2 = int(user_number_fin[1])
    if num1 == 1:
        result1 = random.randint(num1, num1*num2)
        print("Your roll is: " + str(result1) + " (" + str(num1) + "d" + str(num2) + ")" )
    else:
        dice_number = 1
        list_of_results = []
        while dice_number <= num1:
            result2 = random.randint(num1, num2)
            list_of_results.append(result2)
            dice_number += 1
        print("Your roll is: " + str(sum(list_of_results)) + " (" + str(num1) + "d" + str(num2) + ", " + str(list_of_results)+ ")")
def shouldi():
    roller()
    usercont = input("Do you want to continue? y/n > ")
    while usercont in ["Y", "y"]:
        roller()
        usercont = input("Do you want to continue? y/n > ")
    if usercont in ["N", "n"]:
        print("Thank you for using the dice roller. Bye!")
        quit()
    else:
        print("That is not a valid input.")
        usercont
 
     
    