Edit: Same with more explanation due to down votes
Considering your approach with a global variable count (global, because it is not within the function), you would need to do two adaptions:
- You need to make countavailable locally with the keywordglobal
- Since you use a global variable, you do not need to return it because it is available anyway
Code:
count = 0
def fizz_count(x):
    global count # make count available for writing in the local scope
    for string in x:
        if string == 'fizz':
            count = count + 1
    else:
        count = count
Now actually using a global variable especially for such kind of tasks is not recommended, because it takes more time to load, you have to take care of the current state and stuff like that, so you rather'd introduce a local variable and pass it via the return statement as you did.
- Put count = 0into function
Code
# we put count = 0 into the function
def fizz_count(x):
    count = 0 # right here
    for string in x:
        if string == 'fizz':
            count = count + 1
    else:
        count = count
    return count
Now a new count will be initialized to zero within the function.
Now there are two more things here:
- the elsestatement
- and the increment
Since the else statement is outside the loop it will be only executed if the if condition was never True during the loop. That has some use cases. But you'd put it in the loop usually. However, in your case it basically does not change anything, thats why it can be removed completely.
Well and the second point is that the increment can be written as count += 1 which is considered more readable, because it is less clumsy and the second count is merged into the +=
Therefore finally the function could be written like so
def fizz_count(x):
    count = 0 
    for string in x:
        if string == 'fizz':
            count += 1
    return count
Check also the reasonable solutions of the other answers