Letting unbanned users comment
The code is pretty clear in what it does, good work.



# We define a function here.
def ...
...
... = {} # Empty dictionary
...
... = False # Set the flag to 'False'


Many of these comments are not all that useful. I can see by looking at the code that the flag is set to false, or that a function has been defined. Usually you would comment with the reason why a piece of code exists. If you removed a comment from beside some code, could you still work out what the code does? If so the comment is probably not useful.



def display_comments():
    """Displays User Input (comments)"""
    if user_comments:  # If the dictionary 'user_comments' has at least one key value pair then execute this block of code.
        print("\nTop Comments:")
        for username, comment in user_comments.items(): # Define a for loop for each key value pair in the dictionary 'user_comments'.
            print(f"\n\t{username}: {comment}.")  # Print each key value pair.


This looks pretty good. It does what it says it does. Remove the inline comments and it is golden.



banned_users = ['pete', 'jack', ...
...
if username.lower() in banned_users:


Extracting banned users to a list is good. An issue might arise here if a with an uppercase letter is is added to the banned list. He won't be prevented from commenting! In general there are two ways to avoid this problem


Do a case-insenstive compare. In a Java this would be done with username.equalsIgnoreCase(banned_user)
Normalize both strings and then compare. This is the recommended method in Python.


So I would suggest making sure every banned user has been lowercased

banned_users = ['pete', 'jack', ...
banned_users = [banned_user.lower() for banned_user in banned_users]


If you believe you'll ever need to deal with international usernames casefold may be of interest. It will normalize strings more aggressively than lower will.

One result of lowercasing the names is that it cuts down on the number of available usernames. If Ben Dor and B. Endor both try to sign up as BenDor and BEndor respectively, only one can get the name. Is that OK? Will this ever be a problem?



repeat = input(continue_prompt)
if repeat == 'no':


This is one place I would lowercase as an answer of "NO" or "No" clearly indicate the user is done.



user_comments = {}
...    
user_comments[username] = comment


As the comments are stored in a dictionary, every username will only have one comment, the latest one they've made. For instance if the chat was meant to be

A: where is the coal?
B: walk west for 2 mins then
B: north for 1 min


The comments appear as

A: where is the coal?
B: north for 1 min


Is that intended? If not you can change to use a list containing the username and comment instead

comments = []
...
comments.append((username, comment))


and display_comments looks nearly identical

for username, comment in comments:
    ...