வாரம் 7: தொல்காப்பியம் - நூன்மரபு (பைத்தான்வழி உரை-7)
முனைவர் சத்தியராஜ் தங்கச்சாமி
தமிழ் உதவிப்பேராசிரியர், முதன்மைப் பதிப்பாசிரியர், விக்கிமீடியர்
ஸ்ரீ கிருஷ்ணா ஆதித்யா கலை மற்றும் அறிவியல் கல்லூரி, கோயம்புத்தூர் – 641042.
முந்தைய வகுப்பில் தொல்காப்பிய நூன்மரபின் 10 முதல் 16 வரைக்கும் உள்ள நூற்பாக்களுக்கு தீப்சீக் செய்யறிவுக் கருவியின் (AI Tool) மூலம் நிரல் எழுதி இயக்கும் முறை விளக்கப்பட்டது. அதன் அடுத்த படிநிலையாக 17 முதல் 21 வரைக்கும் உள்ள நூற்பாக்களுக்கு அதே கருவியைப் பயன்படுத்தி ஒரு விளையாட்டுச் செயலியை உருவாக்கும் முறையையும் அது இயங்கும் முறையையும் முந்தைய வகுப்பில் குறிப்பிட்டதுபோல் random, random.choice, f, else, main(), input, .strip(), while, __name__ == "__main__" ஆகிய குறியாக்கங்களின் விளக்கங்களையும் இங்குக் காணலாம்.
பைத்தான் குறியீடுகள் விளக்கம்
பைத்தானில் எதேச்சையாக (random) எண்களையோ அல்லது தரவுகளையோ தேர்ந்தெடுக்க இந்தக் கூறு (Module) பயன்படுகிறது.
import random: இந்த வசதியைப் பயன்படுத்த முதலில் இதை 'Import' செய்ய வேண்டும்.
random.choice(பட்டியல்): ஒரு List-இல் உள்ளவற்றிலிருந்து ஒன்றை மட்டும் வரிசைமுறை இன்றித் தேர்வு செய்யும்.
சான்று: random.choice(["Red", "Blue", "Green"]) என்பது மூன்றில் ஏதோ ஒன்றை மட்டும் தரும்.
மாறிகளை (Variable-களை) மிக எளிதாக சரத்திற்குள் (String-க்குள்) (Text) இணைக்க இது பயன்படுகிறது.
எப்படி இதனைப் பயன்படுத்துவது?: வரிக்கு முன்னால் f என்று போட்டு, மாறிப் பெயர்களை { } குறிக்குள் போட வேண்டும்.
சான்று: name = "அருண்", print(f"வணக்கம் {name}") -> வெளியீடு: வணக்கம் அருண்.
இது if அல்லது while கட்டளைகளுடன் இணைந்து வரும். 'ஒருவேளை நிபந்தனை பொய்த்துப்போனால் (False) என்ன செய்ய வேண்டும்' என்பதை இது சொல்லும்.
பயனரிடமிருந்து (User) ஒரு தகவலைப் பெற்றுக்கொள்ள இது பயன்படுகிறது. இது எப்போதும் தரவை ஒரு 'சரம் (String)' (Text) ஆகத்தான் வாங்கும்.
ஒரு சொல்லின் ஆரம்பத்திலும் முடிவிலும் தேவையில்லாமல் இருக்கும் காலி இடங்களை (Whitespaces) நீக்க இது உதவும்.
சான்று: " Hello ".strip() என்பது "Hello" என்று மாறும்.
ஒரு நிபந்தனை உண்மையாக இருக்கும் வரை ஒரு செயலைத் திரும்பத் திரும்ப (Loop) செய்ய இது பயன்படுகிறது.
இது ஒரு நிரலாக்கத் தரக்கட்டுப்பாட்டு முறை (Best Practice).
main(): உங்கள் நிரலாக்கத்தின் முக்கியமான வேலைகளை ஒரு செயற்கூறுக்குள் (Function-க்குள்) வைப்பது வழக்கம், அதற்கு main என்று பெயரிடுவோம்.
if __name__ == "__main__": உங்கள் கோப்பை நேரடியாக 'இயக்கி (Run)' செயலினால் மட்டுமே குறிப்பிட்ட வேலைகள் நடக்க வேண்டும் என்பதற்காக இதைச் சேர்ப்போம். மற்றொரு கோப்பில் இருந்து இதை 'Import' செய்யும்போது இது தானாக இயங்காது.
உரு உரு ஆகி அகரமொடு உயிர்த்தலும்
ஏனை உயிரொடு உருவு திரிந்து உயிர்த்தலும்
ஆயீர் இயல உயிர்த்தல் ஆறே.
சரி மெய்-உயிர் விளையாட்டுச் செயலி எழுதச் சொல்லி, தீப்சீக் கருவிக்குப் பின்வருமாறு கட்டளை எழுதுவோமா?
தொல்காப்பிய மெய்-உயிர் விளையாட்டுச் செயலி
"""
தொல்காப்பிய மெய்யெழுத்து வகைப்பாடு - விளையாட்டுச் செயலி
பயன்படுத்தப்பட்ட புதிய குறிச்சொற்கள்:
- random, random.choice
- f-strings (f)
- else
- main()
- input()
- .strip()
- while
- __name__ == "__main__"
"""
import random
# தொல்காப்பியர் வகைப்படுத்திய மெய்யெழுத்துக்கள்
valli = ['க', 'ச', 'ட', 'த', 'ப', 'ற'] # வல்லெழுத்துகள் - நூற்பா 19
melli = ['ங', 'ஞ', 'ண', 'ந', 'ம', 'ன'] # மெல்லெழுத்துகள் - நூற்பா 20
idai = ['ய', 'ர', 'ல', 'வ', 'ழ', 'ள'] # இடையெழுத்துகள் - நூற்பா 21
# உயிரெழுத்துக்கள் - 12
uyir = ['அ', 'ஆ', 'இ', 'ஈ', 'உ', 'ஊ', 'எ', 'ஏ', 'ஐ', 'ஒ', 'ஓ', 'ஔ']
def main():
"""main() - முதன்மைச் செயல்பாடு"""
print("=" * 60)
print(" தொல்காப்பிய மெய்-உயிர் விளையாட்டு")
print("=" * 60)
# while - மீண்டும் மீண்டும் விளையாடும் வசதி
while True:
print("\n" + "=" * 50)
print("முதன்மைப் பட்டியல்:")
print("1. தொல்காப்பிய நூற்பாக்களைக் காண")
print("2. மெய்-உயிர் சேரும் முறைகளைப் பயில")
print("3. விளையாட்டு - எழுத்துகளை அடையாளம் காண")
print("4. வெளியேறு")
print("=" * 50)
# input() - பயனரிடமிருந்து தேர்வைப் பெறுதல்
choice = input("உங்கள் தேர்வு (1-4): ")
# .strip() - வெற்றிடங்களை நீக்குதல்
choice = choice.strip()
# else - வேறு நிபந்தனைகளைச் சரிபார்த்தல்
if choice == '1':
show_noorpaakkal()
elif choice == '2':
practice_combinations()
elif choice == '3':
play_game()
elif choice == '4':
print("\nநன்றி! மீண்டும் வருக!")
break
else:
print("தவறான தேர்வு. மீண்டும் முயற்சி செய்க.")
def show_noorpaakkal():
"""நூற்பாக்களைக் காட்டும் செயல்பாடு"""
print("\n" + "=" * 60)
print(" தொல்காப்பிய நூற்பாக்கள்")
print("=" * 60)
# f-strings - மாறிகளை சரத்துடன் இணைத்தல்
noorpaakkal = [
f"17. புள்ளி இல்லா எல்லா மெய்யும்\n உரு உரு ஆகி அகரமொடு உயிர்த்தலும்\n ஏனை உயிரொடு உருவு திரிந்து உயிர்த்தலும்\n ஆயீர் இயல உயிர்த்தல் ஆறே.",
f"18. மெய்யின் வழியது உயிர் தோன்று நிலையே.",
f"19. வல்லெழுத்து என்ப {', '.join(valli)}",
f"20. மெல்லெழுத்து என்ப {', '.join(melli)}",
f"21. இடையெழுத்து என்ப {', '.join(idai)}"
]
for nool in noorpaakkal:
print(f"\n{nool}")
input("\n[தொடர Enter அழுத்துக] ")
def practice_combinations():
"""மெய்-உயிர் சேரும் முறைகளைக் காட்டும் செயல்பாடு"""
print("\n" + "=" * 60)
print(" மெய்-உயிர் சேரும் முறைகள் - நூற்பா 17, 18")
print("=" * 60)
# f-strings பயன்பாடு - 1. அகரத்துடன் சேர்த்தல்
print("\n1. அகரமொடு உயிர்த்தல் (மெய் + அகரம்):")
for mey in valli[:3]: # முதல் மூன்று வல்லெழுத்துகள்
print(f" {mey} + அ = {mey}அ", end=" ")
print("\n ... மற்றும் பிற மெய்களும்")
# f-strings பயன்பாடு - 2. பிற உயிர்களுடன் சேர்த்தல்
print("\n2. ஏனை உயிரொடு உருவு திரிந்து உயிர்த்தல்:")
# random.choice - சீரற்ற மெய்யெழுத்தைத் தேர்வு செய்தல்
sample_mey = random.choice(valli + melli + idai)
sample_uyir = random.choice(uyir[1:4]) # ஆ, இ, ஈ
print(f" உதாரணம்: {sample_mey} + {sample_uyir} = {sample_mey + sample_uyir}")
print(" (எழுத்தின் உருவம் திரிகிறது)")
input("\n[தொடர Enter அழுத்துக] ")
def play_game():
"""விளையாட்டுச் செயல்பாடு"""
print("\n" + "=" * 60)
print(" எழுத்து வகை அடையாளம் காணும் விளையாட்டு")
print("=" * 60)
score = 0
total_questions = 5
# while - கேள்விகள் கேட்பதற்கான சுழற்சி
question_num = 0
while question_num < total_questions:
question_num += 1
# random.choice - சீரற்ற மெய்யெழுத்தைத் தேர்வு செய்தல்
all_letters = valli + melli + idai
letter = random.choice(all_letters)
# எழுத்தின் வகையைக் கண்டறிதல்
# else - பல நிபந்தனைகளைச் சரிபார்த்தல்
if letter in valli:
correct_type = "வல்லெழுத்து"
hint = "க ச ட த ப ற - வன் மெய்கள்"
elif letter in melli:
correct_type = "மெல்லெழுத்து"
hint = "ங ஞ ண ந ம ன - மென் மெய்கள்"
else:
correct_type = "இடையெழுத்து"
hint = "ய ர ல வ ழ ள - இடை மெய்கள்"
print(f"\nகேள்வி {question_num}/{total_questions}:")
print(f" '{letter}' - இது எந்த வகை மெய்யெழுத்து?")
print(f" (குறிப்பு: {hint})")
print(" 1. வல்லெழுத்து")
print(" 2. மெல்லெழுத்து")
print(" 3. இடையெழுத்து")
# input() மற்றும் .strip() - பயனர் பதிலைப் பெறுதல்
answer = input(" உங்கள் விடை (1/2/3): ").strip()
# f-strings - பதிலைச் சரிபார்த்தல்
if (answer == '1' and correct_type == "வல்லெழுத்து") or \
(answer == '2' and correct_type == "மெல்லெழுத்து") or \
(answer == '3' and correct_type == "இடையெழுத்து"):
print(f" ✓ சரி! {letter} ஒரு {correct_type}")
score += 1
else:
print(f" ✗ தவறு. {letter} ஒரு {correct_type}")
# f-strings - இறுதி மதிப்பெண்ணைக் காட்டுதல்
print(f"\n" + "=" * 50)
print(f" விளையாட்டு முடிந்தது!")
print(f" உங்கள் மதிப்பெண்: {score}/{total_questions}")
percentage = (score / total_questions) * 100
print(f" விழுக்காடு: {percentage:.1f}%")
if percentage >= 80:
print(f" பாராட்டுகள்! சிறந்த அறிவு!")
elif percentage >= 50:
print(f" நல்லது! மேலும் பயிற்சி எடுங்கள்!")
else:
print(f" மீண்டும் முயற்சி செய்யுங்கள்!")
input("\n[தொடர Enter அழுத்துக] ")
# __name__ == "__main__" - நிரல் நேரடியாக இயங்கும்போது மட்டுமே main() செயல்பட
if __name__ == "__main__":
main()
இனி இந்த நிரலினை ஒரு இணையச் செயலியாக உருவாக்கி மாணாக்கப் பயன்பாட்டிற்கு வழங்கும் நுட்பத்தினை அடுத்துவரும் பாடவேளையில் அறிவோம்.
முனைவர் அ.வினோத், கோ.பூவேந்திரன், முனைவர் சத்தியராஜ் தங்கச்சாமி (2023, அக்டோபர் 15, 16). தொல்காப்பியக் குறுஞ்செயலி உருவாக்கம், தொழில்நுட்ப மாநாடு, குமரகுரு தொழில்நுட்பக் கல்லூரி, கோயமுத்தூர்.
Vinoth, A., Thangasamy, S., Nithya, R., Poovandran, G., Mounash, V., Subalalitha, C. N., ... & Jafer, K. S. (2023, December). Automatic Identification of Meimayakkam in Tamil Words Using Rule-Based and Transfer Learning Approaches. In International Conference on Speech and Language Technologies for Low-resource Languages (pp. 443-458). Cham: Springer Nature Switzerland.
தெய்வசுந்தரம் ந., மொழியியலும் கணினிமொழியியலும் (தொகுதி இரண்டு), அமுத நிலையம், சென்னை. (2021)
Thangasamy, S., A, V., A, J. P. B., S, S., S, S. S., & Rathinavel, L. (2024). பைத்தான் தானியக்கம்வழி விக்கிமூல மேலடி - கீழடி மேம்பாடு : Python-based Automation for Header-footer Improvement in Wikisource. PULAM: INTERNATIONAL JOURNAL OF TAMILOLOGY STUDIES, 37–46. https://doi.org/10.5281/zenodo.10991314
https://pypi.org/project/Open-Tamil/
Tholkaappiyar_Nuunmarapu, https://github.com/neyakkoot/Tholkaappiyar_Nuunmarapu
பைத்தான்– https://ta.wikipedia.org/s/112
https://kaniyam.com/category/let-us-learn-learn-python/
தொல்காப்பியம்/எழுத்ததிகாரம்/நூல் மரபு https://ta.wikisource.org/s/238
சத்தியராஜ் தங்கச்சாமி (2024). தொல்காப்பியம் - நூன்மரபு (பைத்தான்வழி உரை-1) (Tholkaappiyam - Nunmarabu (Python Text-1)), இலக்கணம்-காலாண்டுச் சஞ்சிகை - 6, பூ 2 இதழ் 2, இலங்கை. ISSN: 2961-5712
சத்தியராஜ் தங்கச்சாமி (2024). தொல்காப்பியம் - நூன்மரபு (பைத்தான்வழி உரை-2) (Tholkaappiyam - Nunmarabu (Python Text-2)), இலக்கணம்-காலாண்டுச் சஞ்சிகை - 7, பூ 2 இதழ் 3, இலங்கை, ISSN: 2961-5712
சத்தியராஜ் தங்கச்சாமி (2024). தொல்காப்பியம் - நூன்மரபு (பைத்தான்வழி உரை-3) (Tholkaappiyam - Nunmarabu (Python Text-3)), இலக்கணம்-காலாண்டுச் சஞ்சிகை - 8, பூ 2 இதழ் 4, இலங்கை, ISSN: 2961-571
சத்தியராஜ் தங்கச்சாமி (2025). தொல்காப்பியம் - நூன்மரபு (பைத்தான்வழி உரை-4) (Tholkaappiyam - Nunmarabu (Python Text-4)), இலக்கணம்-காலாண்டுச் சஞ்சிகை - 9, பூ 3 இதழ் 1, இலங்கை, ISSN: 2961-571
சத்தியராஜ் தங்கச்சாமி (2025). தொல்காப்பியம் - நூன்மரபு (பைத்தான்வழி உரை-5) (Tholkaappiyam - Nunmarabu (Python Text-5)), இலக்கணம்-காலாண்டுச் சஞ்சிகை - 10, பூ 3 இதழ் 2, இலங்கை, ISSN: 2961-571
சத்தியராஜ் தங்கச்சாமி (2025). தொல்காப்பியம் - நூன்மரபு (பைத்தான்வழி உரை-6) (Tholkaappiyam - Nunmarabu (Python Text-6)), இலக்கணம்-காலாண்டுச் சஞ்சிகை - 11, பூ 3 இதழ், இலங்கை, ISSN: 2961-571
Chowdhury, Naem & Wei, Li & Min, Zhang. (2025). Redefining Scalability in AI: The Innovations Behind DeepSeek-V3's MoE and Multi-Token Prediction. 1. 10.5281/zenodo.14742743
deepseek-ai, https://github.com/deepseek-ai/DeepSeek-V3/tree/main/inference
வாரம் 7 - தொல்காப்பியம் நூன்மரபு & மெய்-உயிர் விளையாட்டுச் செயலி நிறைவு
நூற்பா 17-21 - வல்லினம், மெல்லினம், இடையினம்
கருத்துகள் இல்லை:
கருத்துரையிடுக
உங்கள் கருத்துகள் வரவேற்கப்படுகின்றன