Advanced Python Programming (4321602) - Winter 2024 Solution (Gujarati)
Advanced Python Programming (4321602) Winter 2024 પરીક્ષા માટે ઉકેલ માર્ગદર્શિકા
પ્રશ્ન 1(અ) [3 માર્ક્સ]
પાયથનમાં સેટ અને ડિક્શનરી વચ્ચેનો તફાવત લખો.
જવાબ:
| લક્ષણ | સેટ | ડિક્શનરી |
|---|---|---|
| ડેટા સ્ટોરેજ | ફક્ત યુનિક એલિમેન્ટ્સ સ્ટોર કરે | કી-વેલ્યુ પેર સ્ટોર કરે |
| ક્રમ | અનઓર્ડર્ડ કલેક્શન | ઓર્ડર્ડ (Python 3.7+) |
| ડુપ્લિકેટ્સ | ડુપ્લિકેટ્સની મંજૂરી નથી | કીઝ યુનિક હોવી જોઈએ |
| એક્સેસ | ઈન્ડેક્સ દ્વારા એક્સેસ કરી શકાતું નથી | કીઝ દ્વારા વેલ્યુઝ એક્સેસ કરવા |
| સિન્ટેક્સ | {1, 2, 3} | {'key': 'value'} |
- સેટ: યુનિક, અનઓર્ડર્ડ એલિમેન્ટ્સનો કલેક્શન
- ડિક્શનરી: યુનિક કીઝ સાથે કી-વેલ્યુ પેરનો કલેક્શન
મેમરી ટ્રીક: "સેટ્સ યુનિક, ડિક્ટ્સ કીઝ વાળા"
પ્રશ્ન 1(બ) [4 માર્ક્સ]
પાયથોનમાં લિસ્ટ ઉદાહરણ સાથે સમજાવો.
જવાબ:
લિસ્ટ એક ઓર્ડર્ડ, મ્યુટેબલ કલેક્શન છે જે વિવિધ ડેટા ટાઈપ્સ સ્ટોર કરી શકે છે.
લિસ્ટ ઓપરેશન્સનું ટેબલ:
| ઓપરેશન | સિન્ટેક્સ | ઉદાહરણ |
|---|---|---|
| બનાવવું | list_name = [] | fruits = ['apple', 'banana'] |
| એક્સેસ | list[index] | fruits[0] રિટર્ન 'apple' |
| ઉમેરવું | append() | fruits.append('orange') |
| હટાવવું | remove() | fruits.remove('apple') |
Python
- ઓર્ડર્ડ: એલિમેન્ટ્સ તેમની પોઝિશન જાળવે છે
- મ્યુટેબલ: બનાવ્યા પછી મોડિફાઈ કરી શકાય છે
- ફ્લેક્સિબલ: કોઈપણ ડેટા ટાઈપ સ્ટોર કરે છે
મેમરી ટ્રીક: "લિસ્ટ્સ ઓર્ડર્ડ અને મોડિફાઈ કરી શકાય તેવી"
પ્રશ્ન 1(ક) [7 માર્ક્સ]
પાયથોનમાં ટપલ શું છે? બે ટપલ વેલ્યુને અદલાબદલી કરવાનો પાયથન પ્રોગ્રામ લખો.
જવાબ:
ટપલ એક ઓર્ડર્ડ, ઈમ્યુટેબલ કલેક્શન છે જે મલ્ટિપલ આઈટમ્સ સ્ટોર કરે છે.
ટપલના લક્ષણોનું ટેબલ:
| પ્રોપર્ટી | વર્ણન | ઉદાહરણ |
|---|---|---|
| ઈમ્યુટેબલ | બનાવ્યા પછી બદલી શકાતું નથી | t = (1, 2, 3) |
| ઓર્ડર્ડ | એલિમેન્ટ્સનો નિર્ધારિત ક્રમ | ઈન્ડેક્સ દ્વારા એક્સેસ |
| ડુપ્લિકેટ્સ | ડુપ્લિકેટ વેલ્યુઝની મંજૂરી | (1, 1, 2) |
| ઈન્ડેક્સિંગ | પોઝિશન દ્વારા એલિમેન્ટ્સ એક્સેસ | t[0] |
Python
- ઈમ્યુટેબલ: એકવાર બનાવ્યા પછી મોડિફાઈ કરી શકાતું નથી
- ઓર્ડર્ડ: એલિમેન્ટ સિક્વન્સ જાળવે છે
- હેટેરોજીનિયસ: વિવિધ ડેટા ટાઈપ્સ સ્ટોર કરી શકે છે
મેમરી ટ્રીક: "ટપલ્સ ઈમ્યુટેબલ અને ઓર્ડર્ડ"
પ્રશ્ન 1(ક OR) [7 માર્ક્સ]
પાયથોનમાં ડિક્શનરી શું છે? લૂપની મદદથી ડિક્શનરીને ટ્રાવર્સ કરવાનો પાયથન પ્રોગ્રામ લખો.
જવાબ:
ડિક્શનરી એક યુનિક કીઝ સાથે કી-વેલ્યુ પેરનો અનઓર્ડર્ડ કલેક્શન છે.
ડિક્શનરી મેથડ્સનું ટેબલ:
| મેથડ | હેતુ | ઉદાહરણ |
|---|---|---|
| keys() | બધી કીઝ મેળવો | dict.keys() |
| values() | બધી વેલ્યુઝ મેળવો | dict.values() |
| items() | કી-વેલ્યુ પેર મેળવો | dict.items() |
| get() | સેફ કી એક્સેસ | dict.get('key') |
Python
- કી-વેલ્યુ સ્ટોરેજ: દરેક કી એક વેલ્યુ સાથે મેપ થાય છે
- યુનિક કીઝ: ડુપ્લિકેટ કીઝની મંજૂરી નથી
- ફાસ્ટ લુકઅપ: O(1) એવરેજ ટાઈમ કોમ્પ્લેક્સિટી
મેમરી ટ્રીક: "ડિક્ટ્સ કીઝને વેલ્યુઝ સાથે મેપ કરે"
પ્રશ્ન 2(અ) [3 માર્ક્સ]
પેકેજ શું છે? પેકેજનો ઉપયોગ કરવાના ફાયદાઓની યાદી આપો.
જવાબ:
પેકેજ એક ડિરેક્ટરી છે જેમાં મલ્ટિપલ મોડ્યુલ્સ એકસાથે ઓર્ગેનાઈઝ કરવામાં આવે છે.
પેકેજના ફાયદાઓનું ટેબલ:
| ફાયદો | વર્ણન |
|---|---|
| ઓર્ગેનાઈઝેશન | સંબંધિત મોડ્યુલ્સને એકસાથે ગ્રુપ કરે |
| નેમસ્પેસ | નામિંગ કોન્ફ્લિક્ટ્સ ટાળે |
| રીયુઝેબિલિટી | કોડ પ્રોજેક્ટ્સમાં ફરીથી વાપરી શકાય |
| મેઈન્ટેનેબિલિટી | મોટા કોડબેસ મેનેજ કરવું સરળ |
| ડિસ્ટ્રિબ્યુશન | શેર કરવું અને ઈન્સ્ટોલ કરવું સરળ |
- મોડ્યુલર સ્ટ્રક્ચર: વધુ સારું કોડ ઓર્ગેનાઈઝેશન
- હાયરાર્કિકલ નેમસ્પેસ: નેમ કોન્ફ્લિક્ટ્સ અટકાવે
- કોડ રીયુઝ: સોફ્ટવેર રીયુઝેબિલિટીને પ્રમોટ કરે
મેમરી ટ્રીક: "પેકેજિસ રિલેટેડ મોડ્યુલ્સ ઓર્ગેનાઈઝ કરે"
પ્રશ્ન 2(બ) [4 માર્ક્સ]
કોઈપણ બે પેકેજ આયાત પદ્ધતિઓ ઉદાહરણો સાથે સમજાવો.
જવાબ:
આયાત મેથડ્સનું ટેબલ:
| મેથડ | સિન્ટેક્સ | ઉપયોગ |
|---|---|---|
| નોર્મલ આયાત | import package.module | ફુલ પાથ સાથે એક્સેસ |
| ફ્રમ આયાત | from package import module | ડાયરેક્ટ મોડ્યુલ એક્સેસ |
| સ્પેસિફિક આયાત | from package.module import function | સ્પેસિફિક આઈટમ્સ આયાત |
| વાઈલ્ડકાર્ડ આયાત | from package import * | બધા મોડ્યુલ્સ આયાત |
Python
- નોર્મલ આયાત: ફુલ પેકેજ પાથ જરૂરી
- ફ્રમ આયાત: ડાયરેક્ટ મોડ્યુલ એક્સેસની મંજૂરી
- સ્પેસિફિક ફંક્શન આયાત: ફક્ત જરૂરી ફંક્શન્સ આયાત
મેમરી ટ્રીક: "આયાત નોર્મલી અથવા પેકેજથી"
પ્રશ્ન 2(ક) [7 માર્ક્સ]
ઈન્ટ્રા-પેકેજ સંદર્ભ વિશે ઉદાહરણ સાથે સમજાવો.
જવાબ:
ઈન્ટ્રા-પેકેજ રેફરન્સ પેકેજની અંદરના મોડ્યુલ્સને એકબીજાથી આયાત કરવાની મંજૂરી આપે છે.
પેકેજ સ્ટ્રક્ચરનો ડાયાગ્રામ:
goat
રેફરન્સ ટાઈપ્સનું ટેબલ:
| ટાઈપ | સિન્ટેક્સ | ઉપયોગ |
|---|---|---|
| એબ્સોલ્યુટ | from mypackage.math_ops import basic | પેકેજ રૂટથી ફુલ પાથ |
| રિલેટિવ | from . import basic | વર્તમાન પેકેજ |
| પેરન્ટ | from .. import utils | પેરન્ટ પેકેજ |
| સિબલિંગ | from ..utils import helpers | સિબલિંગ પેકેજ |
Python
- રિલેટિવ આયાત્સ: વર્તમાન પેકેજ માટે ડોટ્સ (.) વાપરો
- એબ્સોલ્યુટ આયાત્સ: ફુલ પેકેજ પાથ
- પેકેજ હાયરાર્કી: ડોટ નોટેશન વાપરીને નેવિગેટ કરો
મેમરી ટ્રીક: "ડોટ્સ પેકેજ લેવલ્સ નેવિગેટ કરે"
પ્રશ્ન 2(અ OR) [3 માર્ક્સ]
મોડ્યુલ શું છે? મોડ્યુલનો ઉપયોગ કરવાના ફાયદાઓની યાદી આપો.
જવાબ:
મોડ્યુલ એક Python ફાઈલ છે જેમાં ડેફિનિશન્સ, સ્ટેટમેન્ટ્સ અને ફંક્શન્સ હોય છે.
મોડ્યુલના ફાયદાઓનું ટેબલ:
| ફાયદો | વર્ણન |
|---|---|
| કોડ રીયુઝેબિલિટી | એકવાર લખો, અનેક વાર વાપરો |
| નેમસ્પેસ | ફંક્શન્સ માટે અલગ નેમસ્પેસ |
| ઓર્ગેનાઈઝેશન | વધુ સારું કોડ સ્ટ્રક્ચર |
| મેઈન્ટેનેબિલિટી | ડિબગ અને અપડેટ કરવું સરળ |
| કોલેબોરેશન | મલ્ટિપલ ડેવલપર્સ કામ કરી શકે |
- રીયુઝેબલ કોડ: ફંક્શન્સ ગમે ત્યાં આયાત કરી શકાય
- મોડ્યુલર ડિઝાઈન: મોટા પ્રોગ્રામ્સને નાના ભાગોમાં વહેંચો
- સરળ મેઈન્ટેનન્સ: એક જગ્યાએ ફેરફાર બધી આયાત્સને અસર કરે
મેમરી ટ્રીક: "મોડ્યુલ્સ કોડ રીયુઝેબલ બનાવે"
પ્રશ્ન 2(બ OR) [4 માર્ક્સ]
કોઈપણ બે મોડ્યુલ આયાત પદ્ધતિ ઉદાહરણ સાથે સમજાવો.
જવાબ:
મોડ્યુલ આયાત મેથડ્સનું ટેબલ:
| મેથડ | સિન્ટેક્સ | એક્સેસ પેટર્ન |
|---|---|---|
| ડાયરેક્ટ આયાત | import module_name | module_name.function() |
| ફ્રમ આયાત | from module_name import function | function() |
| એલિયાસ આયાત | import module_name as alias | alias.function() |
| વાઈલ્ડકાર્ડ આયાત | from module_name import * | function() |
Python
- ડાયરેક્ટ આયાત: મોડ્યુલ નામ પ્રીફિક્સ સાથે એક્સેસ
- ફ્રમ આયાત: પ્રીફિક્સ વગર ડાયરેક્ટ ફંક્શન એક્સેસ
- નેમસ્પેસ કંટ્રોલ: યોગ્ય આયાત મેથડ પસંદ કરો
મેમરી ટ્રીક: "આયાત ડાયરેક્ટલી અથવા મોડ્યુલથી"
પ્રશ્ન 2(ક OR) [7 માર્ક્સ]
વતુળનું ક્ષેત્રફળ અને પરિઘ શોધવા માટેના મોડ્યુલનો પ્રોગ્રામ લખો.
જવાબ:
Python
મોડ્યુલ ફીચર્સનું ટેબલ:
| ફીચર | ઇમ્પ્લિમેન્ટેશન |
|---|---|
| ફંક્શન્સ | area(), circumference() |
| એરર હેન્ડલિંગ | નેગેટિવ ત્રિજ્યા માટે ચેક |
| કોન્સ્ટન્ટ્સ | PI વેલ્યુ |
| ડોક્યુમેન્ટેશન | ફંક્શન ડોકસ્ટ્રિંગ્સ |
- મોડ્યુલ બનાવવું: ફંક્શન્સને .py ફાઈલમાં સેવ કરો
- આયાત લવચીકતા: સંપૂર્ણ મોડ્યુલ અથવા ચોક્કસ ફંક્શન્સ
- કોડ રીયુઝ: એક જ ફંક્શન્સ મલ્ટિપલ પ્રોગ્રામ્સમાં વાપરો
મેમરી ટ્રીક: "મોડ્યુલ્સમાં રીયુઝેબલ ફંક્શન્સ હોય"
પ્રશ્ન 3(અ) [3 માર્ક્સ]
પાયથોનમાં ભૂલના પ્રકારો સમજાવો.
જવાબ:
Python એરર ટાઈપ્સનું ટેબલ:
| એરર ટાઈપ | વર્ણન | ઉદાહરણ |
|---|---|---|
| સિન્ટેક્સ એરર | ખોટું Python સિન્ટેક્સ | કોલન : ભૂલી જવું |
| રનટાઈમ એરર | એક્ઝિક્યુશન દરમિયાન થાય | શૂન્યથી ભાગાકાર |
| લોજિકલ એરર | ખોટું પ્રોગ્રામ લોજિક | ખોટું અલ્ગોરિધમ |
| નેમ એરર | અંડિફાઈન્ડ વેરિએબલ | અઘોષિત વેરિએબલ વાપરવું |
| ટાઈપ એરર | ખોટું ડેટા ટાઈપ ઓપરેશન | સ્ટ્રિંગ + ઇન્ટિજર |
- સિન્ટેક્સ એરર: પ્રોગ્રામ રન થાય તે પહેલાં શોધાય
- રનટાઈમ એરર: પ્રોગ્રામ એક્ઝિક્યુશન દરમિયાન થાય
- લોજિકલ એરર: પ્રોગ્રામ રન થાય પણ ખોટા પરિણામ આપે
મેમરી ટ્રીક: "સિન્ટેક્સ, રનટાઈમ, લોજિક એરર્સ"
પ્રશ્ન 3(બ) [4 માર્ક્સ]
યુઝર-ડિફાઈન્ડ એક્સેપ્શન રેઈઝ સ્ટેટમેન્ટ સાથે સમજાવો.
જવાબ:
યુઝર-ડિફાઈન્ડ એક્સેપ્શન્સ પ્રોગ્રામર્સ દ્વારા બનાવવામાં આવેલા કસ્ટમ એરર ક્લાસીસ છે.
એક્સેપ્શન કોમ્પોનન્ટ્સનું ટેબલ:
| કોમ્પોનન્ટ | હેતુ | ઉદાહરણ |
|---|---|---|
| ક્લાસ ડેફિનિશન | કસ્ટમ એક્સેપ્શન બનાવો | class CustomError(Exception): |
| રેઈઝ સ્ટેટમેન્ટ | એક્સેપ્શન ટ્રિગર કરો | raise CustomError("message") |
| એરર મેસેજ | સમસ્યાનું વર્ણન | માહિતીપ્રદ ટેક્સ્ટ |
| એક્સેપ્શન હેન્ડલિંગ | કસ્ટમ એક્સેપ્શન પકડો | except CustomError: |
Python
- કસ્ટમ એક્સેપ્શન ક્લાસ: Exception થી ઇન્હેરિટ કરે
- રેઈઝ સ્ટેટમેન્ટ: મેન્યુઅલી એક્સેપ્શન્સ ટ્રિગર કરે
- અર્થપૂર્ણ મેસેજિસ: ડિબગિંગમાં મદદ કરે
મેમરી ટ્રીક: "વેલિડેશન માટે કસ્ટમ એક્સેપ્શન રેઈઝ કરો"
પ્રશ્ન 3(ક) [7 માર્ક્સ]
ટ્રાય-એક્સેપ્ટ-ફાઈનલી ક્લોઝ ઉદાહરણ સાથે સમજાવો.
જવાબ:
ટ્રાય-એક્સેપ્ટ-ફાઈનલી સંપૂર્ણ એક્સેપ્શન હેન્ડલિંગ મિકેનિઝમ પૂરું પાડે છે.
એક્સેપ્શન હેન્ડલિંગ બ્લોક્સનું ટેબલ:
| બ્લોક | હેતુ | એક્ઝિક્યુશન |
|---|---|---|
| try | એક્સેપ્શન ઉઠાવી શકે તેવો કોડ | હંમેશા પહેલા એક્ઝિક્યુટ |
| except | ચોક્કસ એક્સેપ્શન્સ હેન્ડલ કરે | ફક્ત એક્સેપ્શન આવે તો |
| else | કોઈ એક્સેપ્શન નહીં આવે ત્યારે | ફક્ત કોઈ એક્સેપ્શન નહીં આવે તો |
| finally | ક્લીનઅપ કોડ | હંમેશા એક્ઝિક્યુટ થાય |
Python
ફ્લો ડાયાગ્રામ:
- try: જોખમી કોડ હોય છે
- except: ચોક્કસ એરર્સ હેન્ડલ કરે
- finally: ક્લીનઅપ માટે હંમેશા એક્ઝિક્યુટ થાય
મેમરી ટ્રીક: "ટ્રાય-એક્સેપ્ટ-ફાઈનલી હંમેશા ક્લીન કરે"
પ્રશ્ન 3(અ OR) [3 માર્ક્સ]
બિલ્ટ-ઇન એક્સેપ્શન શું છે? કોઇ પણ બેની તેમના અર્થ સાથે યાદી બનાવો.
જવાબ:
બિલ્ટ-ઇન એક્સેપ્શન્સ Python માં પૂર્વ-નિર્ધારિત એરર ટાઈપ્સ છે.
બિલ્ટ-ઇન એક્સેપ્શન્સનું ટેબલ:
| એક્સેપ્શન | અર્થ | ઉદાહરણ |
|---|---|---|
| ValueError | યોગ્ય ટાઈપ પણ અમાન્ય વેલ્યુ | int("abc") |
| TypeError | ખોટું ડેટા ટાઈપ ઓપરેશન | "5" + 5 |
| IndexError | લિસ્ટ ઇન્ડેક્સ રેન્જની બહાર | 5-આઇટમ લિસ્ટ માટે list[10] |
| KeyError | ડિક્શનરી કી મળી નહીં | dict["missing_key"] |
| ZeroDivisionError | શૂન્યથી ભાગાકાર | 10 / 0 |
બે મુખ્ય બિલ્ટ-ઇન એક્સેપ્શન્સ:
- ValueError: જ્યારે ફંક્શનને યોગ્ય ટાઈપ પણ અમાન્ય વેલ્યુ મળે
- TypeError: જ્યારે અયોગ્ય ડેટા ટાઈપ પર ઓપરેશન કરવામાં આવે
મેમરી ટ્રીક: "બિલ્ટ-ઇન એક્સેપ્શન્સ સામાન્ય એરર્સ હેન્ડલ કરે"
પ્રશ્ન 3(બ OR) [4 માર્ક્સ]
ટ્રાય-એક્સેપ્ટ ક્લોઝ ઉદાહરણ સાથે સમજાવો.
જવાબ:
ટ્રાય-એક્સેપ્ટ પ્રોગ્રામ એક્ઝિક્યુશન દરમિયાન આવી શકે તેવા એક્સેપ્શન્સ હેન્ડલ કરે છે.
એક્સેપ્શન હેન્ડલિંગનું ટેબલ:
| કોમ્પોનન્ટ | હેતુ | સિન્ટેક્સ |
|---|---|---|
| try | નિષ્ફળ થઈ શકે તેવો કોડ | try: |
| except | ચોક્કસ એક્સેપ્શન હેન્ડલ કરે | except ErrorType: |
| મલ્ટિપલ except | વિવિધ એરર્સ હેન્ડલ કરે | મલ્ટિપલ except બ્લોક્સ |
| જનરલ except | કોઈપણ એક્સેપ્શન પકડે | except: |
Python
- try બ્લોક: સંભવિત જોખમી કોડ હોય છે
- except બ્લોક: ચોક્કસ એક્સેપ્શન ટાઈપ્સ હેન્ડલ કરે
- મલ્ટિપલ હેન્ડલર્સ: વિવિધ એક્સેપ્શન્સ અલગ અલગ હેન્ડલ
મેમરી ટ્રીક: "જોખમી કોડ ટ્રાય કરો, એક્સેપ્ટ એરર્સ હેન્ડલ કરે"
પ્રશ્ન 3(ક OR) [7 માર્ક્સ]
ડિવાઇડ બાય ઝીરો એક્સેપ્શન ફાઈનલી ક્લોઝ સાથે કેચ કરવાનો પ્રોગ્રામ લખો.
જવાબ:
Python
એક્સેપ્શન હેન્ડલિંગ ફીચર્સનું ટેબલ:
| ફીચર | ઇમ્પ્લિમેન્ટેશન |
|---|---|
| ZeroDivisionError | શૂન્યથી ભાગાકાર માટે ચોક્કસ હેન્ડલિંગ |
| ValueError | અમાન્ય ઇનપુટ ટાઈપ્સ હેન્ડલ કરે |
| જનરિક એક્સેપ્શન | અનપેક્ષિત એરર્સ પકડે |
| ફાઈનલી બ્લોક | હંમેશા ક્લીનઅપ કોડ એક્ઝિક્યુટ |
એક્સેપ્શન હેન્ડલિંગ ફ્લો:
- ચોક્કસ એક્સેપ્શન હેન્ડલિંગ: ZeroDivisionError અલગથી પકડાય
- ફાઈનલી ક્લોઝ: ક્લીનઅપ માટે હંમેશા એક્ઝિક્યુટ થાય
- રિસોર્સ મેનેજમેન્ટ: એરર્સ છતાં યોગ્ય ક્લીનઅપ
મેમરી ટ્રીક: "ફાઈનલી હંમેશા રિસોર્સિસ ક્લીન કરે"
પ્રશ્ન 4(અ) [3 માર્ક્સ]
વ્યાખ્યાયિત કરો: ફાઇલ, બાઇનરી ફાઇલ, ટેક્સ્ટ ફાઇલ
જવાબ:
ફાઈલ વ્યાખ્યાઓનું ટેબલ:
| શબ્દ | વ્યાખ્યા | ઉદાહરણ |
|---|---|---|
| ફાઈલ | ડિસ્ક પર નામવાળું સ્ટોરેજ સ્થાન | document.txt, image.jpg |
| બાઈનરી ફાઈલ | બાઈનરી ફોર્મેટમાં નોન-ટેક્સ્ટ ડેટા સમાવે | .exe, .jpg, .mp3, .pdf |
| ટેક્સ્ટ ફાઈલ | માનવ-વાંચી શકાય તેવા ટેક્સ્ટ કેરેક્ટર્સ સમાવે | .txt, .py, .html, .csv |
વિગતવાર વ્યાખ્યાઓ:
- ફાઈલ: સ્ટોરેજ ડિવાઈસ પર યુનિક નામ સાથે સ્ટોર કરેલો ડેટાનો કલેક્શન
- બાઈનરી ફાઈલ: બાઈનરી ફોર્મેટ (0s અને 1s) માં ડેટા સ્ટોર કરે, માનવ-વાંચી ન શકાય
- ટેક્સ્ટ ફાઈલ: ASCII અથવા Unicode કેરેક્ટર્સ સમાવે, માનવ-વાંચી શકાય તેવું ફોર્મેટ
મેમરી ટ્રીક: "ફાઈલ્સ ડેટા સ્ટોર કરે, બાઈનરી=મશીન, ટેક્સ્ટ=માનવ"
પ્રશ્ન 4(બ) [4 માર્ક્સ]
write() અને writelines() ફંક્શન ઉદાહરણ સાથે સમજાવો.
જવાબ:
રાઈટ ફંક્શન્સનું ટેબલ:
| ફંક્શન | હેતુ | પેરામીટર | ઉપયોગ |
|---|---|---|---|
| write() | સિંગલ સ્ટ્રિંગ લખે | સ્ટ્રિંગ | file.write("Hello") |
| writelines() | સ્ટ્રિંગ્સની લિસ્ટ લખે | લિસ્ટ/સિક્વન્સ | file.writelines(["line1", "line2"]) |
Python
મુખ્ય તફાવતો:
- write(): એક સમયે એક સ્ટ્રિંગ લખે
- writelines(): સિક્વન્સમાંથી મલ્ટિપલ સ્ટ્રિંગ્સ લખે
- ન્યુલાઈન્સ:
\nમેન્યુઅલી ઉમેરવું પડે - રિટર્ન વેલ્યુ: બંને લખાયેલા કેરેક્ટર્સની સંખ્યા રિટર્ન કરે
મેમરી ટ્રીક: "write() સિંગલ, writelines() મલ્ટિપલ"
પ્રશ્ન 4(ક) [7 માર્ક્સ]
tell() અને seek() ફંક્શન ઉદાહરણ સાથે સમજાવો.
જવાબ:
ફાઈલ પોઈન્ટર ફંક્શન્સ ફાઈલની અંદર રીડિંગ/રાઈટિંગ માટે પોઝિશન કંટ્રોલ કરે છે.
પોઝિશન ફંક્શન્સનું ટેબલ:
| ફંક્શન | હેતુ | રિટર્ન/પેરામીટર | ઉપયોગ |
|---|---|---|---|
| tell() | વર્તમાન પોઝિશન મેળવો | વર્તમાન બાઈટ પોઝિશન રિટર્ન | pos = file.tell() |
| seek(offset, whence) | ચોક્કસ પોઝિશન પર જાઓ | offset: બાઈટ્સ, whence: રેફરન્સ | file.seek(10, 0) |
Seek Whence વેલ્યુઝ:
| વેલ્યુ | રેફરન્સ પોઈન્ટ | વર્ણન |
|---|---|---|
| 0 | ફાઈલની શરૂઆત | એબ્સોલ્યુટ પોઝિશનિંગ |
| 1 | વર્તમાન પોઝિશન | વર્તમાનના સંબંધમાં |
| 2 | ફાઈલનો અંત | અંતના સંબંધમાં |
Python
પોઝિશન કંટ્રોલ ડાયાગ્રામ:
- tell(): ફાઈલમાં વર્તમાન બાઈટ પોઝિશન રિટર્ન કરે
- seek(): ફાઈલ પોઈન્ટરને સ્પેસિફાઈડ પોઝિશન પર મૂવ કરે
- પોઝિશનિંગ: રેન્ડમ ફાઈલ એક્સેસ માટે જરૂરી
- બાઈનરી મોડ: બાઈટ પોઝિશન્સ સાથે કામ કરે
મેમરી ટ્રીક: "tell() પોઝિશન, seek() મૂવમેન્ટ"
પ્રશ્ન 4(અ OR) [3 માર્ક્સ]
એબ્સોલ્યુટ અને રિલેટિવ પાથ શું છે?
જવાબ:
પાથ ટાઈપ્સનું ટેબલ:
| પાથ ટાઈપ | વર્ણન | ઉદાહરણ |
|---|---|---|
| એબ્સોલ્યુટ પાથ | રૂટ ડિરેક્ટરીથી સંપૂર્ણ પાથ | /home/user/documents/file.txt |
| રિલેટિવ પાથ | વર્તમાન ડિરેક્ટરીના સંબંધમાં પાથ | ../documents/file.txt |
પાથ સિમ્બોલ્સ:
| સિમ્બોલ | અર્થ | ઉદાહરણ |
|---|---|---|
| / | રૂટ ડિરેક્ટરી (Linux/Mac) | /home/user/ |
| C:\ | ડ્રાઈવ લેટર (Windows) | C:\\Users\\Documents\\ |
| . | વર્તમાન ડિરેક્ટરી | ./file.txt |
| .. | પેરન્ટ ડિરેક્ટરી | ../folder/file.txt |
- એબ્સોલ્યુટ: સિસ્ટમ રૂટથી સંપૂર્ણ પાથ
- રિલેટિવ: વર્તમાન વર્કિંગ ડિરેક્ટરીથી પાથ
મેમરી ટ્રીક: "એબ્સોલ્યુટ રૂટથી, રિલેટિવ વર્તમાનથી"
પ્રશ્ન 4(બ OR) [4 માર્ક્સ]
બાયનરી અને ટેક્સ્ટ ફાઇલ ખોલવાના વિવિધ મોડ સમજાવો.
જવાબ:
ફાઈલ ઓપનિંગ મોડ્સનું ટેબલ:
| મોડ | ટાઈપ | હેતુ | ફાઈલ પોઈન્ટર |
|---|---|---|---|
| 'r' | ટેક્સ્ટ | ફક્ત વાંચવા | શરૂઆત |
| 'w' | ટેક્સ્ટ | લખવા (ઓવરરાઈટ) | શરૂઆત |
| 'a' | ટેક્સ્ટ | ઉમેરવા | અંત |
| 'rb' | બાઈનરી | બાઈનરી વાંચવા | શરૂઆત |
| 'wb' | બાઈનરી | બાઈનરી લખવા | શરૂઆત |
| 'ab' | બાઈનરી | બાઈનરી ઉમેરવા | અંત |
| 'r+' | ટેક્સ્ટ | વાંચવા અને લખવા | શરૂઆત |
| 'w+' | ટેક્સ્ટ | લખવા અને વાંચવા | શરૂઆત |
Python
- ટેક્સ્ટ મોડ્સ: એન્કોડિંગ સાથે સ્ટ્રિંગ ડેટા હેન્ડલ કરે
- બાઈનરી મોડ્સ: એન્કોડિંગ વગર રો બાઈટ્સ હેન્ડલ કરે
- પ્લસ મોડ્સ: રીડિંગ અને રાઈટિંગ બંનેની મંજૂરી
મેમરી ટ્રીક: "ટેક્સ્ટ સ્ટ્રિંગ્સ માટે, બાઈનરી બાઈટ્સ માટે"
પ્રશ્ન 4(ક OR) [7 માર્ક્સ]
વિદ્યાર્થીના વિષય રેકોર્ડ જેવાં કે શાખાનું નામ, સેમેસ્ટર, વિષયનો કોડ અને વિષયનું નામ બાઇનરી ફાઇલમાં લખવા માટેનો પ્રોગ્રામ લખો.
જવાબ:
Python
બાઈનરી ફાઈલ ઓપરેશન્સનું ટેબલ:
| ઓપરેશન | મેથડ | હેતુ |
|---|---|---|
| લખવું | pickle.dump() | ઓબ્જેક્ટ્સને બાઈનરીમાં સીરિયલાઈઝ |
| વાંચવું | pickle.load() | બાઈનરીમાંથી ઓબ્જેક્ટ્સ ડીસીરિયલાઈઝ |
| ઉમેરવું | વાંચવું + ઉમેરવું + લખવું | નવા રેકોર્ડ્સ ઉમેરો |
| શોધવું | લોડ કરેલો ડેટા ફિલ્ટર | ચોક્કસ રેકોર્ડ્સ શોધો |
બાઈનરી ફાઈલ સ્ટ્રક્ચર:
- બાઈનરી સ્ટોરેજ: ઓબ્જેક્ટ સીરિયલાઈઝેશન માટે pickle વાપરે
- કાર્યક્ષમ સ્ટોરેજ: કોમ્પેક્ટ બાઈનરી ફોર્મેટ
- ઓબ્જેક્ટ પ્રિઝર્વેશન: ડેટા સ્ટ્રક્ચર ઈન્ટેગ્રિટી જાળવે
- ક્રોસ-પ્લેટફોર્મ: વિવિધ ઓપરેટિંગ સિસ્ટમ્સ પર કામ કરે
મેમરી ટ્રીક: "Pickle Python ઓબ્જેક્ટ્સ પ્રિઝર્વ કરે"
પ્રશ્ન 5(અ) [3 માર્ક્સ]
વ્યાખ્યાયિત કરો: GUI, CLI
જવાબ:
ઈન્ટરફેસ વ્યાખ્યાઓનું ટેબલ:
| શબ્દ | પૂરું નામ | વર્ણન | ઉદાહરણ |
|---|---|---|---|
| GUI | Graphical User Interface | વિન્ડોઝ, બટન્સ, આઈકોન્સ સાથે વિઝ્યુઅલ ઈન્ટરફેસ | Windows, Mac ડેસ્કટોપ |
| CLI | Command Line Interface | કમાન્ડ્સ વાપરીને ટેક્સ્ટ-આધારિત ઈન્ટરફેસ | ટર્મિનલ, કમાન્ડ પ્રોમ્પ્ટ |
મુખ્ય તફાવતો:
- GUI: યુઝર-ફ્રેન્ડલી, માઉસ-ડ્રિવન, વિઝ્યુઅલ એલિમેન્ટ્સ
- CLI: ટેક્સ્ટ-આધારિત, કીબોર્ડ-ડ્રિવન, કમાન્ડ સિન્ટેક્સ
- ઈન્ટરેક્શન: GUI ક્લિક્સ વાપરે, CLI ટાઈપ કરેલા કમાન્ડ્સ વાપરે
મેમરી ટ્રીક: "GUI ગ્રાફિક્સ, CLI કમાન્ડ્સ"
પ્રશ્ન 5(બ) [4 માર્ક્સ]
ટર્ટલનો ઉપયોગ કરીને for અને while લૂપનો ઉપયોગ કરીને ચોરસ આકાર દોરવા માટે પાયથોન પ્રોગ્રામ લખો.
જવાબ:
Python
લૂપ કમ્પેરિઝનનું ટેબલ:
| લૂપ ટાઈપ | સ્ટ્રક્ચર | ઉપયોગ | કંટ્રોલ |
|---|---|---|---|
| for લૂપ | for i in range(4): | જાણીતા ઈટરેશન્સ | કાઉન્ટર-આધારિત |
| while લૂપ | while condition: | કન્ડિશનલ ઈટરેશન્સ | કન્ડિશન-આધારિત |
- for લૂપ: જાણીતી સંખ્યાના ઈટરેશન્સ માટે શ્રેષ્ઠ
- while લૂપ: કન્ડિશન-આધારિત રિપેટિશન માટે શ્રેષ્ઠ
- બંને અચીવ કરે: એક જ ચોરસ દોરવાનું પરિણામ
મેમરી ટ્રીક: "For કાઉન્ટ, While કન્ડિશન"
પ્રશ્ન 5(ક) [7 માર્ક્સ]
ટર્ટલનો ઉપયોગ કરીને ચેસબોર્ડ દોરવા માટે પાયથોન પ્રોગ્રામ લખો.
જવાબ:
Python
ચેસબોર્ડ કોમ્પોનન્ટ્સનું ટેબલ:
| કોમ્પોનન્ટ | ઇમ્પ્લિમેન્ટેશન | હેતુ |
|---|---|---|
| ચોરસ | 8x8 ગ્રિડ ઓલ્ટર્નેટિંગ કલર્સ | મુખ્ય બોર્ડ પેટર્ન |
| રંગો | કાળો અને સફેદ ઓલ્ટર્નેટિંગ | પરંપરાગત ચેસ પેટર્ન |
| બોર્ડર | બ્રાઉન રેક્ટેંગલ આઉટલાઈન | બોર્ડને ફ્રેમ કરો |
| લેબલ્સ | A-H કોલમ્સ, 1-8 રોઝ | ચેસ નોટેશન |
| પીસીસ | યુનિકોડ ચેસ સિમ્બોલ્સ | સેમ્પલ પીસ પ્લેસમેન્ટ |
ચેસબોર્ડ પેટર્ન લોજિક:
- ઓલ્ટર્નેટિંગ પેટર્ન: (row + col) % 2 રંગ નક્કી કરે
- ગ્રિડ સિસ્ટમ: ચોક્કસ પોઝિશનિંગ સાથે 8x8 ચોરસ
- વિઝ્યુઅલ એન્હાન્સમેન્ટ્સ: બોર્ડર, લેબલ્સ અને સેમ્પલ પીસીસ
- સ્કેલેબલ ડિઝાઈન: ચોરસ સાઈઝ મોડિફાઈ કરવું સરળ
મેમરી ટ્રીક: "ગ્રિડ પેટર્નમાં ઓલ્ટર્નેટ કલર્સ"
પ્રશ્ન 5(અ OR) [3 માર્ક્સ]
ટર્ટલમાં કેટલા પ્રકારના આકાર હોય છે? કોઈપણ એક આકાર યોગ્ય ઉદાહરણ સાથે સમજાવો.
જવાબ:
ટર્ટલ શેપ્સનું ટેબલ:
| શેપ ટાઈપ | ઉદાહરણો | મેથડ |
|---|---|---|
| બેસિક શેપ્સ | વતુળ, ચોરસ, ત્રિકોણ | બિલ્ટ-ઇન ફંક્શન્સ |
| લાઈન પેટર્ન્સ | સીધી લાઈનો, કર્વ્સ | forward(), backward() |
| પોલિગોન્સ | પંચકોણ, ષટકોણ, અષ્ટકોણ | એંગલ્સ સાથે લૂપ |
| કોમ્પ્લેક્સ શેપ્સ | તારા, સ્પાઈરલ્સ, ફ્રેક્ટલ્સ | ગાણિતિક પેટર્ન્સ |
| કસ્ટમ શેપ્સ | યુઝર-ડિફાઈન્ડ પેટર્ન્સ | મૂવમેન્ટ્સનું કોમ્બિનેશન |
વતુળ શેપ ઉદાહરણ:
Python
- બિલ્ટ-ઇન શેપ્સ: વતુળ, ચોરસ, ત્રિકોણ સહેલાઈથી ઉપલબ્ધ
- કસ્ટમ શેપ્સ: મૂવમેન્ટ કોમ્બિનેશન વાપરીને બનાવાય
- ગાણિતિક શેપ્સ: ચોક્કસ ડ્રોઈંગ માટે ભૂમિતિ વાપરો
મેમરી ટ્રીક: "ટર્ટલ ઘણા શેપ ટાઈપ્સ દોરે"
પ્રશ્ન 5(બ OR) [4 માર્ક્સ]
ટર્ટલ મોડ્યુલની ચાર મૂળભૂત પદ્ધતિઓ વિશે સમજાવો.
જવાબ:
બેસિક ટર્ટલ મેથડ્સનું ટેબલ:
| મેથડ | હેતુ | પેરામીટર્સ | ઉદાહરણ |
|---|---|---|---|
| forward(distance) | ટર્ટલને આગળ ખસેડો | પિક્સલ્સમાં અંતર | turtle.forward(100) |
| backward(distance) | ટર્ટલને પાછળ ખસેડો | પિક્સલ્સમાં અંતર | turtle.backward(50) |
| right(angle) | ટર્ટલને જમણે ફેરવો | ડિગ્રીમાં એંગલ | turtle.right(90) |
| left(angle) | ટર્ટલને ડાબે ફેરવો | ડિગ્રીમાં એંગલ | turtle.left(45) |
Python
- મૂવમેન્ટ મેથડ્સ: અંતર માટે forward() અને backward()
- રોટેશન મેથડ્સ: દિશા બદલવા માટે right() અને left()
- કોઓર્ડિનેટ સિસ્ટમ: વર્તમાન ટર્ટલ પોઝિશન અને હેડિંગ આધારિત
- એંગલ મેઝરમેન્ટ: ડિગ્રીઝ (0-360)
મેમરી ટ્રીક: "આગળ, પાછળ, જમણે, ડાબે બેસિક્સ"
પ્રશ્ન 5(ક OR) [7 માર્ક્સ]
ટર્ટલનો ઉપયોગ કરીને ચોરસ, લાંબચોરસ અને વતુળ દોરવા માટે પાયથોન પ્રોગ્રામ લખો.
જવાબ:
Python
આકાર લક્ષણોનું ટેબલ:
| આકાર | બાજુઓ | પ્રોપર્ટીઝ | ક્ષેત્રફળ સૂત્ર |
|---|---|---|---|
| ચોરસ | 4 સમાન | બધા કોણ 90° | બાજુ² |
| લાંબચોરસ | 4 (2 જોડ) | સામેની બાજુઓ સમાન | લંબાઈ × પહોળાઈ |
| વતુળ | 0 (વક્ર) | બધા બિંદુઓ સમદૂર | π × ત્રિજ્યા² |
આકાર ડ્રોઈંગ પ્રક્રિયા:
- ભૌમિતિક ચોકસાઈ: ચોક્કસ કોણ અને અંતર માપદંડો
- વિઝ્યુઅલ અપીલ: વિવિધ રંગો અને ભરેલા આકારો
- શૈક્ષણિક મૂલ્ય: સૂત્રો દર્શાવે છે
- ગાણિતિક ગણતરીઓ: ક્ષેત્રફળ સૂત્રો સામેલ
- ઇન્ટરેક્ટિવ ફીચર્સ: યુઝર પેરામીટર્સ કસ્ટમાઈઝ કરી શકે
મેમરી ટ્રીક: "ચોરસ સમાન, લાંબચોરસ સામેના, વતુળ ગોળ"