# Top 7 python computer science project ideas for 11th & 12th classes

1. Number Guessing
2. Dice Rolling Simulator
3. Hangman
4. Calculator
5. Tic-Tac-Toe
7. Rock, Paper, Scissors

## Its Importance

The greatest thing you can do as a Python beginner is to work on some practical Python project ideas. It will help you in various other aspects like boosting confidence, testing your programming skills, and improving them. While operating on a Python project, you will need to familiarise yourself with new technologies and tools.

The more you know about cutting-edge development environments, libraries, and tools, the more options you’ll have for experimenting with your projects. You gain knowledge by experimenting with various Python project ideas more and more.

We’ll look at the top 7 python computer science project ideas for 11th & 12th classes that beginners can use to put their skills to the test.

### 1. Number Guessing

Beginners will particularly benefit from this project. Create a program that allows the computer to select a number at random from 1 to 10, 1 to 100, or any other range. Give users a hint so they can determine the number. Each incorrect guess results in a point deduction for the user. Multiples, divisions, greater or smaller numbers, or any combination of these, could be the clue.

Here’s the Source Code.

#importing the libraries import random import math 

#intro section print("""hello!!! this is a guessing game. please enter your bound for the game to start""") 

#getting the inputs lower = int(input("Enter Lower bound:- ")) upper = int(input("Enter Upper bound:- ")) 

#generating the random number between the chosen bound x = random.randint(lower, upper) print("\n\tYou've only ", round(math.log(upper - lower + 1, 2)), " chances to guess the integer!\n") 

#Initializing the number of guesses. guess_count = 0 

#while loop for each round of the game while guess_count < math.log(upper - lower + 1, 2): guess_count += 1 

 #taking guessing number as input guess = int(input("Guess a number:- ")) 

#Condition testing if x == guess: print("Congratulations you did it in ", guess_count, " try") #Once guessed, loop will break break elif x > guess: print("You guessed too small!") print("You have ", round(math.log(upper - lower + 1, 2)) - guess_count, " guess left") elif x < guess: print("You Guessed too high!") print("You have ", round(math.log(upper - lower + 1, 2)) - guess_count, " guess left") 

#If you guessed more than your chances the game will end if guess_count >= math.log(upper - lower + 1, 2): print("\nThe number is %d" % x) print("\tBetter Luck Next time!") 

### 2. Dice Rolling Simulator

As the name of the programme suggests, we will simulate rolling dice. One of the fascinating Python projects will generate a random number every time the programme rolls the dice, and the user can do this as many times as he wants. The computer programme will generate a random number between 1 and 6 when the user rolls the dice.

Here’s the Source Code.
import random

start = input('Please press ENTER to roll the dice.')

def dice(): dice = random.randint(1,6) return dice 

print('The number rolled is ',dice(),'.')
while True: roll_again = input('Would you like to roll again? Y/N ') 

if roll_again.lower()=="y": print('The new number rolled is ',dice(),'.') else: print('Thanks for playing.') break 

### 3. Hangman

This is more of a word-guessing game. You’ll need to use the following basic concepts when creating this project: Variables, Irregular, Integer, Strings, Char and Output, and Boolean. Users have to guess the letters in the game, and each user has a certain number of tries available.

Here’s the Source Code

#!/usr/bin/python3 #Hangman game

import random

class HangMan(object):

 # Hangman game hang = [] hang.append(' +---+') hang.append(' | |') 

 hang.append(' |') hang.append(' |') hang.append(' |') hang.append(' |') hang.append('=======')

 man = {} man = [' 0 |'] man = [' 0 |', ' | |'] man = [' 0 |', '/| |'] man = [' 0 |', '/|\ |'] man = [' 0 |', '/|\ |', '/ |'] man = [' 0 |', '/|\ |', '/ \ |']

 pics = []

 words = '''ant baboon badger bat bear beaver camel cat clam cobra cougar coyote crow deer dog donkey duck eagle ferret fox frog goat goose hawk lion lizard llama mole monkey moose mouse mule newt otter owl panda parrot pigeon python rabbit ram rat raven rhino salmon seal shark sheep skunk sloth snake spider stork swan tiger toad trout turkey turtle weasel whale wolf wombat zebra'''.split()

 infStr='_-*\'*-_-*\'*-_-*\'*-_-*\'*-_-*\'*-_-*\'*-_-*\'*-_-*\'*-_-*\'*-_-*\''

 def init(self, *args, **kwargs): i, j = 2, 0 self.pics.append(self.hang[:]) for ls in self.man.values(): pic, j = self.hang[:], 0 for m in ls: pic[i + j] = m j += 1 self.pics.append(pic)

def pickWord(self): return self.words[random.randint(0, len(self.words) - 1)] 
def printPic(self, idx, wordLen): for line in self.pics[idx]: print(line)

 def askAndEvaluate(self, word, result, missed): guess = input() 

 if guess == None or len(guess) != 1 or (guess in result) or (guess in missed): return None, False i = 0 right = guess in word for c in word: if c == guess: result[i] = c i += 1 return guess, right

 def info(self, info): ln=len(self.infStr) print(self.infStr[:-3]) print(info) print(self.infStr[3:])

 def start(self): print('Welcome to Hangman !') word = list(self.pickWord()) result = list('*' * len(word)) print('The word is: ', result) success, i, missed = False, 0, [] while i < len(self.pics)-1: print('Guess the word: ', end='') guess,right = self.askAndEvaluate(word, result, missed) if guess == None: print('You\'ve already entered this character.') continue print(''.join(result)) if result == word: self.info('Congratulations ! You\'ve just saved a life !') success = True break if not right: missed.append(guess) i+=1 self.printPic(i, len(word)) print('Missed characters: ', missed) 

if not success: self.info('The word was \''+''.join(word)+'\' ! You\'ve just killed a man, yo !')
a = HangMan().start()

### 4. Calculator

Although a calculator isn’t very useful, creating your own graphical UI calculator will help you become more accustomed to a library like Tkinter where you can create buttons to perform various operations and display outcomes on a screen.

Here’s the Source Code.

#Author: #Agyeya Mishra #Department of Civil Engineering #Delhi Technological University (formerly, Delhi College of Engineering) #New Delhi, India 

#Python program to create a simple calculator

#Function to perform addition of two numbers def add(number1, number2): return (number1 + number2) 

#Function to perform subtraction of two numbers def subtract(number1, number2): return (number1 - number2) 

#Function to perform multiplication of two numbers def multiply(number1, number2): return (number1 * number2) 

#Function to perform division of two numbers def divide(number1, number2): return (number1 / number2) 

print("Operation Menu -\n" \ "1. Addition of two numbers\n" \ "2. Subtraction of two numbers\n" \ "3. Multiplication of two numbers\n" \ "4. Division of two numbers\n") 

#Taking input from the user select = input("Select operations form 1, 2, 3, 4 :") 

num1 = int(input("Enter first number: "))

num2 = int(input("Enter second number: "))

if select == '1': print(num1, "+", numb2, "=", add(num1, num2)) 

elif select == '2': print(num1, "-", num2, "=", subtract(num1, num2)) 

elif select == '3': print(num1, "*", num2, "=", multiply(num1, num2)) 

elif select == '4': print(num1, "/", num2, "=", divide(num1, num2)) else: print("Invalid input!" 

### 5. Tic-Tac-Toe

One of the most innovative Python project concepts is this concept.
A “O” will be placed in any square by the second player, while a “X” will be placed in any square by the first player. The winner lines up three consecutive Xs or Os on the grid.
The Pygame library can be used to build this project. All the modules required for computer graphics and sound are included in Pygame.

Here’s the Source Code

import pygame import time import random from pygame.locals import * from utils import * from buttons import * import ai 

pygame.init()

game_mode = 0

class Board:

 scores = {'X': 0, '0': 0, 'tie': 0} player = 'X' 

def init(self): self.font = pygame.font.SysFont("comicsansms",20) pygame.display.set_caption("Tic Tac Toe") 

def reset(self): w = .6 * game_w h = .6 * game_h self.board = pygame.Surface((w, h)) #vertical pygame.draw.line(self.board, white, [w/3, 0], [w/3, h], 5) pygame.draw.line(self.board, white, [2w/3, 0], [2w/3, h], 5) #horizontal pygame.draw.line(self.board, white, [0, h/3], [w, h/3], 5) pygame.draw.line(self.board, white, [0, 2h/3], [w, 2h/3], 5) self.grid = [[None, None, None], [None, None, None], [None, None, None]] self.text = self.font.render("Player X: %d Player O: %d Ties: %d" % (self.scores['X'], self.scores['0'], self.scores['tie']), True, white) self.player = 'X' self.remaining = 9

def reset(self): w = .6 * game_w h = .6 * game_h self.board = pygame.Surface((w, h)) #vertical pygame.draw.line(self.board, white, [w/3, 0], [w/3, h], 5) pygame.draw.line(self.board, white, [2w/3, 0], [2w/3, h], 5) #horizontal pygame.draw.line(self.board, white, [0, h/3], [w, h/3], 5) pygame.draw.line(self.board, white, [0, 2h/3], [w, 2h/3], 5) self.grid = [[None, None, None], [None, None, None], [None, None, None]] self.text = self.font.render("Player X: %d Player O: %d Ties: %d" % (self.scores['X'], self.scores['0'], self.scores['tie']), True, white) self.player = 'X' self.remaining = 9

def check(self):

 (row, col) = pygame.mouse.get_pos() (row, col) = make_relative(row, col) 
 if row < 0 or row > 2 or col < 0 or col > 2: return 
 if self.grid[row][col] == None: self.make_move(row, col) 

def make_move(self, row, col): centerX, centerY = int(.1 * game_w + row(.2 * game_w)), int(.1 * game_h + col(.2 * game_h)) if self.player == 'X': 

 pygame.draw.line(self.board, yellow, [centerX-.05game_w, centerY-.05game_h], [centerX+.05game_w, centerY+.05game_h], 3) pygame.draw.line(self.board, yellow, [centerX+.05game_w, centerY-.05game_h], [centerX-.05game_w, centerY+.05game_h], 3) else: pygame.draw.circle(self.board, blue, [centerX, centerY], int(.05*game_w), 3) sound.play() self.grid[row][col] = self.player self.remaining -= 1

 last_player = self.player self.player = 'X' if self.player == '0' else '0' self.check_win(last_player) 

def has_won(self, whom): self.show() time.sleep(2) self.scores[whom] += 1 self.reset() 

def check_win(self, player): if self.remaining == 0: return self.has_won('tie') 
if wins(self.grid, player): return self.has_won(player) 
done = False intro = True game_board = Board() 
buttons = [] buttons.append(Button("vs player", .175 * game_w, .8 * game_h, .175 * game_w, .2 * game_h, green_active, green_inactive, lambda: start_game(MODE_VS))) buttons.append(Button("vs computer (hard)", .4 * game_w, .8 * game_h, .175 * game_w, .2 * game_h, red_active, red_inactive, lambda: start_game(MODE_AI))) buttons.append(Button("vs computer (normal)", .625 * game_w, .8 * game_h, .175 * game_w, .2 * game_h, orange_active, orange_inactive, lambda: start_game(MODE_AI_N))) 

def start_game(mode): global intro, game_mode intro = False game_mode = mode 

 game_board.reset() game_board.show()

\def draw_intro(): text = font.render("Select game mode", True, white) screen.blit(text, (.35 * game_w, .4 * game_h)) 

 for button in buttons: button.draw(screen) 
 pygame.display.flip() while not done: for e in pygame.event.get(): if e.type == QUIT: done = True elif e.type == MOUSEBUTTONUP and intro == False: if game_mode == MODE_VS or game_board.player == 'X': game_board.check() if game_mode != MODE_VS and game_board.player == '0': ai.move(game_board, game_mode) 

 if intro: draw_intro() else: game_board.show() 

pygame.quit()

For those just getting started in software development, this is the ideal project. You will learn how to work with user-inputted data through this project, which is primarily focused on strings, variables, and concatenation.
The way the programme is designed, users will be prompted to enter a series of input data that will be interpreted as a Mad Lib.

Here’s the Source Code

print("") print("<||<||<|| MAD LIBS GENERATOR ||>||>||>") print("") print("Hey! Let's get started on your Mad Libs.") print("Enter in words as specified below...") 

print("") print("")

name = input("Male name: ") adj1 = input("Adjective 1: ") adj2 = input("Adjective 2: ") activity1 = input("Activity 1: ") activity2 = input("Activity 2: ") activity3 = input("Activity 3: ") noun1 = input("Noun 1: ") noun2 = input("Noun 2: ") noun4 = input("Noun 4 (plural): ") place1 = input("Place 1: ") place2 = input("Place 2: ") 

print("") print(name, " is a ", adj1, noun1, " who lives in ", place1, " and is from a ", adj2, " family. He lives with his ", noun2, " who is the breadwinner of the family. She earns ", noun4, " by ", activity1, " at Walmart. When ", name, "'s ", noun2, " has free time they ", activity2, " together and have fun ", activity3, "in", place2, ".") print("") print("The end!") 

### 7. Rock, Paper, Scissors

We use the random function again in this situation. The programme doesn’t move until you do, then it moves after you do. You have the option of entering an entire string or just one alphabet to indicate the move. It will be necessary to set up a function to verify the move’s legality.

Here’s the Source Code

import random

name = input("Welcome to Rock-Paper-Scissors.\n\nPlease enter your name: ")

game = {'R': 'Rock', 'P': 'Paper', 'S': 'Scissors'}

opt = list(game)

# Input loop while True: user = input('\nPick "R" for rock, "P" for paper, "S" for scissors: ') CPU = random.choice(opt) 
 if user not in opt: print("You didn't choose a valid option. Please try again\n") elif user == CPU: print("It's a tie. Please play again.\n") else: print('\n{} ({}) : CPU ({})'.format(name, game[user], game[CPU])) win = user + CPU 

 if win in ['RS', 'PR', 'SP']: print('{} beats {} \n\nWINNER: {}'.format(game[user], game[CPU], name)) elif win in ['SR', 'RP', 'PS']: print('{} beats {} \n\nWINNER: CPU'.format(game[CPU], game[user])) 

 break

So yess, we’re done here, hope you enjoyed and learned!
We’ll be coming up with more content like this, till then bye!

This site uses Akismet to reduce spam. Learn how your comment data is processed.