ઓઓપીએસ અને પાયથોન પ્રોગ્રામિંગ (4351108) - શિયાળુ 2024 સોલ્યુશન

ઓઓપીએસ અને પાયથોન પ્રોગ્રામિંગ (4351108) શિયાળુ 2024 પરીક્ષા માટે સોલ્યુશન ગાઇડ

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

પાયથોન પ્રોગ્રામિંગ ભાષાના લક્ષણોની યાદી બનાવો.

જવાબ:

લક્ષણવર્ણન
સરળ અને સહેલુંસ્વચ્છ, વાંચી શકાય તેવું syntax
મફત અને ઓપન સોર્સકોઈ કિંમત નહીં, community driven
ક્રોસ-પ્લેટફોર્મWindows, Linux, Mac પર ચાલે છે
Interpretedcompilation ની જરૂર નથી
Object-Orientedclasses અને objects ને support કરે છે
મોટી લાઇબ્રેરીઓસમૃદ્ધ standard library

યાદી રાખવાની ટ્રિક: "સરળ મફત ક્રોસ Interpreted ઓબ્જેક્ટ મોટી"


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

પાયથોન પ્રોગ્રામિંગ ભાષાની એપ્લિકેશનો લખો.

જવાબ:

એપ્લિકેશન ક્ષેત્રઉદાહરણો
વેબ ડેવલપમેન્ટDjango, Flask frameworks
ડેટા સાયન્સNumPy, Pandas, Matplotlib
મશીન લર્નિંગTensorFlow, Scikit-learn
ડેસ્કટોપ GUITkinter, PyQt applications
ગેમ ડેવલપમેન્ટPygame library
ઓટોમેશનScripting અને testing

યાદી રાખવાની ટ્રિક: "વેબ ડેટા મશીન ડેસ્કટોપ ગેમ ઓટો"


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

પાયથોનમાં વિવિધ ડેટાટાઇપ્સ સમજાવો.

જવાબ:

ડેટા ટાઇપઉદાહરણવર્ણન
intx = 5પૂર્ણાંક સંખ્યાઓ
floaty = 3.14દશાંશ સંખ્યાઓ
strname = "John"ટેક્સ્ટ ડેટા
boolflag = TrueTrue/False મૂલ્યો
list[1, 2, 3]ક્રમબદ્ધ, બદલી શકાય તેવું
tuple(1, 2, 3)ક્રમબદ્ધ, બદલી ન શકાય તેવું
dict{"a": 1}Key-value જોડી
set{1, 2, 3}અનન્ય ઘટકો

કોડ ઉદાહરણ:

Python

યાદી રાખવાની ટ્રિક: "Integer Float String Boolean List Tuple Dict Set"


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

એરિથમેટિક, એસાઇનમેન્ટ અને આઇડેન્ટિટી ઓપરેટરો ઉદાહરણ સાથે સમજાવો.

જવાબ:

એરિથમેટિક ઓપરેટરો:

ઓપરેટરઓપરેશનઉદાહરણ
+બાકીદારી5 + 3 = 8
-બાદબાકી5 - 3 = 2
*ગુણાકાર5 * 3 = 15
/ભાગાકાર10 / 3 = 3.33
//Floor Division10 // 3 = 3
%બાકી10 % 3 = 1
**ઘાત2 ** 3 = 8

એસાઇનમેન્ટ ઓપરેટરો:

ઓપરેટરઉદાહરણસમકક્ષ
=x = 5મૂલ્ય આપો
+=x += 3x = x + 3
-=x -= 2x = x - 2
*=x *= 4x = x * 4

આઇડેન્ટિટી ઓપરેટરો:

ઓપરેટરહેતુઉદાહરણ
isસમાન ઓબ્જેક્ટx is y
is notવિવિધ ઓબ્જેક્ટx is not y

કોડ ઉદાહરણ:

Python

યાદી રાખવાની ટ્રિક: "Add Assign Identity"


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

નીચેનામાંથી કયા આઇડેન્ટિફાયર્સ ના નામો અમાન્ય છે? (i) Total Marks (ii)Total_Marks (iii)total-Marks (iv) Hundred$ (v) _Percentage (vi) True

જવાબ:

આઇડેન્ટિફાયરમાન્ય/અમાન્યકારણ
Total Marksઅમાન્યસ્પેસ છે
Total_Marksમાન્યઅન્ડરસ્કોર મંજૂર છે
total-Marksઅમાન્યહાઇફન મંજૂર નથી
Hundred$અમાન્ય$ સિમ્બોલ મંજૂર નથી
_Percentageમાન્યઅન્ડરસ્કોરથી શરૂ થઈ શકે છે
Trueઅમાન્યઆરક્ષિત કીવર્ડ છે

અમાન્ય આઇડેન્ટિફાયર્સ: Total Marks, total-Marks, Hundred$, True

યાદી રાખવાની ટ્રિક: "સ્પેસ હાઇફન ડોલર કીવર્ડ = અમાન્ય"


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

આપેલ ત્રણ સંખ્યાઓમાંથી મહત્તમ સંખ્યા શોધવા માટે પ્રોગ્રામ લખો.

જવાબ:

Python

max() ફંક્શન વાપરીને વૈકલ્પિક રીત:

Python

યાદી રાખવાની ટ્રિક: "Input Compare Display"


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

પાયથોનમાં ડિક્શનરી સમજાવો. ડિક્શનરીમાં ઘટકો ઉમેરવા, બદલવા અને કાઢી નાખવા માટેના સ્ટેટમેન્ટ લખો.

જવાબ:

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

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

ઓપરેશનસિન્ટેક્સઉદાહરણ
બનાવોdict_name = {}student = {}
ઉમેરોdict[key] = valuestudent['name'] = 'John'
બદલોdict[key] = new_valuestudent['name'] = 'Jane'
ડિલીટ કરોdel dict[key]del student['name']
એક્સેસ કરોdict[key]print(student['name'])

કોડ ઉદાહરણ:

Python

ડિક્શનરીના ગુણધર્મો:

  • ક્રમબદ્ધ: insertion order જાળવે છે (Python 3.7+)
  • બદલાય તેવું: બનાવ્યા પછી બદલી શકાય છે
  • ડુપ્લિકેટ્સ નહીં: Keys અનન્ય હોવા જરૂરી છે

યાદી રાખવાની ટ્રિક: "Key-Value ક્રમબદ્ધ બદલાય અનન્ય"


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

નીચેની પેટર્ન દર્શાવવા માટેનો પ્રોગ્રામ લખો.

જવાબ:

Python

આઉટપુટ:

1
1 2
1 2 3
1 2 3 4
1 2 3 4 5

યાદી રાખવાની ટ્રિક: "બાહ્ય રો આંતરિક કોલમ પ્રિન્ટ"


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

વપરાશકર્તા દ્વારા દાખલ કરેલ પૂર્ણાંક સંખ્યાના અંકોનો સરવાળો શોધવા માટે પ્રોગ્રામ લખો.

જવાબ:

Python

વૈકલ્પિક રીત:

Python

યાદી રાખવાની ટ્રિક: "Input કાઢો સરવાળો દર્શાવો"


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

લિસ્ટમાં સ્લાઇસિંગ અને કન્કેટનેશન ઓપરેશન સમજાવો.

જવાબ:

લિસ્ટ સ્લાઇસિંગ: લિસ્ટનો ભાગ કાઢવા માટે [start:stop:step] સિન્ટેક્સ વાપરવું.

સ્લાઇસિંગ સિન્ટેક્સ ટેબલ:

સિન્ટેક્સવર્ણનઉદાહરણ
list[start:stop]start થી stop-1 સુધીના ઘટકોnums[1:4]
list[:stop]શરૂઆતથી stop-1 સુધીnums[:3]
list[start:]start થી અંત સુધીnums[2:]
list[::step]step સાથે બધા ઘટકોnums[::2]
list[::-1]રિવર્સ લિસ્ટnums[::-1]

કન્કેટનેશન: બે અથવા વધુ લિસ્ટને + ઓપરેટર અથવા extend() મેથડ વાપરીને જોડવું.

કોડ ઉદાહરણ:

Python

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

  • સ્લાઇસિંગ: મૂળ લિસ્ટ બદલ્યા વગર નવી લિસ્ટ બનાવે છે
  • કન્કેટનેશન: લિસ્ટને એક લિસ્ટમાં જોડે છે
  • નેગેટિવ ઇન્ડેક્સિંગ: list[-1] છેલ્લો ઘટક આપે છે

યાદી રાખવાની ટ્રિક: "સ્લાઇસ કાઢો કન્કેટ જોડો"


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

પાયથોનમાં લિસ્ટ વ્યાખ્યાયિત કરો. લિસ્ટના અંતમાં એલિમેન્ટ ઉમેરવા માટે વપરાતા ફંક્શનનું નામ લખો.

જવાબ:

લિસ્ટ વ્યાખ્યા: એક લિસ્ટ એ આઇટમ્સનો ક્રમબદ્ધ સંગ્રહ છે જે બદલાય તેવો અને ડુપ્લિકેટ મૂલ્યો મંજૂર કરે છે.

ગુણધર્મો ટેબલ:

ગુણધર્મવર્ણન
ક્રમબદ્ધઆઇટમ્સનો નિશ્ચિત ક્રમ છે
બદલાય તેવુંબનાવ્યા પછી બદલી શકાય છે
ડુપ્લિકેટ્સડુપ્લિકેટ મૂલ્યો મંજૂર કરે છે
ઇન્ડેક્સ્ડઇન્ડેક્સ દ્વારા આઇટમ્સ access કરવાય છે

ઘટક ઉમેરવા માટેનું ફંક્શન: append()

ઉદાહરણ:

Python

યાદી રાખવાની ટ્રિક: "લિસ્ટ append અંત"


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

પાયથોનમાં ટ્યુપલ વ્યાખ્યાયિત કરો. ટ્યુપલના છેલ્લા એલિમેન્ટને એક્સેસ કરવા માટેનું સ્ટેટમેન્ટ લખો.

જવાબ:

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

ગુણધર્મો ટેબલ:

ગુણધર્મવર્ણન
ક્રમબદ્ધઆઇટમ્સનો નિશ્ચિત ક્રમ છે
બદલાય તેવું નથીબનાવ્યા પછી બદલી શકાય નહીં
ડુપ્લિકેટ્સડુપ્લિકેટ મૂલ્યો મંજૂર કરે છે
ઇન્ડેક્સ્ડઇન્ડેક્સ દ્વારા આઇટમ્સ access કરવાય છે

છેલ્લા એલિમેન્ટને એક્સેસ કરવું:

Python

યાદી રાખવાની ટ્રિક: "ટ્યુપલ બદલાય નહિ નેગેટિવ ઇન્ડેક્સ"


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

નીચેના સેટ ઓપરેશન્સ માટે સ્ટેટમેન્ટ લખો: ખાલી સેટ બનાવો, સેટમાં એક ઘટક ઉમેરો, સેટમાંથી એક ઘટક દૂર કરો, બે સેટનું યુનિયન, બે સેટનું છેદ, બે સેટ વચ્ચેનો તફાવત અને બે સેટ વચ્ચે સિમેટ્રિક તફાવત.

જવાબ:

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

ઓપરેશનમેથડઓપરેટરઉદાહરણ
ખાલી બનાવોset()-s = set()
ઘટક ઉમેરોadd()-s.add(5)
ઘટક દૂર કરોremove()-s.remove(5)
યુનિયનunion()``
છેદintersection()&A.intersection(B) અથવા A & B
તફાવતdifference()-A.difference(B) અથવા A - B
સિમેટ્રિક તફાવતsymmetric_difference()^A.symmetric_difference(B) અથવા A ^ B

કોડ ઉદાહરણ:

Python

યાદી રાખવાની ટ્રિક: "બનાવો ઉમેરો દૂર કરો યુનિયન છેદ તફાવત સિમેટ્રિક"


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

પાયથોનમાં સ્ટ્રિંગ વ્યાખ્યાયિત કરો. ઉદાહરણ વાપરીને સમજાવો (i) સ્ટ્રિંગ કેવી રીતે બનાવવી. (ii) ઇન્ડેક્સિંગનો ઉપયોગ કરીને વ્યક્તિગત અક્ષરોને એક્સેસ કરવું.

જવાબ:

સ્ટ્રિંગ વ્યાખ્યા: એક સ્ટ્રિંગ એ અવતરણચિહ્ન (સિંગલ અથવા ડબલ) માં બંધ કરેલા અક્ષરોનો ક્રમ છે.

(i) સ્ટ્રિંગ બનાવવું:

Python

(ii) અક્ષરોને એક્સેસ કરવું:

Python

યાદી રાખવાની ટ્રિક: "સ્ટ્રિંગ અવતરણ ઇન્ડેક્સ એક્સેસ"


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

ફોર લૂપ અને વ્હાઇલ લૂપનો ઉપયોગ કરીને લિસ્ટ ટ્રાવર્સિંગ સમજાવો.

જવાબ:

લિસ્ટ ટ્રાવર્સિંગ મતલબ લિસ્ટના દરેક ઘટકને એક પછી એક મુલાકાત લેવી.

ફોર લૂપ ટ્રાવર્સિંગ:

Python

વ્હાઇલ લૂપ ટ્રાવર્સિંગ:

Python

તુલના ટેબલ:

લૂપ પ્રકારફાયદોઉપયોગ
ફોર લૂપસરળ સિન્ટેક્સજ્યારે iteration ની સંખ્યા ખબર હોય
વ્હાઇલ લૂપવધુ નિયંત્રણજ્યારે શરત આધારિત iteration જોઈએ

યાદી રાખવાની ટ્રિક: "ફોર સરળ વ્હાઇલ નિયંત્રણ"


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

એક એવો પ્રોગ્રામ લખો કે જેનાથી વર્ગમાં n વિદ્યાર્થીઓના રોલ નંબર, નામ અને માર્ક્સ સાથેની ડિક્શનરી બનાવી શકાય અને 75 થી વધુ ગુણ મેળવનારા વિદ્યાર્થીઓના નામ ડિસ્પ્લે કરી શકાય.

જવાબ:

Python

સેમ્પલ આઉટપુટ:

વિદ્યાર્થીઓની સંખ્યા દાખલ કરો: 2

વિદ્યાર્થી 1 ની વિગતો દાખલ કરો:
રોલ નંબર: 101
નામ: John
માર્ક્સ: 80

વિદ્યાર્થી 2 ની વિગતો દાખલ કરો:
રોલ નંબર: 102
નામ: Alice
માર્ક્સ: 70

75 થી વધુ માર્ક્સ વાળા વિદ્યાર્થીઓ:
------------------------------
નામ: John, માર્ક્સ: 80.0

કુલ હાઇ પર્ફોર્મર્સ: 1

યાદી રાખવાની ટ્રિક: "Input સ્ટોર ફિલ્ટર ડિસ્પ્લે"


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

રેન્ડમ મોડ્યુલમાં ઉપલબ્ધ કોઈપણ ત્રણ ફંક્શન લખો. દરેક ફંક્શનનું સિન્ટેક્સ અને ઉદાહરણ લખો.

જવાબ:

રેન્ડમ મોડ્યુલ ફંક્શન્સ:

ફંક્શનસિન્ટેક્સહેતુઉદાહરણ
random()random.random()0.0 થી 1.0 સુધી રેન્ડમ ફ્લોટ0.7534
randint()random.randint(a, b)a થી b સુધી રેન્ડમ ઇન્ટીજરrandint(1, 10)
choice()random.choice(seq)સિક્વન્સમાંથી રેન્ડમ ઘટકchoice(['a', 'b', 'c'])

કોડ ઉદાહરણ:

Python

યાદી રાખવાની ટ્રિક: "Random Randint Choice"


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

ફંક્શનના ફાયદા લખો.

જવાબ:

ફંક્શનના ફાયદા:

ફાયદોવર્ણન
કોડ પુનઃઉપયોગએકવાર લખો, અનેકવાર વાપરો
મોડ્યુલરિટીમોટા પ્રોગ્રામને નાના ભાગોમાં વહેંચો
સરળ ડીબગિંગએરર્સ અલગ પાડીને સહેલાઈથી ઠીક કરો
વાંચવાની સુવિધાકોડ વધુ સંગઠિત અને સ્પષ્ટ બનાવે છે
જાળવણીસહેલાઈથી અપડેટ અને બદલાવ કરી શકાય છે
પુનરાવર્તન ટાળોડુપ્લિકેટ કોડ ઓછો કરે છે

ઉદાહરણ:

Python

યાદી રાખવાની ટ્રિક: "પુનઃઉપયોગ મોડ્યુલર ડીબગ વાંચો જાળવો ટાળો"


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

એક પ્રોગ્રામ લખો જે વપરાશકર્તાને સ્ટ્રિંગ માટે પૂછે અને સ્ટ્રિંગમાં દરેક 'a' નું સ્થાન પ્રિન્ટ કરે.

જવાબ:

Python

સેમ્પલ આઉટપુટ:

સ્ટ્રિંગ દાખલ કરો: Python Programming

અક્ષર 'a' આ positions પર મળ્યું: [12]
વિગતવાર સ્થાનો:
Position 12: 'a'

વૈકલ્પિક રીત:
'a' position 12 પર મળ્યું

સુધારેલું વર્ઝન:

Python

યાદી રાખવાની ટ્રિક: "Input લૂપ ચેક સ્ટોર ડિસ્પ્લે"


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

લોકલ અને ગ્લોબલ વેરિયેબલ સમજાવો.

જવાબ:

વેરિયેબલ સ્કોપ પ્રકારો:

વેરિયેબલ પ્રકારસ્કોપએક્સેસઉદાહરણ
લોકલફંક્શનની અંદર જફંક્શનની અંદરdef func(): x = 5
ગ્લોબલઆખા પ્રોગ્રામમાંપ્રોગ્રામમાં ગમે ત્યાંx = 5 (ફંક્શનની બહાર)

કોડ ઉદાહરણ:

Python

ગ્લોબલ કીવર્ડ:

Python

યાદી રાખવાની ટ્રિક: "લોકલ અંદર ગ્લોબલ બધે"


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

યુઝર ડિફાઇન્ડ ફંક્શનનું બનાવટ અને ઉપયોગ ઉદાહરણ સાથે સમજાવો.

જવાબ:

ફંક્શન બનાવટ સિન્ટેક્સ:

Python

ફંક્શનના ઘટકો:

ઘટકહેતુઉદાહરણ
defફંક્શન વ્યાખ્યાયિત કરવાનું કીવર્ડdef
function_nameફંક્શનનું નામcalculate_area
parametersઇનપુટ મૂલ્યો(length, width)
returnઆઉટપુટ મૂલ્યreturn result

ઉદાહરણ:

Python

યાદી રાખવાની ટ્રિક: "વ્યાખ્યાયિત કૉલ રિટર્ન પેરામીટર"


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

calcFact() નામનું યુઝર ડિફાઇન્ડ ફંક્શન બનાવવા માટેનો પ્રોગ્રામ લખો કે જે આર્ગ્યુમેન્ટ તરીકે આપેલ સંખ્યાના ફેક્ટોરિયલની ગણતરી કરી તેને ડિસ્પ્લે કરે.

જવાબ:

Python

રીકર્સિવ વર્ઝન:

Python

સેમ્પલ આઉટપુટ:

સંખ્યા દાખલ કરો: 5
5 નું ફેક્ટોરિયલ છે: 120

વિવિધ મૂલ્યો સાથે ટેસ્ટિંગ:
calcFact(0) = 1
calcFact(1) = 1
calcFact(5) = 120
calcFact(10) = 3628800
calcFact(-3) = નેગેટિવ સંખ્યા માટે ફેક્ટોરિયલ વ્યાખ્યાયિત નથી

યાદી રાખવાની ટ્રિક: "વ્યાખ્યાયિત ચેક લૂપ ગુણાકાર રિટર્ન"


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

ક્લાસ અને ઓબ્જેક્ટ વચ્ચે તફાવત આપો.

જવાબ:

ક્લાસ વર્સિસ ઓબ્જેક્ટ તુલના:

બાબતક્લાસઓબ્જેક્ટ
વ્યાખ્યાબ્લૂપ્રિન્ટ/ટેમ્પ્લેટક્લાસનું ઇન્સ્ટન્સ
મેમરીમેમરી એલોકેટ નથીમેમરી એલોકેટ છે
બનાવટclass કીવર્ડ વાપરીને વ્યાખ્યાયિતક્લાસના નામ વાપરીને બનાવાય છે
એટ્રિબ્યુટ્સવ્યાખ્યાયિત પરંતુ ઇનિશિયલાઇઝ નથીવાસ્તવિક મૂલ્યો છે
ઉદાહરણclass Car:my_car = Car()

કોડ ઉદાહરણ:

Python

યાદી રાખવાની ટ્રિક: "ક્લાસ બ્લૂપ્રિન્ટ ઓબ્જેક્ટ ઇન્સ્ટન્સ"


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

ક્લાસમાં કન્સ્ટ્રક્ટરનો હેતુ જણાવો.

જવાબ:

કન્સ્ટ્રક્ટરનો હેતુ:

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

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

પ્રકારવર્ણનઉદાહરણ
ડિફોલ્ટકોઈ પેરામીટર નથીdef __init__(self):
પેરામીટરાઇઝ્ડપેરામીટર લે છેdef __init__(self, name):

ઉદાહરણ:

Python

યાદી રાખવાની ટ્રિક: "ઇનિશિયલાઇઝ ઓટોમેટિક મેમરી ડિફોલ્ટ"


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

"Student" નામનો ક્લાસ બનાવવા માટે પ્રોગ્રામ લખો જેમાં નામ, રોલ નંબર અને માર્ક્સ જેવા એટ્રિબ્યુટ્સ હોય. વિદ્યાર્થીની માહિતી પ્રદર્શિત કરવાની મેથડ બનાવો. "Student" ક્લાસનો ઓબ્જેક્ટ બનાવો અને મેથડનો ઉપયોગ કેવી રીતે કરવો તે બતાવો.

જવાબ:

Python

સેમ્પલ આઉટપુટ:

Student ઓબ્જેક્ટ્સ બનાવી રહ્યા છીએ:

=== વિદ્યાર્થી 1 ની વિગતો ===
------------------------------
વિદ્યાર્થીની માહિતી
------------------------------
નામ: જોહન દોય
રોલ નંબર: 101
માર્ક્સ: 85
------------------------------
ગ્રેડ: A

=== વિદ્યાર્થી 2 ની વિગતો ===
------------------------------
વિદ્યાર્થીની માહિતી
------------------------------
નામ: આલિસ સ્મિથ
રોલ નંબર: 102
માર્ક્સ: 92
------------------------------
ગ્રેડ: A+

ક્લાસના ઘટકો:

  • એટ્રિબ્યુટ્સ: name, roll_number, marks
  • કન્સ્ટ્રક્ટર: __init__() મેથડ
  • મેથડ્સ: display_info(), calculate_grade(), display_grade()
  • ઓબ્જેક્ટ્સ: student1, student2, student3

યાદી રાખવાની ટ્રિક: "ક્લાસ એટ્રિબ્યુટ્સ કન્સ્ટ્રક્ટર મેથડ્સ ઓબ્જેક્ટ્સ"


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

એન્કેપ્સ્યુલેશનનો હેતુ જણાવો.

જવાબ:

એન્કેપ્સ્યુલેશનનો હેતુ:

હેતુવર્ણન
ડેટા છુપાવવુંઆંતરિક implementation વિગતો છુપાવે છે
ડેટા સુરક્ષાઅનધિકૃત એક્સેસથી ડેટાને બચાવે છે
નિયંત્રિત એક્સેસમેથડ્સ દ્વારા નિયંત્રિત એક્સેસ આપે છે
કોડ સિક્યુરિટીડેટાના આકસ્મિક ફેરફારને અટકાવે છે
મોડ્યુલરિટીસંબંધિત ડેટા અને મેથડ્સ એકસાથે રાખે છે

અમલીકરણ ઉદાહરણ:

Python

ફાયદા:

  • સિક્યુરિટી: ડેટાને સીધી એક્સેસ કરી શકાતી નથી
  • જાળવણી: આંતરિક implementation સહેલાઈથી બદલી શકાય છે
  • વેલિડેશન: getter/setter મેથડ્સમાં વેલિડેશન ઉમેરી શકાય છે

યાદી રાખવાની ટ્રિક: "છુપાવો સુરક્ષા નિયંત્રણ સિક્યુર મોડ્યુલર"


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

મલ્ટિલેવલ ઇન્હેરિટન્સ સમજાવો.

જવાબ:

મલ્ટિલેવલ ઇન્હેરિટન્સ એ જ્યારે એક ક્લાસ બીજી ક્લાસમાંથી ઇન્હેરિટ કરે છે, જે બદલામાં બીજી ક્લાસમાંથી ઇન્હેરિટ કરે છે, આમ એક શૃંખલા બને છે.

સ્ટ્રક્ચર ડાયાગ્રામ:

goat

લક્ષણો ટેબલ:

લેવલક્લાસઇન્હેરિટ કરે છેએક્સેસ કરે છે
લેવલ 1GrandPaકોઈથી નહીંપોતાની મેથડ્સ
લેવલ 2ParentGrandPaGrandPa + પોતાની મેથડ્સ
લેવલ 3ChildParentGrandPa + Parent + પોતાની

કોડ ઉદાહરણ:

Python

યાદી રાખવાની ટ્રિક: "શૃંખલા ઇન્હેરિટ લેવલ એક્સેસ"


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

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

જવાબ:

હાઇબ્રિડ ઇન્હેરિટન્સ એક પ્રોગ્રામમાં બહુવિધ પ્રકારની ઇન્હેરિટન્સ (સિંગલ, મલ્ટિપલ, મલ્ટિલેવલ) ને જોડે છે.

સ્ટ્રક્ચર ડાયાગ્રામ:

goat

કોડ ઉદાહરણ:

Python

સેમ્પલ આઉટપુટ:

=== હાઇબ્રિડ ઇન્હેરિટન્સ ડેમો ===

1. સામાન્ય કૂતરો બનાવી રહ્યા છીએ:
પ્રાણી બડી બન્યું
બડી રિટ્રીવર કૂકે છે
બડી ઘરની રક્ષા કરે છે

2. સામાન્ય પક્ષી બનાવી રહ્યા છીએ:
પ્રાણી ગરુડ બન્યું
ગરુડ 200cm પાંખો સાથે ઉડે છે
ગરુડ ઇંડા આપે છે

3. જાદુઈ ઉડતો કૂતરો બનાવી રહ્યા છીએ:
પ્રાણી સુપરડોગ બન્યું
પ્રાણી સુપરડોગ બન્યું
જાદુઈ સુપરડોગ બન્યું જેમાં mammal અને bird બંનેના લક્ષણ છે!

સુપરડોગ ની ક્ષમતાઓ:
-------------------------
સુપરડોગ ખાય છે
સુપરડોગ સૂએ છે
સુપરડોગ જીવતા બાળકોને જન્મ આપે છે
સુપરડોગ હસ્કી કૂકે છે
સુપરડોગ ઘરની રક્ષા કરે છે
સુપરડોગ 150cm પાંખો સાથે ઉડે છે
સુપરડોગ ઇંડા આપે છે
સુપરડોગ એક સાથે ઉડે છે અને કૂકે છે!

આ ઉદાહરણમાં ઇન્હેરિટન્સના પ્રકારો:

  1. સિંગલ: Mammal ← Animal, Bird ← Animal, Dog ← Mammal
  2. મલ્ટિપલ: FlyingDog ← Dog + Bird
  3. મલ્ટિલેવલ: FlyingDog ← Dog ← Mammal ← Animal
  4. હાઇબ્રિડ: ઉપરોક્ત બધાનું સંયોજન

મુખ્ય લક્ષણો:

  • મલ્ટિપલ પેરેન્ટ ક્લાસ: FlyingDog Dog અને Bird બંનેમાંથી ઇન્હેરિટ કરે છે
  • મેથડ રિઝોલ્યુશન ઓર્ડર: Python MRO ને અનુસરીને મેથડ conflicts ને હલ કરે છે
  • super() નો ઉપયોગ: પેરેન્ટ ક્લાસના યોગ્ય ઇનિશિયલાઇઝેશન માટે
  • સંયુક્ત કાર્યક્ષમતા: બધી પેરેન્ટ ક્લાસની મેથડ્સ તકે પહોંચ

યાદી રાખવાની ટ્રિક: "હાઇબ્રિડ મલ્ટિપલ સિંગલ મલ્ટિલેવલ સંયુક્ત"