Professional Documents
Culture Documents
Python History
Python History
Project Report
On
Undertaken At
Maharaja Agrasen Vidyalaya
Memnagar, Ahmedabad - 380052
By
Dhrumi Shah
Guided By
Mr. Vipul V. Srivastava
Submitted To
Maharaja Agrasen Vidyalaya
(Affiliated to Central Board of Secondary Education)
Gujarat-India.
2023 – 2024
1|Page
CONTENTS
SR.NO. TOPIC PAGE NO.
1. CERTIFICATE 3
2. ACKNOWLEDGEMENT 4
3. INTRODUCTION 5
4. PROJECT PROFILE 6
6. PROJECT OVERVIEW 15
9. BIBLIOGRAPHY 48
2|Page
CERTIFICATE
This is to certify that the project
entitled Food Delivering App is done by
Mss. Dhrumi Shah Of class XI - A of
Maharaja Agrasen Vidyalaya, As per the
requirement of All India Senior School
Certificate Examination during the
academic year 2023 - 2024.
3|Page
ACKNOWLEDGMENT
The phenomenon remains same that no project ever can be
executed proficiently and efficiently without sharing the
meticulous ideas, technical expertise and innovative thoughts put
forwarded by the technical and non-technical veterans.
In this regard first of all we would like to express deep gratitude to
Mr. Vipul V. Srivastava for sharing his precious knowledge
and innovative ideas for the successful execution of the project.
Whenever a technical project is developed, eventually it requires
conductive technical environment and technical guidance to get in
involved in the assigned project enthusiastically.
I would also like to thank our Principal DR. Neeta Awasthi
and our school ‘Maharaja agrasen Vidyalaya’ for
giving us this opportunity and improve upon our skills.
Dhrumi Shah
‘XI’ - ‘A’
4|Page
INTRODUCTION
In today's fast-paced world, convenience
is king. Introducing ZWIGGATO, a
revolutionary food delivery solution
designed to streamline the dining
experience for both restaurants and
customers. Our user-friendly platform
connects you with a vast selection of
local eateries, allowing you to browse
menus, customize orders, and enjoy
delicious meals delivered directly to
your doorstep – all with a few taps on
your mobile device.
5|Page
PROJECT PROFILE
NAME OF THE PROJECT Food Delivering App
Maharaja Agrasen
DEVELOPED AT
Vidyalaya
Dhrumi Shah
Amarkrit Dang
Maharaja Agrasen
SUBMITTED TO
Vidyalaya
PROGRAMMING
Python 3.7.2
LANGUAGE
6|Page
ABOUT PYTHON
HISTORY
Python is an interpreted, high-level, general-purpose programming language. Created
by ‘Guido van Rossum’ and first released in 1991, Python's design philosophy
emphasizes code readability with its notable use of significant whitespace. Its
language constructs and object-oriented approach aim to help programmers write
clear, logical code for small and large-scale projects.
Python was conceived in the late 1980s as a successor to the ABC language. Python
2.0, released in 2000, introduced features like list comprehensions and a garbage
collection system capable of collecting reference cycles. Python 3.0, released in 2008,
was a major revision of the language that is not completely backward-compatible, and
much Python 2 code does not run unmodified on Python 3.
The Python 2 language, i.e. Python 2.7.x, "sunsetted" on January 1, 2020 (after
extension; first planned for 2015), and the Python team of volunteers will not fix
security issues, or improve it in other ways after that date. With the end-of-life, only
Python 3.5.x and later will be supported.
Python interpreters are available for many operating systems. A global community of
programmers develops and maintains C Python, an open source reference
implementation. A non-profit organization, the Python Software Foundation, manages
and directs resources for Python and C Python development.
7|Page
FEATURES
Python is a multi-paradigm programming language. Object-oriented programming and
structured programming are fully supported, and many of its features support
functional programming and aspect-oriented programming (including by meta-
programming and meta-objects (magic methods)). Many other paradigms are
supported via extensions, including design by contract and logic programming.
Python uses dynamic typing and a combination of reference counting and a cycle-
detecting garbage collector for memory management. It also features dynamic name
resolution (late binding), which binds method and variable names during program
execution.
Python's design offers some support for functional programming in the Lisp tradition.
It has filter, map, and reduce functions; list comprehensions, dictionaries, sets, and
generator expressions. The standard library has two modules (iter-tools and func-tools)
that implement functional tools borrowed from Haskell and Standard ML.
Rather than having all of its functionality built into its core, Python was designed to be
highly extensible. This compact modularity has made it particularly popular as a
means of adding programmable interfaces to existing applications. Van Rossum's
vision of a small core language with a large standard library and easily extensible
interpreter stemmed from his frustrations with ABC, which espoused the opposite
approach.
Python strives for a simpler, less-cluttered syntax and grammar while giving
developers a choice in their coding methodology. In contrast to Perl's "there is more
than one way to do it" motto, Python embraces a "there should be one—and
preferably only one—obvious way to do it" design philosophy. Alex Martelli, a
Fellow at the Python Software Foundation and Python book author, writes that "To
describe something as 'clever' is not considered a compliment in the Python culture.”
8|Page
Indentation
Python syntax and semantics & Indentation
Python uses whitespace indentation, rather than curly brackets or keywords, to delimit
blocks. An increase in indentation comes after certain statements; a decrease in
indentation signifies the end of the current block. Thus, the program's visual structure
accurately represents the program's semantic structure. This feature is sometimes
termed the off-side rule, which some other languages share, but in most languages
indentation doesn't have any semantic meaning.
Flow Of Control
Python's statements include (among others):
• The assignment statement (token '=', the equals sign). This operates differently
than in traditional imperative programming languages, and this fundamental
mechanism (including the nature of Python's version of variables) illuminates many
other features of the language. Assignment in C, e.g., x = 2, translates to "typed
variable name x receives a copy of numeric value 2". The (right-hand) value is copied
into an allocated storage location for which the (left-hand) variable name is the
symbolic address. The memory allocated to the variable is large enough (potentially
quite large) for the declared type. In the simplest case of Python assignment, using the
same example, x = 2, translates to "(generic) name x receives a reference to a separate,
dynamically allocated object of numeric (int) type of value 2." This is termed binding
the name to the object. Since the name's storage location doesn't contain the indicated
value, it is improper to call it a variable. Names may be subsequently rebound at any
time to objects of greatly varying types, including strings, procedures, complex objects
with data and methods, etc.
9|Page
• The if statement, which conditionally executes a block of code, along with else
and elif (a contraction of else-if).
• The for statement, which iterates over an iterable object, capturing each
element to a local variable for use by the attached block.
• The while statement, which executes a block of code as long as its condition
is true.
• The try statement, which allows exceptions raised in its attached code block to
be caught and handled by except clauses; it also ensures that clean-up code in a
finally block will always be run regardless of how the block exits.
• The class statement, which executes a block of code and attaches its local
namespace to a class, for use in object-oriented programming.
• The continue statement, skips this iteration and continues with the next
item.
• The assert statement, used during debugging to check for conditions that
ought to apply.
• The print statement was changed to the print() function in Python 3.7.3.
10 | P a g e
Expressions
Some Python expressions are similar to languages such as C and Java, while some are
not:
• Addition, subtraction, and multiplication are the same, but the behavior of
division differs. There are two types of divisions in Python. They are floor
division (or integer division) // and floating point/division. Python also added
the ** operator for exponentiation.
• From Python 3.5, the new @ infix operator was introduced. It is intended to be
used by libraries such as NumPy for matrix multiplication.
• From Python 3.8, the syntax :=, called the 'walrus operator' was introduced. It
assigns values to variables as part of a larger expression.
• Python uses the words ‘and’, ‘or’, ‘not’ for its boolean operators rather
than the symbolic &&, ||, ! used in Java and C.
11 | P a g e
LISTS AND TUPLES
• Python makes a distinction between lists and tuples. Lists are written
as [1, 2, 3], are mutable, and cannot be used as the keys of dictionaries
(dictionary keys must be immutable in Python). Tuples are written as (1, 2, 3), are
immutable and thus can be used as the keys of dictionaries, provided all
elements of the tuple are immutable. The + operator can be used to concatenate
two tuples, which does not directly modify their contents, but rather produces a new
tuple containing the elements of both provided tuples. Thus, given the variable t
initially equal to (1, 2, 3), executing t = t + (4, 5) first evaluates t + (4, 5), which
yields (1, 2, 3, 4, 5), which is then assigned back to t, thereby effectively
"modifying the contents" of t, while conforming to the immutable nature of tuple
objects. Parentheses are optional for tuples in unambiguous contexts.
12 | P a g e
STRING LITERALS
• Strings delimited by single or double quote marks. Unlike in Unix shells,
Perl and Perl-influenced languages, single quote marks and double quote marks
function identically. Both kinds of string use the backslash (\) as an escape
character. String interpolation became available in Python 3.6 as "formatted string
literals".
• Triple-quoted strings, which begin and end with a series of three single or
double quote marks. They may span multiple lines and function like here
documents in shells, Perl and Ruby.
• Python has array index and array slicing expressions on lists, denoted as
a[key], a[start:stop] or a[start:stop:step]. Indexes are zero-based, and negative
indexes are relative to the end. Slices take elements from the start index up to, but
not including, the stop index. The third slice parameter, called step or stride, allows
elements to be skipped and reversed. Slice indexes may be omitted, for example
a[:] returns a copy of the entire list. Each element of a slice is a shallow copy.
13 | P a g e
14 | P a g e
METHODS
Methods on objects are functions attached to the object's class; the syntax
instance.method(argument) is, for normal methods and functions, syntactic sugar
for Class.method(instance, argument). Python methods have an explicit self
parameter to access instance data, in contrast to the implicit self (or this) in some
other object-oriented programming languages (e.g., C++, Java, Objective-C, or
Ruby
Summary of Python 3's built-in types
Type Mutability Description Syntax example
bool immutable Boolean value True, False
bytearray mutable Sequence of bytes bytearray(b'Some ASCII')
bytearray(b"Some ASCII")
bytearray([119, 105, 107,
105])
bytes immutable Sequence of bytes b'Some ASCII' b"Some
ASCII"
bytes([119, 105, 107, 105])
complex immutable Complex number with real and 3+2.7j
imaginary parts
dict mutable Associative array (or dictionary) of {'key1': 1.0, 3: False}
key and value pairs; can contain
mixed types (keys and values),
keys must be a hashable type
ellipsis immutable An ellipsis placeholder to be used ...
as an index in NumPy arrays Ellipsis
float immutable Floating point number, system- 3.1415927
defined precision
frozenset immutable Unordered set, contains no frozenset([4.0, 'string',
duplicates; can contain mixed True])
types, if hashable
int immutable Integer of unlimited magnitude[84] 42
list mutable List, can contain mixed types [4.0, 'string', True]
NoneTypea immutable An object representing the absence None
of a value.
set mutable Unordered set, contains no {4.0, 'string', True}
duplicates; can contain mixed
types, if hashable
str immutable A character string: sequence of 'Wikipedia' "Wikipedia"
Unicode codepoints """Spanning
multiple
lines"""
tuple immutable Can contain mixed types (4.0, 'string', True)
range immutable A Sequence of numbers commonly range(1, 10)
used for looping specific number range(10,-5,-2)
of times in for loops[85]
15 | P a g e
PROJECT OVERVIEW
FILES IMPORTED
Random : Used to generate random numbers.
FUNCTIONS : BUILT-IN
16 | P a g e
SOURCE CODE
import random
print(21*'#')
print(21*'#')
print('')
summ=0
t1=1
q=1
L=[]
L1=[]
L2=[]
D1={1:90 ,2:160,3:100,4:250,5:130,6:110,7:135,8:150,9:120,10:80 }
D2={1:160,2:110,3:150,4:125,5:120,6:140,7:145,8:135,9:135,10:120}
D3={1:170,2:120,3:140,4:125,5:190,6:115,7:145,8:165,9:100,10:120}
D4={1:100,2:110,3:135,4:110,5:145,6:150,7:165,8:120,9:125,10:115}
D5={1:110,2:150,3:120,4:165,5:145,6:135,7:130,8:115,9:120,10:125}
D6={1:120,2:150,3:100,4:100,5:130,6:140,7:130,8:135,9:50 ,10:50 }
D7={1:100,2:150,3:150,4:100,5:120,6:130,7:135,8:135,9:120,10:70 }
D33={1:'French Fries ',2:'Peri Peri French Fries ',3:'Cheesy French Fries ',4:'Manchurian
',5:'Noodles ',6:'Vegetable Sandwich ',7:'Cheese Sandwich ',8:'Samosa
',9:'Cutlets ',10:'Spring Roll '}
17 | P a g e
D44={1:'Margarita Pizza ',2:'Pineapple Pizza ',3:'Cheese & Corn Pizza ',4:'Farmhouse
Pizza ',5:'Arrabbiata Pasta(Red Sauce) ',6:'Alfredo Pasta(White Sauce) ',7:'Pesto Pasta (Green
Sauce) ',8:'Aglio e olio Pasta ',9:'Garlic Bread ',10:'Stuffed Garlic Bread '}
flag=1
while t1!=0:
print('')
print(31*'-')
print('Code Cusine')
print(31*'-')
print(' 1. Beverages')
print(' 2. Soups')
print(' 3. Starters')
print(' 4. Italian')
print(' 5. Mexican')
print(' 8. Dessert')
print(43*'-')
18 | P a g e
cui=int(input('Enter the code of cusine you would like: '))
else:
if cui == 1:
print('')
print(59*'-')
print(59*'-')
print('')
while q!=0:
food=int(input('Which dish would you like to have? (Enter the Number): '))
if food==11:
flag=0
break
print('')
19 | P a g e
print('')
a=D1[food]
L.append(D11[food])
L1.append(r)
L2.append(a)
print('')
q=1
else:
q=-1
break
else:
print('')
continue
if flag==0:
t1=t1+1
print("Okay...")
print('')
continue
elif cui == 2:
print('')
print(59*'-')
print(59*'-')
20 | P a g e
print(' 3. Cheese Corn Tomato Soup -------------- 150')
print('')
while q!=0 :
food=int(input('Which dish would you like to have? (Enter the Number): '))
if food == 11:
flag=0
break
print('')
print('')
a=D2[food]
L.append(D22[food])
L1.append(r)
L2.append(a)
print('')
continue
else:
21 | P a g e
q=-1
break
else:
print('')
continue
if flag==0:
t1=t1+1
print("Okay...")
print('')
continue
elif cui == 3:
print('')
print(59*'-')
print(59*'-')
print('')
while q!=0 :
22 | P a g e
food=int(input('Which dish would you like to have? (Enter the Number): '))
if food == 11:
flag=0
break
print('')
print('')
a=D3[food]
L.append(D33[food])
L1.append(r)
L2.append(a)
print('')
continue
else:
q=-1
break
else:
print('')
continue
if flag==0:
t1=t1+1
print("Okay...")
print('')
continue
23 | P a g e
elif cui == 4:
print('')
print(59*'-')
print(59*'-')
print('')
while q!=0:
food=int(input('Which dish would you like to have? (Enter the Number): '))
if food == 11:
flag=0
break
print('')
print('')
a=D4[food]
L.append(D44[food])
24 | P a g e
L1.append(r)
L2.append(a)
print('')
continue
else:
q=-1
break
else:
continue
if flag==0:
t1=t1+1
print('')
print("Okay...")
print('')
continue
elif cui == 5:
print('')
print(59*'-')
print(59*'-')
25 | P a g e
print(' 7. Guacamole ---------------------------- 130')
print('')
while q!=0:
food=int(input('Which dish would you like to have? (Enter the Number): '))
if food == 11:
flag=0
break
print('')
print('')
a=D5[food]
L.append(D55[food])
L1.append(r)
L2.append(a)
print('')
continue
else:
q=-1
break
else:
26 | P a g e
print('')
continue
if flag==0:
t1=t1+1
print("Okay...")
print('')
continue
elif cui == 6:
print('')
print(59*'-')
print(59*'-')
print('')
while q!=0:
food=int(input('Which dish would you like to have? (Enter the Number): '))
if food == 11:
flag=0
break
27 | P a g e
print('')
print('')
a=D6[food]
L.append(D66[food])
L1.append(r)
L2.append(a)
print('')
continue
else:
q=-1
break
else:
print('')
continue
if flag==0:
t1=t1+1
print("Okay...")
print('')
continue
elif cui == 7:
print('')
print(59*'-')
28 | P a g e
print(59*'-')
print('')
while q!=0:
food=int(input('Which dish would you like to have? (Enter the Number): '))
if food == 11:
flag=0
break
print('')
print('')
a=D7[food]
L.append(D77[food])
L1.append(r)
L2.append(a)
print('')
29 | P a g e
if mor =='Y' or mor == 'y':
continue
else:
q=-1
break
else:
print('')
continue
if flag==0:
t1=t1+1
print("Okay...")
print('')
continue
elif cui == 8:
print('')
print(59*'-')
print(59*'-')
30 | P a g e
print(' 11. Back To Main Menu.')
print('')
while q!=0:
food=int(input('Which dish would you like to have? (Enter the Number): '))
if food == 11:
flag=0
break
print('')
print('')
a=D8[food]
L.append(D88[food])
L1.append(r)
L2.append(a)
print('')
continue
else:
q=-1
break
else:
print('')
continue
if flag==0:
t1=t1+1
31 | P a g e
print("Okay...")
print('')
continue
if L==[]:
print('')
print('')
print(15*'-','Exitinggg...',15*'-')
input()
if cui == 10:
flag=0
break
if flag==0:
t1=t1+1
input()
else:
print()
print('')
print('')
if ask.lower() == 'y':
print('')
print(15*'-','Exitinggg...',15*'-')
if cui == 10:
flag=0
32 | P a g e
break
if flag==0:
t1=t1+1
input()
else:
print('')
input()
continue
else:
if summ==0:
print('')
print('')
d=len(name)
while d==0:
d=len(name)
print('')
else:
print('')
mobno=str(mobno)
z=str(mobno)
e=len(mobno)
print('')
33 | P a g e
mobno=int(input('Please enter the correct mobile no.'))
print('')
mobno=str(mobno)
else:
f=len(add1)
print('')
while f==0:
f=len(add1)
print('')
else:
g=len(add2)
print('')
while g==0:
g=len(add2)
print('')
else:
print(33*' ','BILL')
bill=random.randint(10000,99999)
print("|",69*'-',"|")
print("|",69*'-',"|")
34 | P a g e
print('| Items Qty Price(Rs) Total Price(Rs) |')
print("|",69*'-',"|")
for i in range(len(L)):
a=(L[i])
b=(L1[i])
c=(L2[i])
if c < 100 :
if b < 10:
else :
else :
if b < 10:
else :
print("|",69*'-',"|")
l=len(str(summ))
h=(summ*8)/100
j=len(str(h))
gst=((summ*8)/100)+summ
i=len(str(gst))
summ=float(summ)
print("|",69*'-',"|")
print("|",69*'-',"|")
35 | P a g e
c=gst*10
d=c%10
f=c//10
if d<5.0:
e=f
n=len(str(e))
else:
e=f+1
n=len(str(e))
print('| Please pay the Rs', e ,'to the delivery boy.',(29-n)*(' '),'|')
print("|",69*'-',"|")
print('')
input()
break
36 | P a g e
OUTPUT SCREENS
Output 1
37 | P a g e
38 | P a g e
39 | P a g e
40 | P a g e
Output 2
41 | P a g e
42 | P a g e
43 | P a g e
44 | P a g e
Output 3
45 | P a g e
46 | P a g e
47 | P a g e
48 | P a g e
BIBLIOGRAPHY
• COMPUTER SCIENCE WITH PYTHON
• SUMITRA ARORA
• TEXTBOOK OF COMPUTER SCIENCE : FOR CLASS XI
• BY SEEMA BHATNAGAR
49 | P a g e