Number guess with score and difficulty

i got this code online:

import random

Default highscores for difficulties

easyScore = 9999999999
mediumScore = 9999999999
hardScore = 9999999999

attempts = [0]

isPlaying = True

Setting the global variable dif to 1-3 to determine difficulty later on

def difficultysetting(input):
global dif #explain

if input.lower() == "e":
    dif = 1
elif input.lower() == "m":
    dif = 2
elif input.lower() == "h":
    dif = 3

Returns the high score of whatever difficulty the user is playing on

def highscore():
if dif == 1:
return easyScore
elif dif == 2:
return mediumScore
elif dif == 3:
return hardScore

while isPlaying:
print(“Difficulties (E)asy, (M)edium, (H)ard”)
difficulty = difficultysetting(input("Choose a difficulty: "))
guess = -1 #explain

# Checking which difficulty user is playing on and generating a random number based on that
if dif == 1:
    number = int(random.randint(1, 100))
elif dif == 2:
    number = int(random.randint(1, 1000))
elif dif == 3:
    number = int(random.randint(1, 10000))

print(number) # will remove
# Prompting user which numbers to guess between per difficulty
while guess != number:
    while True:
        try:
            if dif == 1:
                guess = int(input("Pick a number between 1-100: "))
            elif dif == 2:
                guess = int(input("Pick a number between 1-1000: "))
            elif dif == 3:
                guess = int(input("Pick a number between 1-10000: "))
            break
        except:
            print("please enter a valid number")

    # Lets user know if they've guessed to high or too low
    if guess < number:
        print("Higher")
        attempts.append(guess)#adds into the attempt list
    elif guess > number:
        print("Lower")
        attempts.append(guess)
    else:
        print("That's Correct!")
        print("Guesses: ", len(attempts))

# Checking if new highscore is lower than old highscore and updating the variable if so
if dif == 1 and len(attempts) < easyScore:
    easyScore = len(attempts)
elif dif == 2 and len(attempts) < mediumScore:
    mediumScore = len(attempts)
elif dif == 3 and len(attempts) < hardScore:
    hardScore = len(attempts)

# reseting list
attempts.clear()
attempts.append(0)

# Asking user if they'd like to play again and ending while loop if no
print("Highscore: ", str(highscore()))
playAgain = input("Do you want to play again? (Y/N): ")

if playAgain.lower() == "n":
    isPlaying = False

//can anyone explain what does global dif mean? and is there any way to prevent the error when we enter a wrong data? i have only successfully done it for one part of it. Thank you