Python was one of the most popular programming languages in 2023. Such grand apps as Instagram, Netflix, Spotify, Uber, Pinterest, Reddit were built using Python. In 2023, Python became the second used programming language at GitHub. No wonder that more and more people are trying to get a job as a Python developer.
To choose the candidate among the number of applicants who can create the best software solutions, companies use a multiple stage approach. Step by step they filter out candidates until they have the best one they are ready to hire.
How to prepare for a Python developer job interview?
These stages of hiring can include CV evaluation, pre-interview test assignment, soft skills assessment, hard skills evaluation (live coding tasks, hackathons, pair coding, etc.). The selection process can be rather stressful for newbie candidates. Plus, it’s not easy to show your best when you are limited in time and stay under pressure.
The good news is you can prepare for most of the things that wait for you on assessment. Quite often, interviewers use the same type of questions and code tasks. Most of them you can find in open source. And we offer to your attention one of the programming assignments for Python developers.
We recommend using Repl.it to practice and see the result in real-time. And if you feel stuck at some point, use our step-by-step guide to complete the task (just don’t scroll too far down the page before you try it).
Test code assignment for a Python engineer: a simple snake game in Python 3.
Goal: to earn points by making a snake grow.
Task: you need to be able to move the snake with keyboard buttons and increase the snake’s length to gain more scores.
Specification: use a Turtle graphics library; display the number of the score during the game and the best score in the end.
Solution: Simple Snake Game in Python 3.
Step 1: Import the libraries that we need for this task.
# Snake Game in Python 3 import turtle import time import random
Step 2: Сreate the variables needed for the game: Delay, Score, Snake head, and Food.
# Delay delay = 0.1 # Score score = 0 high_score = 0 # Set up the screen wn = turtle.Screen() wn.title("Snake Game in Python 3") wn.bgcolor("orange") wn.setup(width=600, height=600) wn.tracer(0) # Snake head head = turtle.Turtle() head.speed(0) head.shape("square") head.color("black") head.penup() head.goto(0,0) head.direction = "stop" # Snake food food = turtle.Turtle() food.speed(0) food.shape("circle") food.color("red") food.penup() food.goto(0,100) segments = [] # Pen pen = turtle.Turtle() pen.speed(0) pen.shape("square") pen.color("white") pen.penup() pen.hideturtle() pen.goto(0, 260) pen.write("Score: 0 High Score: 0", align="center", font=("Courier", 24, "normal"))
Step 3: Create functions for the Snake head movement and add snake control.
# Snake move functionsdef go_up(): if head.direction != "down": head.direction = "up" def go_down(): if head.direction != "up": head.direction = "down" def go_left(): if head.direction != "right": head.direction = "left" def go_right(): if head.direction != "left": head.direction = "right" def move(): if head.direction == "up": y = head.ycor() head.sety(y + 20) if head.direction == "down": y = head.ycor() head.sety(y - 20) if head.direction == "left": x = head.xcor() head.setx(x - 20) if head.direction == "right": x = head.xcor() head.setx(x + 20) # Keyboard bindings for keys move wn.listen() wn.onkeypress(go_up, "w") wn.onkeypress(go_down, "s") wn.onkeypress(go_left, "a") wn.onkeypress(go_right, "d")
Step 4: Develop an algorithm for snake growth and high score recording.
while True: wn.update() if head.xcor()>290 or head.xcor()<-290 or head.ycor()>290 or head.ycor()<-290: time.sleep(1) head.goto(0,0) head.direction = "stop" # Hide the segments for segment in segments: segment.goto(1000, 1000) # Clear the field segments.clear() score = 0 delay = 0.1 pen.clear() pen.write("Score: {} High Score: {}".format(score, high_score), align="center", font=("Courier", 24, "normal")) if head.distance(food) < 20: # Move the food to a random spot x = random.randint(-290, 290) y = random.randint(-290, 290) food.goto(x,y) # Add a segment new_segment = turtle.Turtle() new_segment.speed(0) new_segment.shape("square") new_segment.color("grey") new_segment.penup() segments.append(new_segment) # Shorten the delay delay -= 0.001 # Increase the score score += 10 if score > high_score: high_score = score pen.clear() pen.write("Score: {} High Score: {}".format(score, high_score), align="center", font=("Courier", 24, "normal")) # Move the end segments first in reverse order for index in range(len(segments)-1, 0, -1): x = segments[index-1].xcor() y = segments[index-1].ycor() segments[index].goto(x, y) if len(segments) > 0: x = head.xcor() y = head.ycor() segments[0].goto(x,y) move() for segment in segments: if segment.distance(head) < 20: time.sleep(1) head.goto(0,0) head.direction = "stop" for segment in segments: segment.goto(1000, 1000) segments.clear() score = 0 delay = 0.1 # Update the score display pen.clear() pen.write("Score: {} High Score: {}".format(score, high_score), align="center", font=("Courier", 24, "normal")) time.sleep(delay) wn.mainloop()
Step 5: Play the game!
We hope you enjoyed working on this task. And there are plenty of similar ones on the Internet. Remember — more training equals more chances to pass the test successfully.
Good luck with getting your job as a Python developer!