7beggars_nnnnm
7beggars_nnnnm

Reputation: 757

Measure the time interval between the start of execution of a python program and the end of its execution

I've been trying to add code to my script pong.py below to measure the time the screen stays open and closes. I am having problems running pygame, so I would like to find a way to calculate this time interval without using pygame. I've looked at several issues here in stack.overflow but none really account for the time my python screen program stays open. And some answers have pygame, and I'm avoiding pygame for getting error messages.

pong.py:

    # Simple Pong in Python 3 for Beginners
# By @TokyoEdTech
# Part 5: Colliding with the paddles

import turtle

wn = turtle.Screen()
wn.title("Pong by @TokyoEdTech")
wn.bgcolor("black")
wn.setup(width=800, height=600)
wn.tracer(0)

# Paddle A
paddle_a = turtle.Turtle()
paddle_a.speed(0)
paddle_a.shape("square")
paddle_a.color("white")
paddle_a.shapesize(stretch_wid=5, stretch_len=1)
paddle_a.penup()
paddle_a.goto(-350, 0)

# Paddle B
paddle_b = turtle.Turtle()
paddle_b.speed(0)
paddle_b.shape("square")
paddle_b.color("white")
paddle_b.shapesize(stretch_wid=5, stretch_len=1)
paddle_b.penup()
paddle_b.goto(350, 0)

# Ball
ball = turtle.Turtle()
ball.speed(0)
ball.shape("square")
ball.color("white")
ball.penup()
ball.goto(0, 0)
ball.dx = 2
ball.dy = -2

# Function
def paddle_a_up():
    y = paddle_a.ycor()
    y += 20
    paddle_a.sety(y)

def paddle_a_down():
    y = paddle_a.ycor()
    y -= 20
    paddle_a.sety(y)

def paddle_b_up():
    y = paddle_b.ycor()
    y += 20
    paddle_b.sety(y)

def paddle_b_down():
    y = paddle_b.ycor()
    y -= 20
    paddle_b.sety(y)

# Keyboard binding
wn.listen()
wn.onkeypress(paddle_a_up, "w")
wn.onkeypress(paddle_a_down, "s")
wn.onkeypress(paddle_b_up, "Up")
wn.onkeypress(paddle_b_down, "Down")

# Main game loop
while True:
    wn.update() 

    # Move the ball
    ball.setx(ball.xcor() + ball.dx)
    ball.sety(ball.ycor() + ball.dy)

    # Border checking
    if ball.ycor() > 290:
        ball.sety(290)
        ball.dy *= -1

    if ball.ycor() < -290:
        ball.sety(-290)
        ball.dy *= -1

    if ball.xcor() > 390:
        ball.goto(0, 0)
        ball.dx *= -1

    if ball.xcor() < -390:
        ball.goto(0, 0)
        ball.dx *= -1

    # Paddle and ball collisions
    if (ball.xcor() > 340 and ball.xcor() < 350) and (ball.ycor() < paddle_b.ycor() + 40 and ball.ycor() > paddle_b.ycor() -40):
        ball.setx(340)
        ball.dx *= -1

    if (ball.xcor() < -340 and ball.xcor() > -350) and (ball.ycor() < paddle_a.ycor() + 40 and ball.ycor() > paddle_a.ycor() -40):
        ball.setx(-340)
        ball.dx *= -1

UPDATE

SAMPLE

I meant while I was with the screen open, for example if it was a game I should count the time while I keep the program open.

I'd like a way to make it work within the script, but I'm also interested in command lines.

Upvotes: 0

Views: 194

Answers (2)

High-Octane
High-Octane

Reputation: 1112

Have you tried this good sir?

import turtle 
import time
start_time = time.time()
#Set up the screen 
try:
    wn = turtle.Screen() 
    wn.bgcolor("black") 
    wn.title("Test") 
    wn.bgpic("grid.png")
    print("Execution time :  %s seconds " % (str(time.time() - start_time)))
except Exception as e:
    print("Program exited by error",e)
    print("Execution time : %s seconds " % (str(time.time() - start_time)))

Upvotes: 1

Nitin1901
Nitin1901

Reputation: 150

Hello,

There are many ways to know the execution time of a program in Python.

I will mention the two easy and common ways :-

  • Use time library

time is a library in python used to manipulate and play with time.

import time
start = time.time()
...
...
print(time.time() - start)
  • At command line

If you execute programs from the command line, you can try this.

$ time python3 code.py

This line gives a basic information of how much time is being taken by the system to run the code.

Upvotes: 1

Related Questions