{
  "assessmentTests": {
    "python_test": {
      "name": "பைத்தான் தேர்வு",
      "desc": "தொடரியல், ஃபங்ஷன்கள், தரவுக் கட்டமைப்புகள் மற்றும் ஆப்ஜெக்ட் நடத்தை குறித்த 30 சூழ்நிலைக் கேள்விகள் — பைத்தான் திறமை என்று வேலை அறிவிப்பு குறிப்பிடுவதற்கு உங்கள் பைத்தான் அறிவு பொருந்துகிறதா என்பதைக் கண்டறியுங்கள்.",
      "recommendation": "உங்கள் பைத்தான் திறன் புரொஃபைல்",
      "results": {
        "beginner": {
          "name": "தொடக்கநிலை",
          "desc": "ஒரு சிறிய ஸ்கிரிப்ட்டைப் பின்தொடர்ந்து அதற்குள் உள்ள மதிப்புகளை மாற்ற உங்களால் முடியும்; ஆனால் நீங்கள் தவறவிட்ட கேள்விகள் பொதுவான தர்க்கத்தைவிட மொழியின் தனிப்பட்ட நடத்தையைச் சுற்றியே குவிந்துள்ளன — ஒருமுறை உருவாக்கப்பட்டு மீண்டும் பயன்படுத்தப்படும் இயல்புநிலை ஆர்குமென்ட், பார்க்க ஒரே மாதிரியான இரண்டு பட்டியல்களில் is மற்றும் == இடையிலான வேறுபாடு, ஒரு ஃபங்ஷனுக்குள் எங்காவது மதிப்பை ஒதுக்கிய உடனே உள்ளூர் மாறியாக மாறிவிடும் ஒரு மாறி. இவற்றில் எதுவும் நீங்கள் நிரலாக்கத்தில் மோசமானவர் என்பதைப் பற்றியது அல்ல; இவை பிற மொழிகளிலிருந்து வருபவர்களையும் தொடக்கநிலையாளர்களைப் போலவே அடிக்கடி தடுமாறச் செய்யும் பைத்தான் சார்ந்த விதிகள். பார்த்தவுடன் சரியாகத் தோன்றும் நிரலில் ஒவ்வொன்றும் ஒரு பிழை மறைந்திருக்கும் இடமாக இருப்பதால், இவை பணியிடத்தில் முக்கியமானவை.",
          "recommendation": "இந்த வரிசையில் மூன்று விஷயங்களுடன் தொடங்குங்கள்: மாற்றத்தக்க இயல்புநிலை ஆர்குமென்ட்கள் (basket=[] ஏன் ஆபத்தானது), is மற்றும் == இடையிலான வேறுபாடு, மற்றும் ஒரு ஃபங்ஷனுக்குள் மாறியின் வரம்பு எவ்வாறு செயல்படுகிறது. docs.python.org இல் உள்ள அதிகாரப்பூர்வ பைத்தான் பயிற்சி இவை மூன்றையும் நேரடியாக விளக்குகிறது, மேலும் “Python gotchas” என்ற சொல்லைத் தேடினால் ஒவ்வொன்றுக்கும் தீர்க்கப்பட்ட எடுத்துக்காட்டுகள் கிடைக்கும்."
        },
        "intermediate": {
          "name": "இடைநிலை",
          "desc": "தரவுக் கட்டமைப்புகள், கட்டுப்பாட்டு ஓட்டம், எளிய ஃபங்ஷன்கள் என அன்றாட ஸ்கிரிப்டிங்கை நீங்கள் வசதியாகக் கையாள்கிறீர்கள் — வழக்கமான பராமரிப்புப் பணியாலோ தற்போதுள்ள கோட்பேஸில் ஒரு சிறிய அம்சத்தைச் சேர்ப்பதாலோ உங்கள் வேகம் குறையாது. இங்கிருந்து மேம்பட்ட நிலை வரையிலான இடைவெளி பெரும்பாலும், பைத்தானின் வசதி அம்சங்கள் ஒன்றோடொன்று தொடர்புகொள்ளும்போது என்ன நடக்கிறது என்பதில் உள்ளது: நகல் எடுக்கப்பட்டிருக்கும் என்று நீங்கள் எதிர்பார்த்தபோது உள்ளமைந்த தரவைப் பகிர்ந்துவிடும் ஷாலோ காப்பி, ஜெனரேட்டரின் ரிட்டர்ன் மதிப்பு அதன் வெளியீட்டின் பகுதியாக அமையாமல் அமைதியாக விடுபடுவது, தலைகீழாகப் புரிந்துகொள்ள எளிதான வரிசையில் அடுக்கப்படும் டெக்கரேட்டர்கள். இவை மூத்த மதிப்பாய்வாளர் பத்து வினாடிகளில் சுட்டிக்காட்டும், மற்ற அனைவரும் ஒரு மணி நேரம் துரத்தும் வகையான பிழைகள்.",
          "recommendation": "ஆப்ஜெக்ட் மற்றும் இட்டரேஷனின் உள்ளமைப்புகளில் கவனம் செலுத்துங்கள்: ஷாலோ காப்பி மற்றும் டீப் காப்பி, ஜெனரேட்டர் return உடன் உண்மையில் என்ன செய்கிறது, டெக்கரேட்டர் அடுக்கு வரிசை எவ்வாறு செயல்படுகிறது. பின்னர் பெரும்பாலான டுடோரியல்கள் தவிர்க்கும் கிளாஸ் அடிப்படைகள் — __eq__ இல்லாதபோது இயல்புநிலை சமத்துவம், மற்றும் மாற்றத்தக்க கிளாஸ் பண்பு ஏன் ஒவ்வொரு இன்ஸ்டன்ஸிலும் பகிரப்படுகிறது."
        },
        "advanced": {
          "name": "உயர்நிலை",
          "desc": "பெரும்பாலான வேலை அறிவிப்புகள் “வலுவான பைத்தான்” என்று குறிப்பிடுவது இந்த நிலையையே. சரியான கருவியைத் தேடித் திரியாமல் நீங்கள் எடுக்கிறீர்கள்; பகிரப்பட்ட நிலை ஒன்று மாறியது என்பதை மட்டுமல்ல, அது ஏன் மாறியது என்பதையும் அறிவீர்கள்; மற்றவர் எழுதிய ஃபங்ஷனைப் படித்து அதன் வெளியீட்டைச் சரியாகக் கணிக்கவும் உங்களால் முடியும். இந்த நிலையை உயர்நிலையிலிருந்து பிரிப்பது பணியின் தற்காப்புப் பக்கம்: கிளாஸ் பண்பு, கீவேர்ட்-மட்டும் ஆர்குமென்ட் அல்லது விதிவிலக்குப் படிநிலை சம்பந்தப்பட்டவுடன், சரியாகத் தோன்றும் இரண்டு அணுகுமுறைகளில் எது தவறாக நடந்துகொள்ளும் என்பதை அறிவது.",
          "recommendation": "பிறரும் தொடும் குறியீட்டுத் தொகுப்பைப் பாதுகாக்கும் பகுதிகளில் ஆழமாகச் செல்லுங்கள்: தொடரியல் வியப்பாக அல்லாமல் API வடிவமைப்புத் தேர்வாக கீவேர்டு-மட்டும் ஆர்குமென்ட்கள், விதிவிலக்குப் படிநிலை (எக்செப்ட் பிரிவுகள் ஒரே ஒரு கிளாஸை மட்டுமல்ல, சரியான பிழைக் குடும்பத்தையே பிடிக்கும்படி), மற்றும் சுத்தம் செய்தலை உறுதிசெய்யும் நிலையான வழியாக காண்டெக்ஸ்ட் மேனேஜர்கள். இம்மூன்றுக்கும் ரியல் பைத்தானின் ஆழமான கட்டுரைகள் அடுத்து நாட வேண்டிய நல்ல இடம்."
        },
        "expert": {
          "name": "நிபுணர்",
          "desc": "ஒவ்வொரு பிரிவிலும் — அடிப்படைத் தொடரியல், ஃபங்ஷன்கள் மற்றும் வரம்பு, தரவுக் கட்டமைப்புகள், பொருள்நோக்கு நடைமுறைகள் — நீங்கள் உயர்ந்த மதிப்பெண் பெற்றீர்கள். நடைமுறையில், இதன் பொருள், அறிமுகமில்லாத ஒருவரின் கோப்பை உங்களிடம் கொடுத்தால், தொடரியல் என்ன செய்ய வேண்டும் என்று சொல்கிறது என்பதை மட்டுமல்ல, அது ஏன் அந்த வெளியீட்டைத் தருகிறது என்பதையும் உங்களால் விளக்க முடியும்; இது இன்னும் கடினமான, இன்னும் மதிப்புமிக்க திறன். இந்த நிலையில் உங்கள் பணியில் மொழியே அரிதாகவே தடையாக இருக்கும்; தடை பொதுவாக நிரலைச் சுற்றியுள்ள அமைப்பின் அளவு அல்லது வடிவம்தான்.",
          "recommendation": "இனி பலன் கிடைப்பது கருவிகளிலும் மதிப்பாய்விலும்: மைபை அல்லது பைரைட் கொண்டு நிலையான வகைச் சரிபார்ப்பு, ஊகிப்பதற்குப் பதிலாக செயல்திறனை மேம்படுத்துவதற்கு முன் புரொஃபைலிங் செய்தல், மேலும் எல்லா சோதனைகளிலும் தேர்ச்சி பெற்றும் குறிப்பிட்ட உள்ளீட்டில் தவறாகச் செயல்படும் இந்த வகைப் பிழைகளுக்காகவே பிறருடைய புல் ரிக்வெஸ்ட்களைப் படித்தல். ஒரு பணிக்கான தேர்வுச் சுற்றில் நீங்கள் இருந்தால், மொழி அம்சங்களைப் பெயரிடுவதற்குப் பதிலாக நீங்கள் கண்டுபிடித்த இது போன்ற ஒரு பிழையை விவரியுங்கள் — அது சொற்களஞ்சியத்தை மட்டுமல்ல, சிந்தனையையும் வெளிப்படுத்துகிறது."
        }
      },
      "questions": [
        {
          "question": "நீங்கள் def add_item(item, basket=[]): basket.append(item); return basket என்று எழுதி, பின்னர் add_item('a') மற்றும் add_item('b') ஆகியவற்றை, இரண்டு முறையும் basket ஐ விடுத்து அழைக்கிறீர்கள். இரண்டாவது அழைப்பு என்ன தரும்?",
          "options": [
            {
              "icon": "",
              "label": "['b']"
            },
            {
              "icon": "",
              "label": "ஒரு TypeError"
            },
            {
              "icon": "",
              "label": "['a', 'b']"
            },
            {
              "icon": "",
              "label": "['a']"
            }
          ]
        },
        {
          "question": "a = [1, 2, 3] மற்றும் b = [1, 2, 3]. a == b என்ன தரும், a is b என்ன தரும்?",
          "options": [
            {
              "icon": "",
              "label": "இரண்டிற்கும் True"
            },
            {
              "icon": "",
              "label": "==-க்கு True, is-க்கு False"
            },
            {
              "icon": "",
              "label": "இரண்டிற்கும் False"
            },
            {
              "icon": "",
              "label": "is-க்கு True, ==-க்கு False"
            }
          ]
        },
        {
          "question": "பைத்தான் 3-இல், 7 / 2 என்பது என்ன மதிப்பைத் தரும், 7 // 2 என்பது என்ன மதிப்பைத் தரும்?",
          "options": [
            {
              "icon": "",
              "label": "3.5, பிறகு 3"
            },
            {
              "icon": "",
              "label": "3, பிறகு 3.5"
            },
            {
              "icon": "",
              "label": "3.5, பிறகு 3.5"
            },
            {
              "icon": "",
              "label": "3, பிறகு 3"
            }
          ]
        },
        {
          "question": "s = 'hello' என்று வைத்து, பின்னர் s[0] = 'H' ஐ இயக்குகிறீர்கள். என்ன நடக்கும்?",
          "options": [
            {
              "icon": "",
              "label": "s 'Hello' ஆகிவிடும்"
            },
            {
              "icon": "",
              "label": "s 'Hhello' ஆகிவிடும்"
            },
            {
              "icon": "",
              "label": "அது ஒரு TypeError ஐ எழுப்புகிறது"
            },
            {
              "icon": "",
              "label": "எதுவும் நடக்காது; s 'hello' ஆகவே இருக்கும்"
            }
          ]
        },
        {
          "question": "x = [10, 20, 30, 40, 50]. x[1:4] என்ன தரும்?",
          "options": [
            {
              "icon": "",
              "label": "[20, 30, 40, 50]"
            },
            {
              "icon": "",
              "label": "[10, 20, 30, 40]"
            },
            {
              "icon": "",
              "label": "[20, 30, 40]"
            },
            {
              "icon": "",
              "label": "[30, 40]"
            }
          ]
        },
        {
          "question": "name = 'Ana' மற்றும் age = 30. f'{name} is {age}' என்ன உருவாக்கும்?",
          "options": [
            {
              "icon": "",
              "label": "{name} is {age}"
            },
            {
              "icon": "",
              "label": "Ana is 30"
            },
            {
              "icon": "",
              "label": "name is age"
            },
            {
              "icon": "",
              "label": "ஒரு TypeError"
            }
          ]
        },
        {
          "question": "1 < 2 < 3 என்ன மதிப்பைத் தரும்?",
          "options": [
            {
              "icon": "",
              "label": "உண்மை"
            },
            {
              "icon": "",
              "label": "பொய்"
            },
            {
              "icon": "",
              "label": "ஒரு SyntaxError"
            },
            {
              "icon": "",
              "label": "3"
            }
          ]
        },
        {
          "question": "bool([]) என்ன தரும், bool([0]) என்ன தரும்?",
          "options": [
            {
              "icon": "",
              "label": "False, பிறகு False"
            },
            {
              "icon": "",
              "label": "False, பிறகு True"
            },
            {
              "icon": "",
              "label": "True, பிறகு True"
            },
            {
              "icon": "",
              "label": "True, பிறகு False"
            }
          ]
        },
        {
          "question": "மாட்யூல் நிலையில் count = 0 உள்ளது. def increment(): count += 1; return count என்பதற்குள், நீங்கள் increment() ஐ அழைக்கிறீர்கள். என்ன நடக்கும்?",
          "options": [
            {
              "icon": "",
              "label": "இது UnboundLocalError என்ற பிழையை எழுப்புகிறது"
            },
            {
              "icon": "",
              "label": "இது 1 ஐத் திருப்பி அளித்து, குளோபல் count ஐ 1 ஆக அமைக்கிறது"
            },
            {
              "icon": "",
              "label": "இது 1 ஐத் திருப்பி அளிக்கிறது; குளோபல் count 0 ஆகவே இருக்கும்"
            },
            {
              "icon": "",
              "label": "இது TypeError ஐ எழுப்புகிறது"
            }
          ]
        },
        {
          "question": "def f(*args, **kwargs): return args, kwargs. f(1, 2, x=3) எதைத் திருப்பி அளிக்கும்?",
          "options": [
            {
              "icon": "",
              "label": "([1, 2], {'x': 3})"
            },
            {
              "icon": "",
              "label": "((1, 2), {'x': 3})"
            },
            {
              "icon": "",
              "label": "(1, 2, {'x': 3})"
            },
            {
              "icon": "",
              "label": "ஒரு TypeError"
            }
          ]
        },
        {
          "question": "ஒரு லூப்பில் funcs = [lambda: i for i in range(3)] என உருவாக்குகிறீர்கள். [f() for f in funcs] எதைத் திருப்பி அளிக்கும்?",
          "options": [
            {
              "icon": "",
              "label": "[2, 2, 2]"
            },
            {
              "icon": "",
              "label": "[0, 1, 2]"
            },
            {
              "icon": "",
              "label": "[0, 0, 0]"
            },
            {
              "icon": "",
              "label": "ஒரு NameError"
            }
          ]
        },
        {
          "question": "def f(): pass என்பதற்கு நேர் மேலே @b உம், அதற்கு நேர் மேலே @a உம் இடப்பட்டு ஒரு செயல்பாடு வரையறுக்கப்பட்டுள்ளது. f க்கு டெக்கரேட்டர்கள் எந்த வரிசையில் பயன்படுத்தப்படுகின்றன?",
          "options": [
            {
              "icon": "",
              "label": "முதலில் b, f ஐ ரேப் செய்யும்; பிறகு a அந்த முடிவை ரேப் செய்யும்"
            },
            {
              "icon": "",
              "label": "முதலில் a, f ஐ ரேப் செய்யும்; பிறகு b அந்த முடிவை ரேப் செய்யும்"
            },
            {
              "icon": "",
              "label": "கடைசியாக வரையறுக்கப்பட்டது மட்டுமே செயல்படும்"
            },
            {
              "icon": "",
              "label": "இது இம்போர்ட் வரிசையைப் பொறுத்தது"
            }
          ]
        },
        {
          "question": "def f(a, *, b): return a + b. இவற்றில் எந்த அழைப்பு வேலை செய்யும்?",
          "options": [
            {
              "icon": "",
              "label": "f(1, b=2)"
            },
            {
              "icon": "",
              "label": "f(1, 2)"
            },
            {
              "icon": "",
              "label": "f(a=1, 2)"
            },
            {
              "icon": "",
              "label": "f(1)"
            }
          ]
        },
        {
          "question": "ஒரு ஜெனரேட்டர் செயல்பாடு 1 ஐ யீல்டு செய்து, பிறகு 2 ஐ யீல்டு செய்து, பிறகு return 99 செய்கிறது. list(the_generator()) எதைக் கொண்டிருக்கும், 99 க்கு என்ன ஆகும்?",
          "options": [
            {
              "icon": "",
              "label": "[1, 2, 99], ஏனெனில் return கடைசி யீல்டாகச் செயல்படுகிறது"
            },
            {
              "icon": "",
              "label": "[99], ஏனெனில் return யீல்டுகளை மேலெழுதுகிறது"
            },
            {
              "icon": "",
              "label": "[1, 2], மேலும் 99 StopIteration மதிப்பாகிறது"
            },
            {
              "icon": "",
              "label": "இது RuntimeError ஐ எழுப்புகிறது"
            }
          ]
        },
        {
          "question": "outer() செயல்பாட்டில் x = 1 அமைக்கப்படுகிறது; பிறகு உள்ளமைந்த inner() ஆனது nonlocal x; x += 1 செய்கிறது, x ஐத் திருப்பி அளிக்கும் முன் outer() ஆனது inner() ஐ அழைக்கிறது. outer() எதைத் திருப்பி அளிக்கும்?",
          "options": [
            {
              "icon": "",
              "label": "1"
            },
            {
              "icon": "",
              "label": "UnboundLocalError என்ற பிழை எழுப்பப்படும்"
            },
            {
              "icon": "",
              "label": "ஒரு SyntaxError"
            },
            {
              "icon": "",
              "label": "2"
            }
          ]
        },
        {
          "question": "d = {'a': 1, 'b': 2}. d.get('c', 0) எதைத் திருப்பி அளிக்கும், அது அகராதியில் 'c' ஐச் சேர்க்குமா?",
          "options": [
            {
              "icon": "",
              "label": "0, இல்லை"
            },
            {
              "icon": "",
              "label": "0, ஆம்"
            },
            {
              "icon": "",
              "label": "ஒரு KeyError"
            },
            {
              "icon": "",
              "label": "None, ஆம்"
            }
          ]
        },
        {
          "question": "t = (1, 2, [3, 4]). t[2].append(5) ஐ இயக்க முடியுமா, t[0] = 10 ஐ இயக்க முடியுமா?",
          "options": [
            {
              "icon": "",
              "label": "இரண்டும் வேலை செய்யும்"
            },
            {
              "icon": "",
              "label": "இரண்டும் TypeError ஐ எழுப்பும்"
            },
            {
              "icon": "",
              "label": "t[2].append(5) TypeError ஐ எழுப்பும்; t[0] = 10 வேலை செய்யும்"
            },
            {
              "icon": "",
              "label": "t[2].append(5) வேலை செய்யும்; t[0] = 10 TypeError ஐ எழுப்பும்"
            }
          ]
        },
        {
          "question": "முழு வரிசையையும் ஒரே நேரத்தில் நினைவகத்தில் உருவாக்காமல், மதிப்புகளைத் தேவைப்படும்போது மட்டும் கணக்கிடும் இட்டரேட்டரைத் திருப்பி அளிப்பது இவற்றில் எது: [x*x for x in range(1000000)] அல்லது (x*x for x in range(1000000))?",
          "options": [
            {
              "icon": "",
              "label": "வட்ட அடைப்புக்குறி கொண்டது"
            },
            {
              "icon": "",
              "label": "சதுர அடைப்புக்குறி கொண்டது"
            },
            {
              "icon": "",
              "label": "இரண்டும்; முடிவின் வகை மட்டுமே வேறுபடும்"
            },
            {
              "icon": "",
              "label": "இரண்டுமில்லை; இரண்டும் முழுப் பட்டியலையும் உருவாக்கும்"
            }
          ]
        },
        {
          "question": "ஒரு டிரை பிளாக் பூஜ்ஜியத்தால் வகுக்கிறது, எக்செப்ட் ZeroDivisionError பிரிவு 'a'-ஐ அச்சிடுகிறது, ஃபைனலி பிரிவு 'b'-ஐ அச்சிடுகிறது. எது அச்சிடப்படும், எந்த வரிசையில்?",
          "options": [
            {
              "icon": "",
              "label": "b, பிறகு a"
            },
            {
              "icon": "",
              "label": "a, பிறகு b"
            },
            {
              "icon": "",
              "label": "b மட்டும்"
            },
            {
              "icon": "",
              "label": "a மட்டும்"
            }
          ]
        },
        {
          "question": "import copy; a = [[1, 2], [3, 4]]; b = copy.copy(a); b[0].append(99). a[0] உம் மாறுமா?",
          "options": [
            {
              "icon": "",
              "label": "No"
            },
            {
              "icon": "",
              "label": "இது பிழையை எழுப்பும்"
            },
            {
              "icon": "",
              "label": "deepcopy பயன்படுத்தினால் மட்டுமே"
            },
            {
              "icon": "",
              "label": "ஆம்"
            }
          ]
        },
        {
          "question": "d = {'x': 1, 'y': 2}. 'x' in d எதனுடன் சரிபார்க்கிறது — விசைகள், மதிப்புகள், அல்லது இரண்டும்?",
          "options": [
            {
              "icon": "",
              "label": "மதிப்புகள்"
            },
            {
              "icon": "",
              "label": "விசைகள், மதிப்புகள் இரண்டும்"
            },
            {
              "icon": "",
              "label": "இரண்டுமில்லை; இது TypeError ஐ எழுப்பும்"
            },
            {
              "icon": "",
              "label": "விசைகள்"
            }
          ]
        },
        {
          "question": "names = ['Al', 'Bo'] மற்றும் scores = [10, 20]. list(zip(names, scores)) எதைத் திருப்பி அளிக்கும்?",
          "options": [
            {
              "icon": "",
              "label": "[('Al', 'Bo'), (10, 20)]"
            },
            {
              "icon": "",
              "label": "['Al', 10, 'Bo', 20]"
            },
            {
              "icon": "",
              "label": "[('Al', 10), ('Bo', 20)]"
            },
            {
              "icon": "",
              "label": "ஒரு ValueError"
            }
          ]
        },
        {
          "question": "class Dog: tricks = [] ஒரு கிளாஸ் நிலைப் பட்டியலைக் கொண்டுள்ளது, add_trick ஆனது self.tricks இல் சேர்க்கிறது. d1 = Dog() மற்றும் d2 = Dog() இரண்டும் உருவாக்கப்பட்டு, பிறகு d1.add_trick('sit') இயங்குகிறது. d2.tricks எதைக் கொண்டிருக்கும்?",
          "options": [
            {
              "icon": "",
              "label": "[]"
            },
            {
              "icon": "",
              "label": "['sit']"
            },
            {
              "icon": "",
              "label": "ஒரு TypeError"
            },
            {
              "icon": "",
              "label": "எதுவும் இல்லை"
            }
          ]
        },
        {
          "question": "class A இல் def greet(self): return 'A' உள்ளது. class B(A) இல் def greet(self): return 'B' + super().greet() உள்ளது. B().greet() எதைத் திருப்பி அளிக்கும்?",
          "options": [
            {
              "icon": "",
              "label": "'AB'"
            },
            {
              "icon": "",
              "label": "'B'"
            },
            {
              "icon": "",
              "label": "'BA'"
            },
            {
              "icon": "",
              "label": "AttributeError என்ற பிழை எழுப்பப்படும்"
            }
          ]
        },
        {
          "question": "class Point ஆனது __init__ இல் self.x ஐச் சேமிக்கிறது, வேறு மெத்தட்கள் எதையும் வரையறுக்கவில்லை. p1 = Point(1) மற்றும் p2 = Point(1). இயல்பாக p1 == p2 எதைத் திருப்பி அளிக்கும்?",
          "options": [
            {
              "icon": "",
              "label": "உண்மை"
            },
            {
              "icon": "",
              "label": "பொய்"
            },
            {
              "icon": "",
              "label": "எதுவும் இல்லை"
            },
            {
              "icon": "",
              "label": "ஒரு TypeError"
            }
          ]
        },
        {
          "question": "கீழே உள்ளவற்றில் எந்த except பிரிவு ZeroDivisionError ஐயும் பிடிக்கும்: except ArithmeticError, except ValueError, அல்லது except KeyError?",
          "options": [
            {
              "icon": "",
              "label": "except ValueError"
            },
            {
              "icon": "",
              "label": "except KeyError"
            },
            {
              "icon": "",
              "label": "அவற்றில் எதுவுமில்லை"
            },
            {
              "icon": "",
              "label": "except ArithmeticError"
            }
          ]
        },
        {
          "question": "open('data.txt') as f: மூலம் ஒரு கோப்பைத் திறக்கிறீர்கள், பிளாக்கின் உள்ளே படிக்கும்போது ஒரு விதிவிலக்கு எழுகிறது. கோப்பு இன்னும் மூடப்படுமா?",
          "options": [
            {
              "icon": "",
              "label": "No"
            },
            {
              "icon": "",
              "label": "கூடுதல் finally பிரிவு இருந்தால் மட்டுமே"
            },
            {
              "icon": "",
              "label": "ஆம்"
            },
            {
              "icon": "",
              "label": "இது விதிவிலக்கு வகையைப் பொறுத்தது"
            }
          ]
        },
        {
          "question": "x = [3, 1, 2] மற்றும் y = x.sort(). y எதைக் கொண்டிருக்கும்?",
          "options": [
            {
              "icon": "",
              "label": "[1, 2, 3]"
            },
            {
              "icon": "",
              "label": "எதுவும் இல்லை"
            },
            {
              "icon": "",
              "label": "[3, 1, 2]"
            },
            {
              "icon": "",
              "label": "ஒரு TypeError"
            }
          ]
        },
        {
          "question": "'Score: ' + 42 ஐ இயக்கினால் என்ன நடக்கும்?",
          "options": [
            {
              "icon": "",
              "label": "'Score: 42' என்று இருக்கும்"
            },
            {
              "icon": "",
              "label": "'Score: ' என்று இருக்கும்"
            },
            {
              "icon": "",
              "label": "42"
            },
            {
              "icon": "",
              "label": "அது ஒரு TypeError ஐ எழுப்புகிறது"
            }
          ]
        },
        {
          "question": "results என்ற பட்டியல் காலியாக உள்ளதா என்று சரிபார்க்க வேண்டும். பைத்தானின் வழக்கமான முறை எது: if results == []: , if len(results) == 0: , அல்லது if not results: ?",
          "options": [
            {
              "icon": "",
              "label": "if results == []: என்று சரிபார்ப்பது"
            },
            {
              "icon": "",
              "label": "if len(results) == 0: என்று சரிபார்ப்பது"
            },
            {
              "icon": "",
              "label": "if results is None:"
            },
            {
              "icon": "",
              "label": "if not results: என்று சரிபார்ப்பது"
            }
          ]
        }
      ],
      "optionOrderVersion": "26e0df963ab76db1"
    }
  },
  "testNames": {
    "python-test": "பைத்தான் தேர்வு"
  }
}
