# OOPS & Python Programming (4351108) - Winter 2023 Solution (ગુજરાતી)

Solution guide for OOPS & Python Programming (4351108) Winter 2023 exam

પ્રશ્ન 1(અ) [3 ગુણ]

પાયથન પ્રોગ્રામિંગ લેન્ગવેજના કોઈ પણ 6 ઉપયોગો લખો.

જવાબ:

પાયથનના ઉપયોગોનું ટેબલ:

ઉપયોગ ક્ષેત્રવર્ણન
વેબ ડેવેલપમેન્ટDjango, Flask frameworks
ડેટા સાયન્સAnalysis અને visualization
મશીન લર્નિંગAI model development
ડેસ્કટોપ એપ્લિકેશનGUI using Tkinter, PyQt
ગેમ ડેવેલપમેન્ટPygame library
ઑટોમેશનScripting અને testing

સ્મરણ સૂત્ર: "Web Data Machine Desktop Game Auto"

પ્રશ્ન 1(બ) [4 ગુણ]

પાયથન પ્રોગ્રામિંગ લેન્ગવેજની કોઈ પણ 8 વિશેષતાઓ લખો.

જવાબ:

પાયથનની વિશેષતાઓનું ટેબલ:

વિશેષતાવર્ણન
સરળ સિન્ટેક્સવાંચવા અને લખવામાં સરળ
ઇન્ટરપ્રિટેડCompilation ની જરૂર નથી
ઑબ્જેક્ટ-ઓરિએન્ટેડOOP concepts સપોર્ટ કરે છે
ડાયનેમિક ટાઇપિંગVariables ને type declaration જરૂરી નથી
ક્રોસ-પ્લેટફોર્મMultiple OS પર ચાલે છે
મોટી લાઇબ્રેરીઓRich standard library
ઓપન સોર્સઉપયોગ અને modify કરવા માટે મફત
ઇન્ટરેક્ટિવREPL environment

સ્મરણ સૂત્ર: "Simple Interpreted Object Dynamic Cross Large Open Interactive"

પ્રશ્ન 1(ક) [7 ગુણ]

પાયથનની for અને while લૂપનું કાર્ય સમજાવો.

જવાબ:

For Loop:

  • પુનરાવર્તન: Sequences પર પુનરાવર્તન કરે છે (lists, strings, ranges)
  • સિન્ટેક્સ: for variable in sequence:
  • આપોઆપ: Iteration આપોઆપ handle કરે છે

While Loop:

  • શરત આધારિત: જ્યાં સુધી શરત સાચી રહે છે
  • મેન્યુઅલ નિયંત્રણ: Programmer iteration નો નિયંત્રણ કરે છે
  • જોખમ: શરત કદી false ન બને તો infinite loop બની શકે છે

ડાયાગ્રામ:

goat

કોડ ઉદાહરણ:

Python

સ્મરણ સૂત્ર: "For આપોઆપ, While મેન્યુઅલ"

પ્રશ્ન 1(ક OR) [7 ગુણ]

પાયથનના break, continue અને pass સ્ટેટમેન્ટના કાર્ય સમજાવો.

જવાબ:

Break Statement:

  • બહાર નીકળવું: સંપૂર્ણ loop ને terminate કરે છે
  • ઉપયોગ: જ્યારે કોઈ specific condition મળે છે
  • અસર: Control loop પછીના statement પર જાય છે

Continue Statement:

  • છોડીને આગળ: ફક્ત current iteration skip કરે છે
  • ઉપયોગ: Iteration માં specific values skip કરવા માટે
  • અસર: Next iteration પર જાય છે

Pass Statement:

  • Placeholder: કંઈ કરતું નથી, syntactic placeholder
  • ઉપયોગ: જ્યારે syntax statement જોઈએ પણ કોઈ action નહીં
  • અસર: કોઈ operation perform કરતું નથી

કોડ ઉદાહરણો:

Python

સ્મરણ સૂત્ર: "Break બહાર, Continue છોડીને, Pass રાહ"

પ્રશ્ન 2(અ) [3 ગુણ]

લિસ્ટના દરેક ઘટકનું મૂલ્ય 1 થી વધારવા માટેનો પાયથન પ્રોગ્રામ લખો.

જવાબ:

કોડ:

Python

સ્મરણ સૂત્ર: "Loop Index અથવા Comprehension"

પ્રશ્ન 2(બ) [4 ગુણ]

વપરાશકર્તા પાસેથી 3 સંખ્યા લઈ તેની સરેરાશ શોધવા માટેનો પાયથન પ્રોગ્રામ લખો.

જવાબ:

કોડ:

Python

મુખ્ય મુદ્દાઓ:

  • ઇનપુટ: દશાંશ સંખ્યાઓ માટે float() ઉપયોગ કરો
  • સૂત્ર: બધાનો સરવાળો કરીને સંખ્યા વડે ભાગો
  • આઉટપુટ: Formatting માટે f-string ઉપયોગ કરો

સ્મરણ સૂત્ર: "Input Float, Sum Divide, Format Output"

પ્રશ્ન 2(ક) [7 ગુણ]

પાયથનનો list ડેટા ટાઈપ વિસ્તારથી સમજાવો.

જવાબ:

લિસ્ટની લાક્ષણિકતાઓ:

  • ક્રમબદ્ધ: Elements sequence જાળવે છે
  • બદલાવ પાત્ર: બનાવ્યા પછી modify કરી શકાય છે
  • વિવિધ પ્રકારની: વિવિધ data types store કરી શકે છે
  • ઇન્ડેક્સવાળી: Index વડે elements ને access કરી શકાય છે (0-based)

લિસ્ટ ઑપરેશન્સ ટેબલ:

ઑપરેશનSyntaxવર્ણન
બનાવવુંlist = [1,2,3]નવી list બનાવો
એક્સેસlist[0]Index વડે element મેળવો
Appendlist.append(4)અંતે element ઉમેરો
Insertlist.insert(1,5)Specific position પર ઉમેરો
Removelist.remove(2)પહેલું occurrence દૂર કરો
Poplist.pop()છેલ્લું element દૂર કરીને return કરો
Slicelist[1:3]Sublist મેળવો

કોડ ઉદાહરણ:

Python

સ્મરણ સૂત્ર: "ક્રમબદ્ધ બદલાવપાત્ર વિવિધપ્રકારની ઇન્ડેક્સવાળી"

પ્રશ્ન 2(અ OR) [3 ગુણ]

for લૂપની મદદથી લિસ્ટના દરેક ઘટકનો સરવાળો શોધવા માટેનો પાયથન પ્રોગ્રામ લખો.

જવાબ:

કોડ:

Python

સ્મરણ સૂત્ર: "શૂન્ય શરૂઆત, લૂપ ઉમેરો, કુલ પ્રિન્ટ"

પ્રશ્ન 2(બ OR) [4 ગુણ]

વપરાશકર્તા પાસેથી લીધેલા મૂડલ, વ્યાજદર અને વર્ષ પરથી સાદું વ્યાજ શોધવા માટેનો પાયથન પ્રોગ્રામ લખો.

જવાબ:

કોડ:

Python

સૂત્ર:

  • સાદું વ્યાજ = (P × R × T) / 100
  • કુલ રકમ = મૂડલ + સાદું વ્યાજ

સ્મરણ સૂત્ર: "મૂડલ દર સમય, ગુણો ભાગો સો"

પ્રશ્ન 2(ક OR) [7 ગુણ]

પાયથનનો tuple ડેટા ટાઈપ વિસ્તારથી સમજાવો.

જવાબ:

ટ્યૂપલની લાક્ષણિકતાઓ:

  • ક્રમબદ્ધ: Elements sequence જાળવે છે
  • અપરિવર્તનીય: બનાવ્યા પછી modify કરી શકાતું નથી
  • વિવિધ પ્રકારની: વિવિધ data types store કરી શકે છે
  • ઇન્ડેક્સવાળી: Index વડે access કરી શકાય છે (0-based)

ટ્યૂપલ ઑપરેશન્સ ટેબલ:

ઑપરેશનSyntaxવર્ણન
બનાવવુંtuple = (1,2,3)નવું tuple બનાવો
એક્સેસtuple[0]Index વડે element મેળવો
Counttuple.count(2)Occurrences ગિનો
Indextuple.index(3)પહેલો index શોધો
Slicetuple[1:3]Sub-tuple મેળવો
Lengthlen(tuple)Tuple નું size મેળવો
Concatenatetuple1 + tuple2Tuples જોડો

કોડ ઉદાહરણ:

Python

લિસ્ટ સાથે મુખ્ય તફાવત:

  • અપરિવર્તનીય: Elements બદલી શકાતા નથી
  • પરફોર્મન્સ: Lists કરતા વધુ ઝડપી
  • ઉપયોગ: Fixed data collections માટે

સ્મરણ સૂત્ર: "ક્રમબદ્ધ અપરિવર્તનીય વિવિધપ્રકારની ઇન્ડેક્સવાળી"

પ્રશ્ન 3(અ) [3 ગુણ]

random મોડ્યૂલની કોઈ પણ 3 મેથડ સમજાવો.

જવાબ:

Random મોડ્યૂલ મેથડ્સ ટેબલ:

મેથડSyntaxવર્ણન
random()random.random()0.0 થી 1.0 વચ્ચે float
randint()random.randint(1,10)આપેલી range વચ્ચે integer
choice()random.choice(list)Sequence માંથી random element

કોડ ઉદાહરણ:

Python

સ્મરણ સૂત્ર: "Random Float, Randint Integer, Choice Select"

પ્રશ્ન 3(બ) [4 ગુણ]

વપરાશકર્તા પાસેથી એક સ્ટ્રિંગ લઈને એમાંના દરેક 'a' નું સ્થાન પ્રિન્ટ કરવાનો પાયથન પ્રોગ્રામ લખો.

જવાબ:

કોડ:

Python

મુખ્ય મુદ્દાઓ:

  • Case-insensitive: 'a' અને 'A' બંને શોધવા માટે .lower() ઉપયોગ કરો
  • Index tracking: range અથવા enumerate ઉપયોગ કરો
  • આઉટપુટ ફોર્મેટ: સ્પષ્ટ position indication

સ્મરણ સૂત્ર: "લૂપ ઇન્ડેક્સ ચેક ઉમેરો પ્રિન્ટ"

પ્રશ્ન 3(ક) [7 ગુણ]

પાયથનનો string ડેટા ટાઈપ વિસ્તારથી સમજાવો.

જવાબ:

સ્ટ્રિંગની લાક્ષણિકતાઓ:

  • અપરિવર્તનીય: બનાવ્યા પછી બદલી શકાતું નથી
  • અનુક્રમ: Characters નો ordered collection
  • ઇન્ડેક્સવાળી: Index વડે characters ને access કરી શકાય છે
  • યુનિકોડ: બધી ભાષાઓ અને symbols સપોર્ટ કરે છે

સ્ટ્રિંગ મેથડ્સ ટેબલ:

મેથડઉદાહરણવર્ણન
upper()"hello".upper()Uppercase માં convert કરો
lower()"HELLO".lower()Lowercase માં convert કરો
strip()" hello ".strip()Whitespace દૂર કરો
split()"a,b,c".split(",")List માં split કરો
replace()"hello".replace("l","x")Substring replace કરો
find()"hello".find("e")Substring index શોધો
join()",".join(["a","b"])List elements join કરો

સ્ટ્રિંગ ઑપરેશન્સ:

Python

મુખ્ય વિશેષતાઓ:

  • જોડાણ: + operator વડે
  • પુનરાવર્તન: * operator વડે
  • સભ્યપદ: 'in' operator વડે
  • ફોર્મેટિંગ: f-strings, .format(), % formatting

સ્મરણ સૂત્ર: "અપરિવર્તનીય અનુક્રમ ઇન્ડેક્સવાળી યુનિકોડ"

પ્રશ્ન 3(અ OR) [3 ગુણ]

math મોડ્યૂલની કોઈ પણ 3 મેથડ સમજાવો.

જવાબ:

Math મોડ્યૂલ મેથડ્સ ટેબલ:

મેથડSyntaxવર્ણન
sqrt()math.sqrt(16)Square root ગણતરી
pow()math.pow(2,3)Power ગણતરી
ceil()math.ceil(4.3)Integer માં round up

કોડ ઉદાહરણ:

Python

સ્મરણ સૂત્ર: "Square Root, Power Up, Ceiling Round"

પ્રશ્ન 3(બ OR) [4 ગુણ]

વપરાશકર્તા પાસેથી એક સ્ટ્રિંગ લઈને એમાં રહેલા અંગ્રેજી સ્વરોની સંખ્યા શોધવાનો પાયથન પ્રોગ્રામ લખો.

જવાબ:

કોડ:

Python

મુખ્ય મુદ્દાઓ:

  • સ્વર વ્યાખ્યા: બંને cases શામેલ કરો
  • લૂપ કરો: String ના દરેક character માં
  • ગિનતી તર્ક: Membership check કરો અને increment કરો

સ્મરણ સૂત્ર: "સ્વર વ્યાખ્યા, લૂપ ચેક, ગિનતી વધારો"

પ્રશ્ન 3(ક OR) [7 ગુણ]

પાયથનનો set ડેટા ટાઈપ વિસ્તારથી સમજાવો.

જવાબ:

સેટની લાક્ષણિકતાઓ:

  • અક્રમ: Elements નો કોઈ નિશ્ચિત sequence નથી
  • બદલાવ પાત્ર: Elements ઉમેરી/દૂર કરી શકાય છે
  • અનન્ય: Duplicate elements allowed નથી
  • પુનરાવર્તનીય: Elements માં loop કરી શકાય છે

સેટ ઑપરેશન્સ ટેબલ:

ઑપરેશનSyntaxવર્ણન
બનાવવુંset = {1,2,3}નવો set બનાવો
Addset.add(4)Single element ઉમેરો
Removeset.remove(2)Element દૂર કરો (error if not found)
Discardset.discard(2)Element દૂર કરો (no error)
સંયોજન`set1set2`
છેદset1 & set2સામાન્ય elements
તફાવતset1 - set2ફક્ત set1 માંના elements

સેટ ગણિતીય ઑપરેશન્સ:

Python

મુખ્ય ઉપયોગો:

  • Duplicates દૂર કરવા: Lists માંથી
  • ગણિતીય ઑપરેશન્સ: સંયોજન, છેદ
  • સભ્યપદ પરીક્ષા: ઝડપી lookup

સ્મરણ સૂત્ર: "અક્રમ બદલાવપાત્ર અનન્ય પુનરાવર્તનીય"

પ્રશ્ન 4(અ) [3 ગુણ]

પાયથનમાં ક્લાસ શું છે? તે ઓબ્જેક્ટથી કઈ રીતે અલગ છે?

જવાબ:

ક્લાસ વિ. ઓબ્જેક્ટ સરખામણી:

પાસુંક્લાસઓબ્જેક્ટ
વ્યાખ્યાBlueprint અથવા templateક્લાસનું instance
મેમરીકોઈ memory allocate થતી નથીMemory allocate થાય છે
અસ્તિત્વLogical entityPhysical entity
બનાવટclass keyword ઉપયોગ કરીનેClass constructor ઉપયોગ કરીને

ઉદાહરણ:

Python

મુખ્ય મુદ્દાઓ:

  • ક્લાસ: Properties અને methods વ્યાખ્યાયિત કરતું template
  • ઓબ્જેક્ટ: Specific values સાથેનું actual instance
  • સંબંધ: એક ક્લાસ, અનેક ઓબ્જેક્ટ્સ

સ્મરણ સૂત્ર: "ક્લાસ Blueprint, ઓબ્જેક્ટ Instance"

પ્રશ્ન 4(બ) [4 ગુણ]

dictionary ડેટા ટાઈપની કોઈ પણ 4 મેથડ સમજાવો.

જવાબ:

Dictionary મેથડ્સ ટેબલ:

મેથડSyntaxવર્ણન
keys()dict.keys()બધી keys મેળવો
values()dict.values()બધી values મેળવો
items()dict.items()Key-value pairs મેળવો
get()dict.get('key')Value સુરક્ષિત રીતે મેળવો

કોડ ઉદાહરણ:

Python

સ્મરણ સૂત્ર: "Keys Values Items Get"

પ્રશ્ન 4(ક) [7 ગુણ]

કોઈ કાર્યો કરવા માટે યુઝર ડિફાઈન્ડ મોડ્યૂલ બનાવી તેને ઈમ્પોર્ટ કરી તેના ફંક્શનનો ઉપયોગ કરવાનો પાયથન પ્રોગ્રામ લખો.

જવાબ:

મોડ્યૂલ બનાવવું (math_operations.py):

Python

મુખ્ય પ્રોગ્રામ (main.py):

Python

મુખ્ય મુદ્દાઓ:

  • મોડ્યૂલ બનાવવું: Functions સાથે અલગ .py ફાઈલ
  • Import પદ્ધતિઓ: import module અથવા from module import function
  • ઉપયોગ: module.function() અથવા direct function() વડે access

સ્મરણ સૂત્ર: "બનાવો Import ઉપયોગ"

પ્રશ્ન 4(અ OR) [3 ગુણ]

પાયથન ક્લાસની મેથડ્સના પ્રકારો ટૂંકમાં સમજાવો.

જવાબ:

મેથડ્સના પ્રકારોનું ટેબલ:

મેથડ પ્રકારSyntaxવર્ણન
Instance Methoddef method(self):Instance variables ને access કરે છે
Class Method@classmethod def method(cls):Class variables ને access કરે છે
Static Method@staticmethod def method():Class/instance થી સ્વતંત્ર

ઉદાહરણ:

Python

સ્મરણ સૂત્ર: "Instance Self, Class Cls, Static કંઈ નહીં"

પ્રશ્ન 4(બ OR) [4 ગુણ]

string ડેટા ટાઈપની કોઈ પણ 4 મેથડ સમજાવો.

જવાબ:

String મેથડ્સ ટેબલ:

મેથડSyntaxવર્ણન
startswith()str.startswith('pre')Substring થી શરૂ થાય છે કે ચેક કરો
endswith()str.endswith('suf')Substring થી અંત થાય છે કે ચેક કરો
isdigit()str.isdigit()બધા digits છે કે ચેક કરો
count()str.count('sub')Substring ની occurrences ગિનો

કોડ ઉદાહરણ:

Python

સ્મરણ સૂત્ર: "Start End Digit Count"

પ્રશ્ન 4(ક OR) [7 ગુણ]

રિકર્સીવ ફંક્શનની મદદથી આપેલ નંબરનો ફેક્ટોરીયલ શોધવા માટેનો પાયથન પ્રોગ્રામ લખો.

જવાબ:

કોડ:

Python

Recursion Flow:

goat

મુખ્ય મુદ્દાઓ:

  • Base case: Recursion બંધ કરે છે (n=0 અથવા n=1)
  • Recursive case: Function પોતાને call કરે છે
  • Error handling: Negative input માટે ચેક કરો

સ્મરણ સૂત્ર: "Base બંધ, Recursive Call, Error ચેક"

પ્રશ્ન 5(અ) [3 ગુણ]

સિંગલ ઇન્હેરિટન્સ બતાવવા માટેનો પાયથન પ્રોગ્રામ લખો.

જવાબ:

કોડ:

Python

સ્મરણ સૂત્ર: "Parent Child Inherit Override"

પ્રશ્ન 5(બ) [4 ગુણ]

પાયથન ક્લાસમાં કન્સ્ટ્રક્ટરનું મહત્વ સમજાવો.

જવાબ:

કન્સ્ટ્રક્ટરનું મહત્વ:

પાસુંવર્ણન
ઇનિશિયલાઇઝેશનઓબ્જેક્ટ બનાવવામાં આવે ત્યારે આપોઆપ call થાય છે
સેટઅપInstance variables ને values સાથે initialize કરે છે
મેમરીObject attributes માટે memory allocate કરે છે
વેલિડેશનCreation દરમિયાન input parameters validate કરે છે

કન્સ્ટ્રક્ટરના પ્રકારો:

Python

મુખ્ય ફાયદાઓ:

  • આપોઆપ execution: Manual call કરવાની જરૂર નથી
  • ઓબ્જેક્ટ state: યોગ્ય initialization ensure કરે છે
  • કોડ પુનઃઉપયોગ: એક જગ્યાએ common setup code

સ્મરણ સૂત્ર: "Initialize Setup Memory Validate"

પ્રશ્ન 5(ક) [7 ગુણ]

ઇન્હેરિટન્સ દ્વારા થતું મેથડ ઓવરરાઇડિંગ બતાવવા માટેનો પાયથન પ્રોગ્રામ લખો.

જવાબ:

કોડ:

Python

મેથડ ઓવરરાઇડિંગ ડાયાગ્રામ:

goat

મુખ્ય મુદ્દાઓ:

  • સમાન મેથડ નામ: Parent અને child classes માં
  • અલગ implementation: Child class specific logic આપે છે
  • Runtime નિર્ણય: Object type આધારે યોગ્ય method call થાય છે
  • Super() ઉપયોગ: Parent class method ને access કરવા માટે

સ્મરણ સૂત્ર: "સમાન નામ અલગ તર્ક Runtime નિર્ણય"

પ્રશ્ન 5(અ OR) [3 ગુણ]

પાયથનમાં ડેટા એન્કેપ્સ્યુલેશનનો ખ્યાલ સમજાવો.

જવાબ:

ડેટા એન્કેપ્સ્યુલેશન:

પાસુંવર્ણન
વ્યાખ્યાData અને methods ને એકસાથે બાંધવું
એક્સેસ કન્ટ્રોલInternal data ને direct access પર પ્રતિબંધ
ડેટા છુપાવવુંInternal implementation બહારથી છુપાવવું
ઇન્ટરફેસMethods દ્વારા controlled access પ્રદાન કરવું

અમલીકરણ:

Python

સ્મરણ સૂત્ર: "બાંધો ડેટા છુપાવો ઇન્ટરફેસ"

પ્રશ્ન 5(બ OR) [4 ગુણ]

પાયથનમાં એબ્સ્ટ્રેક્ટ ક્લાસનો ખ્યાલ સમજાવો.

જવાબ:

એબ્સ્ટ્રેક્ટ ક્લાસ:

કન્સેપ્ટવર્ણન
વ્યાખ્યાસીધા instantiate ન થઈ શકતો ક્લાસ
એબ્સ્ટ્રેક્ટ મેથડ્સDeclared પણ implemented નથી
અમલીકરણSubclasses એ abstract methods implement કરવા જોઈએ
હેતુRelated classes માટે common interface વ્યાખ્યાયિત કરવો

ABC વડે અમલીકરણ:

Python

મુખ્ય વિશેષતાઓ:

  • Instantiate ન થઈ શકે: Abstract class objects બનાવી શકાતા નથી
  • અમલીકરણ દબાણ: Subclasses એ abstract methods implement કરવા જોઈએ
  • કોમન ઇન્ટરફેસ: સુસંગત method signatures ensure કરે છે

સ્મરણ સૂત્ર: "Instantiate ન થાય અમલીકરણ દબાણ કોમન ઇન્ટરફેસ"

પ્રશ્ન 5(ક OR) [7 ગુણ]

મલ્ટિપલ ઇન્હેરિટન્સ બતાવવા માટેનો પાયથન પ્રોગ્રામ લખો.

જવાબ:

કોડ:

Python

મલ્ટિપલ ઇન્હેરિટન્સ ડાયાગ્રામ:

goat

મુખ્ય મુદ્દાઓ:

  • અનેક પેરેન્ટ્સ: Child બંને Father અને Mother થી inherit કરે છે
  • મેથડ રિઝોલ્યુશન ઓર્ડર (MRO): કયો method call થશે તે નક્કી કરે છે
  • કન્સ્ટ્રક્ટર કોલ્સ: Parent constructors ને સ્પષ્ટપણે call કરવા
  • ડાયમંડ પ્રોબ્લેમ: Python MRO વડે handle કરે છે

આઉટપુટ:

Father constructor called
Mother constructor called  
Child constructor called

Family Details:
Father: John
Mother: Mary
Child: Alice

Method Resolution:
Father works as Engineer

સ્મરણ સૂત્ર: "અનેક પેરેન્ટ્સ MRO કન્સ્ટ્રક્ટર ડાયમંડ"