Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
16 views24 pages

Internship Report

The internship report details Sarvendu Sen's experience as a Python Programming Intern at CodeAlpha from July 5 to August 5, 2025, focusing on enhancing programming skills through structured training. The report includes an overview of the training schedule, tools used, programming concepts learned, and a mini-project titled 'Quiz Application' that automates quiz processes. The internship provided practical exposure to Python fundamentals and advanced features, improving problem-solving skills and coding efficiency.

Uploaded by

Ayushwan Singh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views24 pages

Internship Report

The internship report details Sarvendu Sen's experience as a Python Programming Intern at CodeAlpha from July 5 to August 5, 2025, focusing on enhancing programming skills through structured training. The report includes an overview of the training schedule, tools used, programming concepts learned, and a mini-project titled 'Quiz Application' that automates quiz processes. The internship provided practical exposure to Python fundamentals and advanced features, improving problem-solving skills and coding efficiency.

Uploaded by

Ayushwan Singh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 24

Report of the Internship

ON
PYTHON PROGRAMMING

Company Name: CodeAlpha


Location: Work from Home

BY
Student Name: Sarvendu Sen
Roll Number: 24437
Registration Number: 24101090053

Diploma in Electronics and Communication Engineering


Government Polytechnic, Ranchi
Ranchi (Jharkhand)
(2025)
CERTIFICATE OF APPROVAL

The foregoing INTERNSHIP REPORT entitled PYTHON PROGRAMMING is


hereby approved as a creditable work on the topic and has been presented by
Sarvendu Sen (Roll No.: 24437, Reg. No.: 24101090053) in a satisfactory manner
to warrant its acceptance as a prerequisite to the diploma for which it has been
submitted.

It is understood that by this approval, the undersigned do not necessarily endorse


any conclusion drawn or opinion expressed therein, but approve the INTERNSHIP
REPORT for the purpose for which it is submitted.

(Internal Examiner) (External Examiner)

Head of Department
Diploma in Electronics and Communication Engineering
Government Polytechnic, Ranchi, Jharkhand
(2025)
ACKNOWLEDGEMENT

I take this opportunity to express my sincere gratitude to all those who have
contributed towards the successful completion of my internship and this report.

First and foremost, I extend my heartfelt thanks to my guide and Head of


Department, Prof. (Prof. Name), Department of Electronics and Communication
Engineering, whose invaluable suggestions, constant encouragement, and expert
guidance have helped me in the preparation of this report.

I am also thankful to all the faculty and technical staff members of the department
for their kind support and cooperation during my course of study and internship
period.

My special thanks go to the team at CodeAlpha, who provided me with the


opportunity to work as a Python Programming Intern from 05/07/2025 to
05/08/2025. Despite their busy schedules, they guided me, shared their expertise,
and gave me practical exposure to programming concepts, which enhanced my
skills and confidence.

Lastly, I wish to express my gratitude to my friends and family for their moral
support, motivation, and encouragement throughout the internship and report
preparation.

Sarvendu Sen
PYTHON PROGRAMMING TRAINING SCHEDULE

SL.
MODULE TOPICS COVERED DAYS
NO

Introduction to Overview of Python, Installation, IDEs, Running Python


1 1–2
Python Programs, Syntax & Indentation

Variables, Data Types, Operators, Type Casting, Input/


2 Python Basics 3–5
Output, Comments

If-Else, Loops (for, while), Nested Loops, Break &


3 Control Structures 6–8
Continue

Functions & Defining Functions, Arguments, Return Values, Lambda


4 9 – 11
Modules Functions, Creating & Importing Modules

Data Structures in
5 Lists, Tuples, Sets, Dictionaries, List Comprehension 12 – 15
Python

Reading/Writing Files, Working with Text & CSV Files,


6 File Handling 16 – 18
Exception Handling

Object-Oriented Classes, Objects, Methods, Inheritance, Polymorphism,


7 19 – 21
Programming Encapsulation

NumPy Basics, Pandas for Data Handling, Matplotlib for


8 Python Libraries 22 – 26
Data Visualization

Building a Simple Data Analysis Tool / Automation


9 Mini Project 27 – 30
Script using Python
INDEX

1. Introduction

2. Tools and Frameworks Used

3. Data and Methodology

4. Python Programming Concepts


4.1 Variables and Data Types
4.2 Control Structures
4.3 Functions and Modules
4.4 Data Structures
4.5 File Handling
4.6 Object-Oriented Programming
4.7 Python Libraries

5. Project Execution
5.1 Problem Statement
5.2 Development Process
5.3 Testing and Debugging

6. Results

7. Conclusion
INTRODUCTION

Python is a high-level, interpreted, and versatile programming language known for


its simplicity and readability. Due to its clear syntax and vast collection of libraries,
Python is widely used in various domains, including data science, web
development, automation, artificial intelligence, and more.

The Python Programming Internship at CodeAlpha was designed to enhance


my understanding of programming concepts through a structured learning process.
The internship duration was from 05/07/2025 to 05/08/2025, during which I gained
practical knowledge of Python fundamentals, advanced features, and application
development.

This internship provided a hands-on learning environment where I worked on small


tasks and a mini-project that involved applying Python concepts to solve real-world
problems. The training covered a wide range of topics, starting from the basics of
Python syntax to advanced modules such as NumPy, Pandas, and Matplotlib.

Through this internship, I developed a deeper understanding of problem-solving


techniques, code optimization, and best practices in programming. It has also
improved my logical thinking skills, coding efficiency, and confidence to work on
independent projects.
TOOLS AND FRAMEWORKS USED

During the Python Programming Internship at CodeAlpha, the following tools and
frameworks were used to complete training exercises and project work:

1. Python (Version 3.x) – The core programming language used for all tasks
and project development.

2. Integrated Development Environments (IDEs):


- PyCharm – For writing, running, and debugging Python code efficiently.
- Jupyter Notebook – For interactive coding, especially while working with
data analysis libraries.
- VS Code – For lightweight coding and quick script execution.

3. Command Line / Terminal – To execute Python scripts, manage virtual


environments, and install packages.

4. Pip (Python Package Manager) – For installing and managing Python


libraries.

5. Libraries:
- NumPy – For numerical computations.
- Pandas – For data manipulation and analysis.
- Matplotlib – For creating visualizations and graphs.
- Requests – For making HTTP requests in automation tasks.

6. Git & GitHub – For version control and hosting code repositories.

7. Operating System – Windows / Linux environment for development and


testing.

These tools and frameworks were essential in implementing the concepts learned
and in building the final mini-project successfully.
DATA AND METHODOLOGY

The internship followed a structured approach to ensure progressive learning and


practical application of Python programming concepts. The methodology included:

1. Data

The data used during the internship varied based on the exercises and the mini-
project:

• Sample Datasets – CSV and text files for practicing file handling, Pandas,
and data visualization.

• User Input Data – Real-time inputs taken through scripts for logical problem-
solving exercises.

• API Data – JSON responses from public APIs for testing Python’s Requests
library.

2. Methodology

The internship was carried out in three main phases:

Phase 1 – Fundamentals Learning

• Understanding Python syntax, variables, data types, control structures, and


functions.

• Hands-on coding exercises for each concept to ensure clarity.

Phase 2 – Practical Implementation

• Working with Python’s built-in and external libraries.

• Implementing small tasks such as data sorting, filtering, and visualization.

• Learning Object-Oriented Programming (OOP) for structured and reusable


code.

Phase 3 – Mini Project Development

• Selecting a problem statement related to data analysis.

• Gathering sample datasets and cleaning data using Pandas.

• Performing analysis and visualizing results with Matplotlib.

• Testing and debugging the final solution.

This structured methodology ensured that the learning was progressive, practical,
and result-oriented.
PYTHON PROGRAMMING CONCEPTS

During the internship at CodeAlpha, the following Python programming concepts


and modules were covered in detail:

1.1 Variables and Data Types

• Understanding variables and memory allocation.

• Working with basic data types: integers, floats, strings, booleans.

• Type casting between different data types.

1.2 Control Structures

• Decision-making using if, elif, and else.

• Looping with for and while loops.

• Using break, continue, and pass statements for flow control.

1.3 Functions and Modules

• Creating and calling user-defined functions.

• Passing parameters and returning values.

• Anonymous functions using lambda.

• Creating and importing custom modules.

1.4 Data Structures

• Lists: indexing, slicing, and list comprehensions.

• Tuples: immutability and use cases.


• Sets: unique element storage and set operations.

• Dictionaries: key-value pairs, iteration, and dictionary methods.

1.5 File Handling

• Opening, reading, and writing files using open() function.

• Working with text, CSV, and JSON files.

• Using exception handling for error-free file operations.

1.6 Object-Oriented Programming (OOP)

• Creating classes and objects.

• Instance and class variables.

• Inheritance, polymorphism, encapsulation, and abstraction.

1.7 Python Libraries

• NumPy: Arrays, mathematical operations, and array slicing.

• Pandas: DataFrames, reading and cleaning data, filtering, and grouping.

• Matplotlib: Creating bar charts, line graphs, and scatter plots.

• Requests: Sending GET/POST requests and parsing API data.


PROJECT EXECUTION

During the final phase of the internship, I developed a Mini Project titled "Quiz
Application" using Python.
The goal of this project was to create an interactive console-based quiz program
that tests a user’s knowledge on various topics and provides instant feedback.

5.1 Problem Statement


Many learners enjoy practicing their knowledge through quizzes, but manually
creating and checking quizzes can be time-consuming. This project automates the
quiz process using Python.

5.2 Development Process

Step 1 – Designing Questions

• Prepared a set of multiple-choice questions stored in a Python dictionary.

• Each question had four options and one correct answer.

Step 2 – Implementing the Quiz Logic

• Used for loops to display each question and accept user input.

• Checked the answers against the correct options and updated the score.

Step 3 – Feedback Mechanism

• Provided instant feedback after each question, indicating whether the answer
was correct or wrong.

Step 4 – Final Score Display

• At the end of the quiz, displayed the total score and percentage.
Step 5 – Enhancements

• Added error handling to ensure valid input (only accepting options A/B/C/D).

• Randomized question order using the random module.

5.3 Key Python Concepts Used

• Dictionaries and Lists for storing questions and options.

• Loops and Conditional Statements for quiz flow.

• Functions for modular and reusable code.

• Random module for shuffling questions.

PROJECT DESIGN

The Quiz Application was designed using a simple modular architecture to ensure
clarity, flexibility, and ease of maintenance. The design process involved identifying
the main components of the quiz system and their interactions.

A. System Architecture

The project follows a linear flow where the program:

1. Loads the questions and options.

2. Displays each question to the user.

3. Accepts and validates user input.

4. Checks the answer and updates the score.

5. Shows feedback after each question.

6. Displays the final score at the end.


Code of the Project
app.py
import streamlit as st
import time
from quiz_data import QUIZ_SETS
from quiz_manager import QuizManager

def initialize_session_state():
"""Initialize session state variables"""
if 'quiz_manager' not in st.session_state:
st.session_state.quiz_manager = None
if 'current_quiz' not in st.session_state:
st.session_state.current_quiz = None
if 'quiz_started' not in st.session_state:
st.session_state.quiz_started = False
if 'quiz_completed' not in st.session_state:
st.session_state.quiz_completed = False
if 'start_time' not in st.session_state:
st.session_state.start_time = None
if 'question_start_time' not in st.session_state:
st.session_state.question_start_time = None

def reset_quiz():
"""Reset quiz state"""
st.session_state.quiz_manager = None
st.session_state.current_quiz = None
st.session_state.quiz_started = False
st.session_state.quiz_completed = False
st.session_state.start_time = None
st.session_state.question_start_time = None

def display_quiz_selection():
"""Display quiz selection interface"""
st.title("🧠 Quiz Application")
st.markdown("### Welcome! Choose a quiz to get started:")

# Display available quizzes


quiz_options = list(QUIZ_SETS.keys())

for i, quiz_name in enumerate(quiz_options):


quiz_info = QUIZ_SETS[quiz_name]
col1, col2 = st.columns([3, 1])

with col1:
st.markdown(f"**{quiz_name}**")
st.markdown(f"📝 {len(quiz_info['questions'])} questions")
st.markdown(f"⏱ {quiz_info['time_limit']} seconds per question")
st.markdown(f"📊 Difficulty: {quiz_info['difficulty']}")

with col2:
if st.button(f"Start Quiz", key=f"start_{i}"):
st.session_state.current_quiz = quiz_name
st.session_state.quiz_manager = QuizManager(quiz_info)
st.session_state.quiz_started = True
st.session_state.start_time = time.time()
st.session_state.question_start_time = time.time()
st.rerun()

st.divider()
def display_quiz_interface():
"""Display the main quiz interface"""
quiz_manager = st.session_state.quiz_manager
current_question_idx = quiz_manager.current_question
question_data = quiz_manager.get_current_question()

if question_data is None:
st.session_state.quiz_completed = True
st.rerun()
return

# Header with progress and timer


col1, col2, col3 = st.columns([2, 1, 1])

with col1:
st.title(f"📝 {st.session_state.current_quiz}")

with col2:
progress = (current_question_idx + 1) / len(quiz_manager.questions)
st.metric("Progress", f"{current_question_idx + 1}/{len(quiz_manager.questions)}")
st.progress(progress)

with col3:
# Question timer
elapsed_time = time.time() - st.session_state.question_start_time
time_limit = quiz_manager.quiz_data['time_limit']
remaining_time = max(0, time_limit - elapsed_time)

if remaining_time > 0:
st.metric("Time Left", f"{int(remaining_time)}s")
# Auto-advance if time runs out
if remaining_time <= 0:
quiz_manager.submit_answer(None) # No answer selected
st.session_state.question_start_time = time.time()
st.rerun()
else:
st.metric("Time Left", "0s")
st.error("⏰ Time's up!")

st.divider()

# Question display
st.markdown(f"### Question {current_question_idx + 1}")
st.markdown(f"**{question_data['question']}**")

# Answer options
selected_answer = st.radio(
"Choose your answer:",
question_data['options'],
key=f"question_{current_question_idx}",
index=None
)

# Navigation buttons
col1, col2, col3 = st.columns([1, 1, 1])

with col1:
if current_question_idx > 0:
if st.button("⬅ Previous"):
quiz_manager.previous_question()
st.session_state.question_start_time = time.time()
st.rerun()

with col2:
if selected_answer is not None:
if st.button("Submit Answer", type="primary"):
quiz_manager.submit_answer(selected_answer)
st.session_state.question_start_time = time.time()
st.rerun()
else:
st.button("Submit Answer", disabled=True, help="Please select an answer")

with col3:
if current_question_idx < len(quiz_manager.questions) - 1:
if st.button("Skip ➡ "):
quiz_manager.submit_answer(None) # Skip question
st.session_state.question_start_time = time.time()
st.rerun()
else:
if st.button("Finish Quiz", type="secondary"):
if selected_answer is not None:
quiz_manager.submit_answer(selected_answer)
st.session_state.quiz_completed = True
st.rerun()

# Show current answers summary


st.divider()
st.markdown("### Your Answers So Far:")
answers_summary = quiz_manager.get_answers_summary()

for i, answer in enumerate(answers_summary):


if i <= current_question_idx:
status = "✅ " if answer is not None else "⏭ " if i < current_question_idx else "❓ "
answer_text = answer if answer else "Skipped" if i < current_question_idx else "Not
answered"
st.markdown(f"**Q{i+1}:** {status} {answer_text}")

def display_results():
"""Display quiz results"""
quiz_manager = st.session_state.quiz_manager
results = quiz_manager.get_results()

st.title("🎉 Quiz Complete!")


st.balloons()

# Overall score
st.metric(
label="Your Score",
value=f"{results['score']}/{results['total_questions']}",
delta=f"{results['percentage']:.1f}%"
)

# Time taken
total_time = time.time() - st.session_state.start_time
st.metric("Total Time", f"{int(total_time // 60)}m {int(total_time % 60)}s")

# Performance feedback
if results['percentage'] >= 80:
st.success("🌟 Excellent work! You've mastered this topic!")
elif results['percentage'] >= 60:
st.info("👍 Good job! You have a solid understanding.")
else:
st.warning("📚 Keep studying! You'll do better next time.")

st.divider()

# Detailed results
st.markdown("### Detailed Results:")

for i, (question_data, user_answer, is_correct) in enumerate(zip(


quiz_manager.questions,
results['user_answers'],
results['correct_answers']
)):
with st.expander(f"Question {i+1}: {'✅ ' if is_correct else '❌ '}"):
st.markdown(f"**{question_data['question']}**")
st.markdown(f"**Your answer:** {user_answer if user_answer else 'Not answered'}")
st.markdown(f"**Correct answer:** {question_data['correct_answer']}")

if not is_correct:
st.markdown(f"**Explanation:** {question_data.get('explanation', 'No explanation
available.')}")

col1, col2 = st.columns(2)

with col1:
if st.button("🔄 Retake Quiz", type="primary"):
# Restart the same quiz
quiz_info = QUIZ_SETS[st.session_state.current_quiz]
st.session_state.quiz_manager = QuizManager(quiz_info)
st.session_state.quiz_completed = False
st.session_state.start_time = time.time()
st.session_state.question_start_time = time.time()
st.rerun()

with col2:
if st.button("🏠 Back to Quiz Selection"):
reset_quiz()
st.rerun()

def main():
"""Main application function"""
st.set_page_config(
page_title="Quiz Application",
page_icon="🧠 ",
layout="wide",
initial_sidebar_state="collapsed"
)

initialize_session_state()

if not st.session_state.quiz_started:
display_quiz_selection()
elif st.session_state.quiz_completed:
display_results()
else:
display_quiz_interface()
if __name__ == "__main__":
main()
appdata.py
import streamlit as st
import time
from quiz_data import QUIZ_SETS
from quiz_manager import QuizManager

def initialize_session_state():
"""Initialize session state variables"""
if 'quiz_manager' not in st.session_state:
st.session_state.quiz_manager = None
if 'current_quiz' not in st.session_state:
st.session_state.current_quiz = None
if 'quiz_started' not in st.session_state:
st.session_state.quiz_started = False
if 'quiz_completed' not in st.session_state:
st.session_state.quiz_completed = False
if 'start_time' not in st.session_state:
st.session_state.start_time = None
if 'question_start_time' not in st.session_state:
st.session_state.question_start_time = None

def reset_quiz():
"""Reset quiz state"""
st.session_state.quiz_manager = None
st.session_state.current_quiz = None
st.session_state.quiz_started = False
st.session_state.quiz_completed = False
st.session_state.start_time = None
st.session_state.question_start_time = None

def display_quiz_selection():
"""Display quiz selection interface"""
st.title("🧠 Quiz Application")
st.markdown("### Welcome! Choose a quiz to get started:")

# Display available quizzes


quiz_options = list(QUIZ_SETS.keys())

for i, quiz_name in enumerate(quiz_options):


quiz_info = QUIZ_SETS[quiz_name]
col1, col2 = st.columns([3, 1])

with col1:
st.markdown(f"**{quiz_name}**")
st.markdown(f"📝 {len(quiz_info['questions'])} questions")
st.markdown(f"⏱ {quiz_info['time_limit']} seconds per question")
st.markdown(f"📊 Difficulty: {quiz_info['difficulty']}")

with col2:
if st.button(f"Start Quiz", key=f"start_{i}"):
st.session_state.current_quiz = quiz_name
st.session_state.quiz_manager = QuizManager(quiz_info)
st.session_state.quiz_started = True
st.session_state.start_time = time.time()
st.session_state.question_start_time = time.time()
st.rerun()

st.divider()

def display_quiz_interface():
"""Display the main quiz interface"""
quiz_manager = st.session_state.quiz_manager
current_question_idx = quiz_manager.current_question
question_data = quiz_manager.get_current_question()

if question_data is None:
st.session_state.quiz_completed = True
st.rerun()
return

# Header with progress and timer


col1, col2, col3 = st.columns([2, 1, 1])

with col1:
st.title(f"📝 {st.session_state.current_quiz}")

with col2:
progress = (current_question_idx + 1) / len(quiz_manager.questions)
st.metric("Progress", f"{current_question_idx + 1}/{len(quiz_manager.questions)}")
st.progress(progress)

with col3:
# Question timer
elapsed_time = time.time() - st.session_state.question_start_time
time_limit = quiz_manager.quiz_data['time_limit']
remaining_time = max(0, time_limit - elapsed_time)

if remaining_time > 0:
st.metric("Time Left", f"{int(remaining_time)}s")
# Auto-advance if time runs out
if remaining_time <= 0:
quiz_manager.submit_answer(None) # No answer selected
st.session_state.question_start_time = time.time()
st.rerun()
else:
st.metric("Time Left", "0s")
st.error("⏰ Time's up!")

st.divider()

# Question display
st.markdown(f"### Question {current_question_idx + 1}")
st.markdown(f"**{question_data['question']}**")

# Answer options
selected_answer = st.radio(
"Choose your answer:",
question_data['options'],
key=f"question_{current_question_idx}",
index=None
)

# Navigation buttons
col1, col2, col3 = st.columns([1, 1, 1])

with col1:
if current_question_idx > 0:
if st.button("⬅ Previous"):
quiz_manager.previous_question()
st.session_state.question_start_time = time.time()
st.rerun()
with col2:
if selected_answer is not None:
if st.button("Submit Answer", type="primary"):
quiz_manager.submit_answer(selected_answer)
st.session_state.question_start_time = time.time()
st.rerun()
else:
st.button("Submit Answer", disabled=True, help="Please select an answer")

with col3:
if current_question_idx < len(quiz_manager.questions) - 1:
if st.button("Skip ➡ "):
quiz_manager.submit_answer(None) # Skip question
st.session_state.question_start_time = time.time()
st.rerun()
else:
if st.button("Finish Quiz", type="secondary"):
if selected_answer is not None:
quiz_manager.submit_answer(selected_answer)
st.session_state.quiz_completed = True
st.rerun()

# Show current answers summary


st.divider()
st.markdown("### Your Answers So Far:")
answers_summary = quiz_manager.get_answers_summary()

for i, answer in enumerate(answers_summary):


if i <= current_question_idx:
status = "✅ " if answer is not None else "⏭ " if i < current_question_idx else "❓ "
answer_text = answer if answer else "Skipped" if i < current_question_idx else "Not
answered"
st.markdown(f"**Q{i+1}:** {status} {answer_text}")

def display_results():
"""Display quiz results"""
quiz_manager = st.session_state.quiz_manager
results = quiz_manager.get_results()

st.title("🎉 Quiz Complete!")


st.balloons()

# Overall score
st.metric(
label="Your Score",
value=f"{results['score']}/{results['total_questions']}",
delta=f"{results['percentage']:.1f}%"
)

# Time taken
total_time = time.time() - st.session_state.start_time
st.metric("Total Time", f"{int(total_time // 60)}m {int(total_time % 60)}s")

# Performance feedback
if results['percentage'] >= 80:
st.success("🌟 Excellent work! You've mastered this topic!")
elif results['percentage'] >= 60:
st.info("👍 Good job! You have a solid understanding.")
else:
st.warning("📚 Keep studying! You'll do better next time.")

st.divider()

# Detailed results
st.markdown("### Detailed Results:")

for i, (question_data, user_answer, is_correct) in enumerate(zip(


quiz_manager.questions,
results['user_answers'],
results['correct_answers']
)):
with st.expander(f"Question {i+1}: {'✅ ' if is_correct else '❌ '}"):
st.markdown(f"**{question_data['question']}**")
st.markdown(f"**Your answer:** {user_answer if user_answer else 'Not answered'}")
st.markdown(f"**Correct answer:** {question_data['correct_answer']}")

if not is_correct:
st.markdown(f"**Explanation:** {question_data.get('explanation', 'No explanation
available.')}")

# Action buttons
col1, col2 = st.columns(2)

with col1:
if st.button("🔄 Retake Quiz", type="primary"):
# Restart the same quiz
quiz_info = QUIZ_SETS[st.session_state.current_quiz]
st.session_state.quiz_manager = QuizManager(quiz_info)
st.session_state.quiz_completed = False
st.session_state.start_time = time.time()
st.session_state.question_start_time = time.time()
st.rerun()

with col2:
if st.button("🏠 Back to Quiz Selection"):
reset_quiz()
st.rerun()

def main():
"""Main application function"""
st.set_page_config(
page_title="Quiz Application",
page_icon="🧠 ",
layout="wide",
initial_sidebar_state="collapsed"
)

initialize_session_state()

# Handle quiz flow


if not st.session_state.quiz_started:
display_quiz_selection()
elif st.session_state.quiz_completed:
display_results()
else:
display_quiz_interface()

if __name__ == "__main__":
main()
SCREENSHOT OF THE PROJECT

Home Page

Next Page
Result Page
RESULT

Project Outcomes

1. Fully Functional Quiz Program

◦ The application successfully conducted quizzes in the console,


accepted answers, and calculated scores.

2. User Interaction

◦ The program provided immediate feedback, making the quiz engaging


for the user.

3. Flexibility

◦ The quiz could be easily updated with new questions and topics.

Skills Acquired

• Designing and structuring a Python application.

• Working with data structures effectively.

• Implementing user input validation and feedback mechanisms.

Overall Learning
This project helped me practice Python basics and control flow, improve problem-
solving, and gain confidence in building interactive applications.
CONCLUSION

The Python Programming Internship at CodeAlpha from 05/07/2025 to


05/08/2025 was a rewarding learning experience that strengthened my
programming skills.

Through structured learning and the development of a Quiz Application, I was able
to:

• Understand and apply Python fundamentals.

• Work with data structures, loops, and functions.

• Implement user interaction and feedback mechanisms in a program.

The Quiz Application demonstrated my ability to combine programming logic, data


handling, and modular design into a functional project. This hands-on experience
boosted my confidence to develop more advanced applications in the future.

I am thankful to CodeAlpha for providing this internship opportunity and to all


mentors and faculty members for their guidance and support.

You might also like