OOPS અને પાયથોન પ્રોગ્રામિંગ (4351108) - સમર 2025 સોલ્યુશન

OOPS અને પાયથોન પ્રોગ્રામિંગ (4351108) સમર 2025 પરીક્ષા માટે સોલ્યુશન ગાઈડ

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

Python માં for લૂપનો ઉદ્દેશ્ય શું છે? ઉદાહરણ સાથે સમજાવો.

જવાબ: for લૂપનો ઉપયોગ કોઈ sequence (જેમ કે લિસ્ટ, ટપલ, સ્ટ્રિંગ) અથવા અન્ય iterable ઓબ્જેક્ટ પર પુનરાવર્તન કરવા માટે અને sequence ના દરેક આઇટમ માટે કોડનો બ્લોક ચલાવવા માટે થાય છે.

કોડ ઉદાહરણ:

Python
  • પુનરાવર્તન: સ્વયંસંચાલિત રીતે દરેક આઇટમ માટે કોડ પુનરાવર્તિત કરે છે
  • સરળતા: કાઉન્ટર્સ સાથે while લૂપ્સ કરતાં સ્વચ્છ

મેમરી ટ્રીક: "દરેક આઇટમ માટે કરો"

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

Python માં variable ડિફાઇન કરવાના નિયમો જણાવો અને Python માં ડેટાપ્રકારો (data types) ની યાદી આપો.

જવાબ:

વેરિએબલ ડિફાઈન કરવાના નિયમો:

નિયમઉદાહરણઅમાન્ય ઉદાહરણ
અક્ષર અથવા અંડરસ્કોરથી શરૂ થવું જોઈએname = "John"1name = "John"
અક્ષરો, નંબરો, અંડરસ્કોર સમાવિષ્ટ કરી શકેuser_1 = "Alice"user-1 = "Alice"
કેસ-સેન્સિટિવage અને Age અલગ છે
રિઝર્વ્ડ કીવર્ડનો ઉપયોગ ન કરી શકાયcount = 5if = 5

પાયથોન ડેટા ટાઈપ્સ:

ડેટા ટાઈપવિવરણઉદાહરણ
intપૂર્ણાંક સંખ્યાઓx = 10
floatદશાંશ સંખ્યાઓy = 10.5
strટેક્સ્ટ સ્ટ્રિંગ્સname = "John"
boolબૂલિયન મૂલ્યોis_active = True
listક્રમબદ્ધ, બદલી શકાય તેવા સંગ્રહfruits = ["apple", "banana"]
tupleક્રમબદ્ધ, બદલી ન શકાય તેવા સંગ્રહcoordinates = (10, 20)
dictકી-વેલ્યુ જોડીperson = {"name": "John", "age": 30}
setઅનોર્ડર્ડ અનન્ય આઇટમનો સંગ્રહnumbers = {1, 2, 3}
  • વેરિએબલ નિયમો: તેમને વર્ણનાત્મક અને અર્થપૂર્ણ બનાવો
  • ડેટા ટાઈપ્સ: પાયથોન આપમેળે પ્રકાર નક્કી કરે છે

મેમરી ટ્રીક: "SILB-DTS" (String, Integer, List, Boolean, Dictionary, Tuple, Set)

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

1 થી N સુધીના પ્રાઇમ નંબર પ્રિન્ટ કરવા પ્રોગ્રામ બનાવો.

જવાબ:

Python

એલ્ગોરિધમ ડાયાગ્રામ:

  • ટાઇમ કોમ્પ્લેક્સિટી: O(N√N) - વર્ગમૂળ અભિગમ સાથે ઓપ્ટિમાઇઝ કરેલ
  • સ્પેસ કોમ્પ્લેક્સિટી: O(1) - માત્ર સ્થિર સ્પેસનો ઉપયોગ કરે છે

મેમરી ટ્રીક: "ભાગ કરીને પ્રાઇમ નક્કી કરો"

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

Python માં break, continue, અને pass સ્ટેટમેન્ટનું કાર્ય અને ઉદાહરણ સાથે સમજાવો.

જવાબ:

સ્ટેટમેન્ટઉદ્દેશઉદાહરણ
breakલૂપને સંપૂર્ણપણે સમાપ્ત કરે છેશરત પૂરી થાય ત્યારે લૂપ બંધ કરો
continueવર્તમાન પુનરાવર્તન છોડી દે છે, આગળના સાથે ચાલુ રાખે છેચોક્કસ આઇટમ્સ છોડો
passનલ ઓપરેશન, કંઈ કરતું નથીભવિષ્યના કોડ માટે પ્લેસહોલ્ડર

1. break સ્ટેટમેન્ટ:

Python

2. continue સ્ટેટમેન્ટ:

Python

3. pass સ્ટેટમેન્ટ:

Python

ફ્લો કંટ્રોલ ડાયાગ્રામ:

  • break: લૂપમાંથી સંપૂર્ણપણે બહાર નીકળે છે
  • continue: આગલા પુનરાવર્તન પર જાય છે
  • pass: કંઈ કરતું નથી, ભવિષ્યના કોડ માટે પ્લેસહોલ્ડર

મેમરી ટ્રીક: "BCP - સંપૂર્ણપણે બંધ કરો, આંશિક રીતે ચાલુ રાખો, શાંતિથી પસાર થાઓ"

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

યુઝરે આપેલ વર્ષ લીપ વર્ષ છે કે નહીં તે માટે પ્રોગ્રામ બનાવો.

જવાબ:

Python

નિર્ણય વૃક્ષ:

  • નિયમ 1: 4 થી વિભાજ્ય, 100 થી નહીં
  • નિયમ 2: અથવા 400 થી વિભાજ્ય

મેમરી ટ્રીક: "4 હા, 100 ના, 400 હા"

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

Python માં લિસ્ટ અને ટ્યુપલ વચ્ચેના મુખ્ય તફાવત શું છે?

જવાબ:

વિશેષતાલિસ્ટટ્યુપલ
સિન્ટેક્સ[] નો ઉપયોગ કરીને બનાવવામાં આવે છે() નો ઉપયોગ કરીને બનાવવામાં આવે છે
પરિવર્તનશીલતામ્યુટેબલ (બદલી શકાય છે)ઇમ્યુટેબલ (બદલી શકાતું નથી)
મેથડ્સઘણી મેથડ્સ (append, remove, વગેરે)મર્યાદિત મેથડ્સ (count, index)
પર્ફોર્મન્સધીમુંઝડપી
ઉપયોગ કેસજ્યારે સંશોધન જરૂરી હોયજ્યારે ડેટા બદલવો ન જોઈએ
મેમરીવધુ મેમરી વાપરે છેઓછી મેમરી વાપરે છે

તુલના ડાયાગ્રામ:

  • લિસ્ટ્સ: જ્યારે તમારે સંગ્રહને સંશોધિત કરવાની જરૂર હોય
  • ટ્યુપલ્સ: જ્યારે તમને અપરિવર્તનીય ડેટાની જરૂર હોય (ઝડપી, સુરક્ષિત)

મેમરી ટ્રીક: "LIST - બદલી શકાય તેવા ઘટકો, TUPLE - બદલી ન શકાય તેવા ઘટકો"

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

યુઝરે દાખલ કરેલ તમામ positive number છે કે નહી તે શોધવાનો પ્રોગ્રામ બનાવો. જ્યારે યુઝર negative number દાખલ કરે, ત્યારે ઇનપુટ લેવાનું બંધ કરો અને તમામ positive number નો સરવાળો કરો.

જવાબ:

Python

પ્રક્રિયા ફ્લો:

  • લૂપ કંટ્રોલ: નકારાત્મક ઇનપુટ પર સમાપ્ત થાય છે
  • એક્યુમ્યુલેટર: દરેક હકારાત્મક સંખ્યાને ચાલુ કુલમાં ઉમેરે છે

મેમરી ટ્રીક: "નેગેટિવ આવે ત્યાં સુધી સરવાળો કરો"

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

તમે આપેલ ત્રણ number માંથી મોટો number શોધવાનું પ્રોગ્રામ બનાવો.

જવાબ:

Python

તુલના લોજિક:

  • તુલના: મહત્તમ શોધવા માટે લોજિકલ ઓપરેટર્સનો ઉપયોગ કરે છે
  • વૈકલ્પિક: સરળતા માટે બિલ્ટ-ઇન max() ફંક્શન

મેમરી ટ્રીક: "દરેકની તુલના કરો, મોટામાં મોટો લો"

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

str = "abcdefghijklmnopqrstuvwxyz" આપેલ છે. ઉપરોક્ત સ્ટ્રિંગમાંથી દરેક બીજાં અક્ષર જુદો કાઢવા માટે Python પ્રોગ્રામ લખો.

જવાબ:

Python

સ્ટ્રિંગ સ્લાઇસિંગ ડાયાગ્રામ:

+---+---+---+---+---+---+---+---+---+---+---+
| a | b | c | d | e | f | g | h | i | j | k |...
+---+---+---+---+---+---+---+---+---+---+---+
  ^       ^       ^       ^       ^
  |       |       |       |       |
  0       2       4       6       8   (indices)
  • સ્ટ્રિંગ સ્લાઇસિંગ: [start:end:step] સિન્ટેક્સ
  • સ્ટેપ વેલ્યુ: 2 દરેક બીજા અક્ષરને પસંદ કરે છે

મેમરી ટ્રીક: "સ્લાઇસ સ્ટેપ સિલેક્ટર"

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

વિદ્યાર્થીઓના નામ અને તેમના માર્ક્સ સંગ્રહિત કરવા માટે ડિક્શનરી બનાવવાનું Python પ્રોગ્રામ લખો. 75 થી વધુ માર્ક્સ મેળવનાર વિદ્યાર્થીઓના નામ ડિસ્પ્લે કરવો.

જવાબ:

Python

પ્રક્રિયા ડાયાગ્રામ:

  • ડિક્શનરી: વિદ્યાર્થીઓના નામ અને માર્ક્સની કી-વેલ્યુ જોડી
  • શરતી ફિલ્ટરિંગ: ઉચ્ચ સ્કોરર્સ (>75) પસંદ કરે છે

મેમરી ટ્રીક: "બધું સંગ્રહો, કેટલાક ફિલ્ટર કરો"

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

સ્પેસને બહાર રાખીને સ્ટ્રિંગની લંબાઈ શોધવાનો પ્રોગ્રામ લખો.

જવાબ:

Python

સ્ટ્રિંગ પ્રોસેસિંગ:

"Hello World" → "HelloWorld" → લંબાઈ: 10
  • સ્પેસ દૂર કરવી: replace() અથવા ફિલ્ટરિંગનો ઉપયોગ
  • સ્ટ્રિંગ લંબાઈ: સ્પેસ દૂર કર્યા પછી ગણતરી કરવામાં આવે છે

મેમરી ટ્રીક: "અક્ષરો ગણો, સ્પેસ છોડો"

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

Python માં ડિક્શનરી methods યાદી આપો અને દરેકને યોગ્ય ઉદાહરણ સાથે સમજાવો.

જવાબ:

મેથડવિવરણઉદાહરણ
clear()બધી વસ્તુઓ દૂર કરે છેdict.clear()
copy()ઉથલી નકલ પાછી આપે છેnew_dict = dict.copy()
get()કી માટે મૂલ્ય પાછું આપે છેvalue = dict.get('key', default)
items()કી-વેલ્યુ જોડી પાછી આપે છેfor k, v in dict.items():
keys()બધી કી પાછી આપે છેfor k in dict.keys():
values()બધા મૂલ્યો પાછા આપે છેfor v in dict.values():
pop()કી સાથે આઇટમ દૂર કરે છેvalue = dict.pop('key')
update()ડિક્શનરી અપડેટ કરે છેdict.update({'key': value})

કોડ ઉદાહરણ:

Python
  • એક્સેસ મેથડ્સ: get(), keys(), values(), items()
  • મોડિફિકેશન મેથડ્સ: update(), pop(), clear()

મેમરી ટ્રીક: "GCUP-KPIV" (Get-Copy-Update-Pop, Keys-Pop-Items-Values)

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

Python ના લિસ્ટ ડેટા ટાઇપને સમજાવો.

જવાબ:

પાયથોન લિસ્ટ: એક ક્રમબદ્ધ, પરિવર્તનશીલ સંગ્રહ જે વિવિધ ડેટા પ્રકારોની વસ્તુઓ સંગ્રહિત કરી શકે છે.

વિશેષતાવિવરણઉદાહરણ
નિર્માણચોરસ કૌંસનો ઉપયોગmy_list = [1, 'hello', True]
ઇન્ડેક્સિંગશૂન્ય-આધારિત, નકારાત્મક ઇન્ડિસીસmy_list[0], my_list[-1]
સ્લાઇસિંગભાગો કાઢોmy_list[1:3]
પરિવર્તનશીલતાસંશોધિત કરી શકાય છેmy_list[0] = 10
મેથડ્સઘણી બિલ્ટ-ઇન મેથડ્સappend(), insert(), remove()
નેસ્ટિંગલિસ્ટોની અંદર લિસ્ટોnested = [[1, 2], [3, 4]]

સામાન્ય લિસ્ટ મેથડ્સ:

મેથડહેતુઉદાહરણ
append()અંતમાં આઇટમ ઉમેરોmy_list.append(5)
insert()પોઝિશન પર ઉમેરોmy_list.insert(1, 'new')
remove()મૂલ્ય દ્વારા દૂર કરોmy_list.remove('hello')
pop()ઇન્ડેક્સ દ્વારા દૂર કરોmy_list.pop(2)
sort()લિસ્ટ સોર્ટ કરોmy_list.sort()
reverse()ક્રમ ઉલટાવોmy_list.reverse()

લિસ્ટ ઓપરેશન્સ ડાયાગ્રામ:

  • બહુમુખી: એક સંગ્રહમાં વિવિધ ડેટા પ્રકારો સ્ટોર કરે છે
  • ડાયનેમિક સાઇઝિંગ: જરૂરિયાત મુજબ મોટું થાય છે અથવા સંકોચાય છે

મેમરી ટ્રીક: "CAMP-IS" (Create, Access, Modify, Process, Index, Slice)

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

યુઝર પાસેથી સ્ટ્રિંગ ઇનપુટ લેવા માટેનું પ્રોગ્રામ લખો અને નવી સ્ટ્રિંગ બનાવ્યા વિના તેને reverse order માં છાપો.

જવાબ:

Python

સ્ટ્રિંગ રિવર્સિંગ વિઝ્યુલાઇઝેશન:

"Hello" → "olleH"

ઇન્ડિસીસ:  0   1   2   3   4
સ્ટ્રિંગ:    H   e   l   l   o
ઉલટી:      o   l   l   e   H
ઇન્ડિસીસ: -1  -2  -3  -4  -5
  • નકારાત્મક સ્ટેપ સાથે સ્લાઇસિંગ: નવી સ્ટ્રિંગ વિના ઉલટી કરે છે
  • કાર્યક્ષમ: નવી સ્ટ્રિંગ માટે વધારાની મેમરીનો ઉપયોગ થતો નથી

મેમરી ટ્રીક: "પાછળની તરફ સ્લાઇસ કરો"

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

Python માં ડિક્શનરી ઓપરેશન્સની યાદી આપો અને દરેકને યોગ્ય ઉદાહરણ સાથે સમજાવો.

જવાબ:

ઓપરેશનવિવરણઉદાહરણ
નિર્માણનવી ડિક્શનરી બનાવોd = {'key': 'value'}
એક્સેસકી દ્વારા એક્સેસvalue = d['key']
અસાઇનમેન્ટઆઇટમ્સ ઉમેરો અથવા અપડેટ કરોd['new_key'] = 'new_value'
ડિલીશનઆઇટમ્સ દૂર કરોdel d['key']
મેમ્બરશિપકી અસ્તિત્વમાં છે કે નહીં તપાસોif 'key' in d:
લંબાઈઆઇટમ્સ ગણોlen(d)
ઇટરેશનઆઇટમ્સ પર લૂપfor key in d:
કોમ્પ્રિહેન્શનનવી ડિક્શનરી બનાવો{x: x**2 for x in range(5)}

કોડ ઉદાહરણ:

Python
  • કી-આધારિત એક્સેસ: કી દ્વારા ઝડપી લુકઅપ
  • ડાયનેમિક સ્ટ્રક્ચર: જરૂરિયાત મુજબ આઇટમ્સ ઉમેરો/દૂર કરો

મેમરી ટ્રીક: "CADMIL" (Create, Access, Delete, Modify, Iterate, Length

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

Python ના સેટ ડેટા ટાઇપને વિગતે સમજાવો.

જવાબ:

પાયથોન સેટ: અનન્ય, અપરિવર્તનીય આઇટમ્સનો એક અનૌર્ડર્ડ સંગ્રહ.

વિશેષતાવિવરણઉદાહરણ
નિર્માણકર્લી બ્રેસિસ અથવા set() નો ઉપયોગmy_set = {1, 2, 3} અથવા set([1, 2, 3])
અનન્યતાડુપ્લિકેટ્સની મંજૂરી નથી{1, 2, 2, 3} {1, 2, 3} બની જાય છે
અનૌર્ડર્ડઇન્ડેક્સિંગ નહીંmy_set[0] વાપરી શકાતું નથી
પરિવર્તનશીલતાસેટ પોતે મ્યુટેબલ છે, પણ ઘટકો અપરિવર્તનીય હોવા જોઈએઆઇટમ્સ ઉમેરી/દૂર કરી શકાય છે
ગણિત ઓપરેશન્સસેટ થિયરી ઓપરેશન્સયુનિયન, ઇન્ટરસેક્શન, ડિફરન્સ
ઉપયોગ કેસડુપ્લિકેટ્સ દૂર કરવા, મેમ્બરશિપ ટેસ્ટિંગઝડપી લુકઅપ્સ

સામાન્ય સેટ ઓપરેશન્સ:

ઓપરેશનઓપરેટરમેથડવિવરણ
યુનિયન|union()બંને સેટ્સના બધા ઘટકો
ઇન્ટરસેક્શન&intersection()સામાન્ય ઘટકો
ડિફરન્સ-difference()પ્રથમમાં પરંતુ બીજામાં નહીં તેવા ઘટકો
સિમેટ્રિક ડિફરન્સ^symmetric_difference()કોઈપણ એકમાં પરંતુ બંનેમાં નહીં તેવા ઘટકો

સેટ ઓપરેશન્સ ડાયાગ્રામ:

  • ઝડપી મેમ્બરશિપ: O(1) સરેરાશ સમય જટિલતા
  • ગાણિતિક ઓપરેશન્સ: સેટ થિયરી ઓપરેશન્સ બિલ્ટ-ઇન

મેમરી ટ્રીક: "SUMO" (Sets અનન્ય, મ્યુટેબલ, અને ઓર્ડર વિનાના)

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

statistics મોડ્યુલને સમજાવો અને તેમાંની ત્રણ પદ્ધતિઓ સાથે ઉદાહરણ આપો.

જવાબ:

statistics મોડ્યુલ ન્યુમેરિક ડેટાની ગણિતીય આંકડાકીય ગણતરી માટે ફંક્શન્સ પ્રદાન કરે છે.

મેથડવિવરણઉદાહરણ
mean()ગાણિતિક સરેરાશstatistics.mean([1, 2, 3, 4, 5]) 3.0 પાછું આપે છે
median()મધ્ય મૂલ્યstatistics.median([1, 3, 5, 7, 9]) 5 પાછું આપે છે
mode()સૌથી સામાન્ય મૂલ્યstatistics.mode([1, 2, 2, 3, 4]) 2 પાછું આપે છે
stdev()સ્ટાન્ડર્ડ ડેવિએશનstatistics.stdev([1, 2, 3, 4, 5]) 1.58... પાછું આપે છે

કોડ ઉદાહરણ:

Python
  • ડેટા એનાલિસિસ: આંકડાકીય ગણતરી માટે ફંક્શન્સ
  • બિલ્ટ-ઇન મોડ્યુલ: બાહ્ય ઇન્સ્ટોલેશનની જરૂર નથી

મેમરી ટ્રીક: "MMM Stats" (Mean, Median, Mode Statistics)

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

Python માં યુઝર ડિફાઇન્ડ ફંક્શન અને યુઝર ડિફાઇન્ડ મોડ્યુલને સમજાવો.

જવાબ:

વિશેષતાયુઝર-ડિફાઇન્ડ ફંક્શનયુઝર-ડિફાઇન્ડ મોડ્યુલ
વ્યાખ્યાફરીથી વાપરી શકાય તેવા કોડનો બ્લોકફંક્શન્સ/ક્લાસિસ સાથે પાયથોન ફાઇલ
હેતુકોડ ઓર્ગેનાઇઝેશન અને રીયુઝસંબંધિત કોડ ઓર્ગેનાઇઝ કરવો
નિર્માણdef કીવર્ડનો ઉપયોગ.py ફાઇલ બનાવવી
ઉપયોગફંક્શન નામથી કૉલimport સ્ટેટમેન્ટનો ઉપયોગ
સ્કોપફંક્શનમાં લોકલઇમ્પોર્ટ પછી એક્સેસિબલ
લાભોપુનરાવર્તન ઘટાડે છેકોડ ઓર્ગેનાઇઝેશનને પ્રોત્સાહન આપે છે

યુઝર-ડિફાઇન્ડ ફંક્શન ઉદાહરણ:

Python

યુઝર-ડિફાઇન્ડ મોડ્યુલ ઉદાહરણ:

Python

મોડ્યુલ ઓર્ગેનાઇઝેશન:

  • ફંક્શન લાભો: કોડ રીયુઝ, મોડ્યુલર ડિઝાઇન
  • મોડ્યુલ લાભો: ઓર્ગેનાઇઝ્ડ કોડ, નેમસ્પેસ સેપરેશન

મેમરી ટ્રીક: "FIR-MID" (Functions આંતરિક રીયુઝ માટે, Modules ફાઇલો વચ્ચે વિતરણ માટે)

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

Using recursion આપેલ આંકડાના ફેક્ટોરિયલને શોધવા માટે યુઝર ડિફાઇન્ડ ફંક્શનનો ઉપયોગ કરીને Python કોડ લખો.

જવાબ:

Python

રિકર્સિવ ફંક્શન વિઝ્યુલાઇઝેશન:

  • બેઝ કેસ: n=0 અથવા n=1 હોય ત્યારે રિકર્ઝન રોકે છે
  • રિકર્સિવ કેસ: સમસ્યાને નાના ઉપ-સમસ્યાઓમાં તોડે છે

મેમરી ટ્રીક: "ફેક્ટોરિયલ = સંખ્યા ગુણ્યા (સંખ્યા માઇનસ વન)!"

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

મેથ મોડ્યુલને સમજાવો અને તેમાંની ત્રણ methods ઉદાહરણ સાથે સમજાવો.

જવાબ:

math મોડ્યુલ C સ્ટાન્ડર્ડ દ્વારા વ્યાખ્યાયિત ગાણિતિક ફંક્શન્સની એક્સેસ પ્રદાન કરે છે.

મેથડવિવરણઉદાહરણ
math.sqrt()વર્ગમૂળmath.sqrt(16) 4.0 પાછું આપે છે
math.pow()પાવર ફંક્શનmath.pow(2, 3) 8.0 પાછું આપે છે
math.floor()નીચે રાઉન્ડmath.floor(4.7) 4 પાછું આપે છે
math.ceil()ઉપર રાઉન્ડmath.ceil(4.2) 5 પાછું આપે છે
math.sin()સાઇન ફંક્શનmath.sin(math.pi/2) 1.0 પાછું આપે છે

કોડ ઉદાહરણ:

Python
  • ગાણિતિક ઓપરેશન્સ: એડવાન્સ મેથ ફંક્શન્સ
  • કોન્સ્ટન્ટ્સ: પાઈ અને e જેવા ગાણિતિક અચળાંકો

મેમરી ટ્રીક: "SPT Math" (Square root, Power, Trigonometry in Math module)

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

Python માં global અને local variables સમજાવો.

જવાબ:

વેરિએબલ પ્રકારસ્કોપવ્યાખ્યાએક્સેસ
લોકલફંક્શનની અંદરફંક્શનની અંદર વ્યાખ્યાયિતમાત્ર ફંક્શનની અંદર
ગ્લોબલઆખો પ્રોગ્રામફંક્શનની બહાર વ્યાખ્યાયિતપ્રોગ્રામમાં ગમે ત્યાં

ઉદાહરણ:

Python

વેરિએબલ સ્કોપ ડાયાગ્રામ:

  • ગ્લોબલ: દરેક જગ્યાએ એક્સેસિબલ પરંતુ સંશોધિત કરવા માટે global કીવર્ડની જરૂર
  • લોકલ: ફંક્શન સ્કોપ સુધી મર્યાદિત, ફંક્શન એક્ઝિક્યુશન પછી મુક્ત

મેમરી ટ્રીક: "GLOBAL બધે જાય, LOCAL ફક્ત ફંક્શનમાં રહે"

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

આપેલ સ્ટ્રિંગ પેલિન્ડ્રોમ છે કે નહીં તે તપાસવા માટે યુઝર ડિફાઇન્ડ ફંક્શન બનાવો.

જવાબ:

Python

પેલિન્ડ્રોમ ટેસ્ટિંગ પ્રક્રિયા:

  • સ્ટ્રિંગ ક્લીનિંગ: સ્પેસ દૂર કરે છે, લોવરકેસમાં ફેરવે છે
  • તુલના: રિવર્સ સ્ટ્રિંગ સાથે ચકાસે છે
  • ઉદાહરણ પેલિન્ડ્રોમ્સ: "radar", "madam", "A man a plan a canal Panama"

મેમરી ટ્રીક: "સાફ કરો, ઉલટાવો, સરખાવો"

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

ક્લાસ અને ઑબ્જેક્ટને વ્યાખ્યાયિત કરો અને ઉદાહરણ સાથે સમજાવો.

જવાબ:

ક્લાસ: ઓબ્જેક્ટ્સ બનાવવા માટેનો એક બ્લુપ્રિન્ટ જે એટ્રિબ્યુટ્સ અને મેથડ્સ વ્યાખ્યાયિત કરે છે.

ઓબ્જેક્ટ: ચોક્કસ એટ્રિબ્યુટ મૂલ્યો સાથે ક્લાસનો એક ઇન્સ્ટન્સ.

કોડ ઉદાહરણ:

Python

ક્લાસ-ઓબ્જેક્ટ સંબંધ:

  • ક્લાસ: એટ્રિબ્યુટ્સ અને મેથડ્સ સાથેનો ટેમ્પલેટ
  • ઓબ્જેક્ટ: ચોક્કસ મૂલ્યો સાથેનો કોંક્રીટ ઇન્સ્ટન્સ

મેમરી ટ્રીક: "CAMBO" (ક્લાસ સાંચો છે, ઓબ્જેક્ટ બનાવે છે)

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

કન્સ્ટ્રક્ટરનું વર્ગીકરણ કરો. જેમાંથી એકને વિગતે સમજાવો.

જવાબ:

કન્સ્ટ્રક્ટર પ્રકારવિવરણક્યારે વાપરવું
ડિફોલ્ટ કન્સ્ટ્રક્ટરજો કોઈ વ્યાખ્યાયિત ન હોય તો પાયથોન દ્વારા બનાવવામાં આવે છેસરળ ક્લાસ નિર્માણ
પેરામિટરાઇઝ્ડ કન્સ્ટ્રક્ટરપેરામીટર્સ લે છે અને શરૂ કરે છેકસ્ટમાઇઝ્ડ ઓબ્જેક્ટ નિર્માણ
નોન-પેરામિટરાઇઝ્ડ કન્સ્ટ્રક્ટરકોઈ પેરામીટર્સ લેતું નથીબેસિક ઇનિશિયલાઇઝેશન
કોપી કન્સ્ટ્રક્ટરહાલના ઑબ્જેક્ટમાંથી ઑબ્જેક્ટ બનાવે છેઓબ્જેક્ટ ડુપ્લિકેશન

પેરામિટરાઇઝ્ડ કન્સ્ટ્રક્ટર ઉદાહરણ:

Python

કન્સ્ટ્રક્ટર ફ્લો:

  • હેતુ: ઓબ્જેક્ટ એટ્રિબ્યુટ્સ શરૂ કરવા
  • સેલ્ફ પેરામીટર: બનાવવામાં આવી રહેલા ઇન્સ્ટન્સનો સંદર્ભ
  • ઓટોમેટિક કોલ: ઓબ્જેક્ટ બનાવવામાં આવે ત્યારે કોલ કરવામાં આવે છે

મેમરી ટ્રીક: "PICAN" (પેરામીટર્સ કન્સ્ટ્રક્ટર અને નામ શરૂ કરે છે)

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

hierarchical inheritance માટે Python કોડ વિકસાવો અને સમજાવો.

જવાબ:

Python

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

  • બેઝ ક્લાસ: બધા વાહનો માટે સામાન્ય એટ્રિબ્યુટ્સ/મેથડ્સ
  • ડેરાઇવ્ડ ક્લાસિસ: ચોક્કસ વાહન પ્રકારો માટે સ્પેશિયલાઇઝ્ડ વર્તન
  • મેથડ ઇન્હેરિટન્સ: ચાઇલ્ડ ક્લાસિસ પેરેન્ટ ક્લાસ મેથડ્સ વારસામાં મેળવે છે

મેમરી ટ્રીક: "પેરેન્ટ્સ શેર કરે, ચિલ્ડ્રન સ્પેશિયલાઇઝ કરે"

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

Python માં init method શું છે? તેના હેતુને યોગ્ય ઉદાહરણ સાથે સમજાવો.

જવાબ:

__init__ મેથડ એ પાયથોન ક્લાસિસમાં એક ખાસ મેથડ (કન્સ્ટ્રક્ટર) છે જે ઓબ્જેક્ટ બનાવવામાં આવે ત્યારે આપોઆપ કોલ થાય છે.

હેતુ:

  1. ઓબ્જેક્ટ એટ્રિબ્યુટ્સ શરૂ કરવા
  2. ઓબ્જેક્ટની પ્રારંભિક સ્થિતિ સેટ કરવી
  3. ઓબ્જેક્ટ બનાવવામાં આવે ત્યારે ચલાવવાનો કોડ એક્ઝિક્યુટ કરવો

ઉદાહરણ:

Python
  • આપમેળે એક્ઝિક્યુશન: ઓબ્જેક્ટ બનાવવામાં આવે ત્યારે કોલ થાય છે
  • સેલ્ફ પેરામીટર: વર્તમાન ઇન્સ્ટન્સનો સંદર્ભ આપે છે
  • મલ્ટિપલ પેરામીટર્સ: ગમે તેટલી આર્ગ્યુમેન્ટ્સ સ્વીકારી શકે છે

મેમરી ટ્રીક: "ASAP" (એટ્રિબ્યુટ્સ બનતા વખતે સેટ થાય છે)

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

Python class માટે methods નું વર્ગીકરણ કરો. તે માંથી એકને વિગતવાર સમજાવો.

જવાબ:

મેથડ પ્રકારવિવરણવ્યાખ્યા
ઇન્સ્ટન્સ મેથડઓબ્જેક્ટ ઇન્સ્ટન્સ પર કામ કરે છેself સાથે નિયમિત મેથડ
ક્લાસ મેથડક્લાસ પોતે પર કામ કરે છે@classmethod સાથે ડેકોરેટ કરેલ
સ્ટેટિક મેથડક્લાસ કે ઇન્સ્ટન્સની જરૂર નથી@staticmethod સાથે ડેકોરેટ કરેલ
મેજિક/ડન્ડર મેથડખાસ બિલ્ટ-ઇન મેથડ્સડબલ અંડરસ્કોર્સથી ઘેરાયેલ

ઇન્સ્ટન્સ મેથડ ઉદાહરણ:

Python

મેથડ ક્લાસિફિકેશન:

  • ઇન્સ્ટન્સ મેથડ્સ: ઓબ્જેક્ટ સ્ટેટ એક્સેસ અને મોડિફાય કરે છે
  • સેલ્ફ પેરામીટર: ઇન્સ્ટન્સનો સંદર્ભ
  • ઓબ્જેક્ટ-સ્પેસિફિક: પરિણામો ઇન્સ્ટન્સ સ્ટેટ પર આધાર રાખે છે

મેમરી ટ્રીક: "SIAM" (Self Is Always Mentioned in instance methods)

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

પોલીમોર્ફિઝમ માટે Python કોડ વિકસાવો અને સમજાવો.

જવાબ:

Python

પોલીમોર્ફિઝમ ડાયાગ્રામ:

  • મેથડ ઓવરરાઇડિંગ: સબક્લાસિસ તેમના પોતાના સંસ્કરણો લાગુ કરે છે
  • સિંગલ ઇન્ટરફેસ: વિવિધ વર્તન માટે એક જ મેથડ નામ
  • ફ્લેક્સિબિલિટી: કોડ હાયરાર્કીમાં કોઈપણ ક્લાસ સાથે કામ કરે છે
  • ડાયનેમિક બાઇન્ડિંગ: ઓબ્જેક્ટ ટાઇપ પર આધારિત સાચી મેથડ કોલ થાય છે

મેમરી ટ્રીક: "એક મેથડ, વિવિધ વર્તન"