assistant: To add a scoring system to your Pong game, you will need to keep track of the score for each player and display it on the screen. Here is an example of how you can modify your existing code to add a scoring system:
#Import the pygame library
import pygame

#Initialize the game
pygame.init()

#Set the window size
window_width = 800
window_height = 600

#Create the window
window = pygame.display.set_mode((window_width, window_height))

#Set the window title
pygame.display.set_caption('Pong')

#Set the clock
clock = pygame.time.Clock()

#Define colors
white = (255, 255, 255)
black = (0, 0, 0)

#Define game variables
ball_pos_x = window_width/2
ball_pos_y = window_height/2
ball_radius = 10
ball_vel_x = 3
ball_vel_y = 3

#Define paddles
paddle_width = 10
paddle_height = 80
paddle_1_pos_x = 20
paddle_1_pos_y = window_height/2 - paddle_height/2
paddle_2_pos_x = window_width - 20 - paddle_width
paddle_2_pos_y = window_height/2 - paddle_height/2

#Define scores
player_1_score = 0
player_2_score = 0
font = pygame.font.Font(None, 36)

#Game loop
while True:
    #Handle events
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            exit()

    #Update positions
    ball_pos_x += ball_vel_x
    ball_pos_y += ball_vel_y

    #Check for collisions
    if ball_pos_x - ball_radius <= 0:
        ball_vel_x *= -1
        player_2_score += 1
    elif ball_pos_x + ball_radius >= window_width:
        ball_vel_x *= -1
        player_1_score += 1
    elif ball_pos_y - ball_radius <= 0:
        ball_vel_y *= -1
    elif ball_pos_y + ball_radius >= window_height:
        ball_vel_y *= -1

    #Draw the window
    window.fill(black)
    pygame.draw.circle(window, white, (int(ball_pos_x), int(ball_pos_y)), ball_radius)
    pygame.draw.rect(window, white, (paddle_1_pos_x, paddle_1_pos_y, paddle_width, paddle_height))
    pygame.draw.rect(window, white, (paddle_2_pos_x, paddle_2_pos_y, paddle_width, paddle_height))

    #Render the scores
    player_1_score_text = font.render("Player 1 Score: {}".format(player_1_score), True, white)
    player_2_score_text = font.render("Player 2 Score: {}".format(player_2_score), True, white)
    window.blit(player_1_score_text, (50, 50))
    window.blit(player_2_score_text, (window_width - player_2_score_text.get_width() - 50, 50))

    pygame.display.update()

    #Delay to get 60 fps
    clock.tick(60)

In the modified code, we added two new variables, player_1_score and player_2_score, to keep track of the scores for each player. We also added a new font variable to define the font used to display the scores.

In the game loop, we updated the score when a player scores a point, and we rendered the score text using the font variable and the render method of the pygame.font module. We then used the blit method of the window surface to display the scores on the screen.

Note that we are rendering the score text every frame, which is not very efficient. If you want to improve performance, you can render the score text once and then store the rendered surfaces, and then blit the surfaces to the screen as needed.

I hope this helps! Let me know if you have any further questions.