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 = 5 | if = 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__ મેથડ એ પાયથોન ક્લાસિસમાં એક ખાસ મેથડ (કન્સ્ટ્રક્ટર) છે જે ઓબ્જેક્ટ બનાવવામાં આવે ત્યારે આપોઆપ કોલ થાય છે.
હેતુ:
- ઓબ્જેક્ટ એટ્રિબ્યુટ્સ શરૂ કરવા
- ઓબ્જેક્ટની પ્રારંભિક સ્થિતિ સેટ કરવી
- ઓબ્જેક્ટ બનાવવામાં આવે ત્યારે ચલાવવાનો કોડ એક્ઝિક્યુટ કરવો
ઉદાહરણ:
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
પોલીમોર્ફિઝમ ડાયાગ્રામ:
- મેથડ ઓવરરાઇડિંગ: સબક્લાસિસ તેમના પોતાના સંસ્કરણો લાગુ કરે છે
- સિંગલ ઇન્ટરફેસ: વિવિધ વર્તન માટે એક જ મેથડ નામ
- ફ્લેક્સિબિલિટી: કોડ હાયરાર્કીમાં કોઈપણ ક્લાસ સાથે કામ કરે છે
- ડાયનેમિક બાઇન્ડિંગ: ઓબ્જેક્ટ ટાઇપ પર આધારિત સાચી મેથડ કોલ થાય છે
મેમરી ટ્રીક: "એક મેથડ, વિવિધ વર્તન"