**பைத்தான்** (*Python Programming Language*)) என்பது ஒரு விளக்கப்பட்ட, உயர்-நிலை, பொது-நோக்க நிரலாக்க மொழியாகும். நிரல் படிப்புத்திறன் பைத்தானின் வடிவமைப்பு மெய்யியல் குறிப்பிடத்தக்க இடைவெளியுடன் பயன்படுத்துவதை வலியுறுத்துகிறது. சிறு, பேரளவு திட்டப்பணிகளுக்குத் தருக்கமுறை நிரற்தொடரைத் தெளிவாக எழுதுத கணிப்பொறி நிரலருக்கு அதன் மொழி கட்டமைப்புகளும் பொருள் நோக்கு அணுகுமுறையும் உதவி செய்வதை நோக்கமாகக் கொண்டுள்ளது.

பைதான் இயக்க வகையும் நினைவகச் சுத்திகரிப்பும் கொண்டதாகும். ஒழுங்குசார் (குறிப்பாகப் படிமுறைத்தன்மை) பொருள் நோக்கு, பணிமுறை போன்றவை உட்பட பன்முக-கருத்தோட்டங்களை இம்மொழி ஒத்துழைக்கின்றது, விரிந்த தரமான ஏடகம் உள்ளதால் பைதான் "மின்கலன்கள் உள்ளடக்கிய மொழி" எனப் பெரும்பாலும் விவரிக்கப்படுகிறது.

பைத்தான் ஒரு திறந்த மூல நிரலாக்க மொழியாகும். இம்மொழியை உருவாக்கியவர் குய்டொ வான் ரூஸ்ஸொம்(Guido van Rossum) என்ற நெதர்லாந்து நாட்டு நிரலாளர் ஆவார். இவர் இம்மொழிக்குப் பெயரை, 'Monty Python's Flying Circus' என்ற இங்கிலாந்து நகைச்சுவை நாடகத்தின் பெயரைக் கொண்டு, பைத்தான் என்று வைத்தார். அந்நாடகம் ஓர் 'அடிமன வெளிப்பாட்டிய நகைச்சுவையை' (Surreal humor) அடிப்படையாகக் கொண்டதாகும். இம்மொழி பொது நோக்க இலக்குகளுக்காக, அதிகம் பயன்படுத்தப்படும் உயர் மட்ட நிரலாக்க மொழியாகும்.

கூகிள், நாசா போன்ற புகழ்பெற்ற நிறுவனங்களில் இது பயன்படுத்தப்படுகின்றது. பைதானில் செய்நிரல்கள் எழுதுவதும், பிறர் எழுதிய செய்நிரல்களைப் படித்து புரிந்து கொள்வதும் மிக எளிதாகும். இதன் முதல் பதிப்பு 1991 வெளி வந்தது. இந்த மென்பொருளைத் தற்பொழுது பைத்தோன் மென்பொருள் நிறுவம் பராமரித்து வருகிறது. இம்மொழியின் அதிகாரப்பூர்வமான பதிப்பு சிபைத்தோன் என்பதாகும்.

பைத்தான் இலவசமாகக் கிடைக்கக் கூடிய நிரல் மொழியாகும். வணிக நோக்கிலான மென்பொருள் உருவாக்கத்தில் இலவசமாய்ப் பயன்படுத்தப்படுகின்றது. பைத்தான் மென்பொருள் நிறுவனம் இம்மொழியின் உரிமத்தை நிர்வகித்து வருகிறது. விண்டோசு, லினக்சு, யுனிக்சு, மேக் இயங்குதளம் போன்ற பல்வேறு இயக்க சூழல்களிலும் பைத்தான் இயங்கும். சி, சி++, சி#, ஜாவா, பி.எச்.பி, பேர்ள் போன்ற அனைத்து நிரல் மொழிகளுடனும் ஒத்திசையும் வண்ணம் வடிவமைக்கப்பட்டுள்ளது.

வரலாறு
------

கைடோ வான் ரோசம்,பைத்தான் மொழியை உருவாக்கியவர்
பைதான் 1980 களின் பிற்பகுதியில் உருவாக்கப்பட்டது, 1991 இல் ஏபிசி நிரலாக்க மொழியைப் பின் தொடர்ந்து கைடோ வான் ரோசம் ஆல் முதன்முதலில் வெளியிடப்பட்டது.

வடிவமைப்பு மெய்யியலும் சிறப்பியல்புகளும்
----------------------------------------

பயன்பாட்டுத் துறைகள்
--------------------

- இணைய மென்பொருள் (Web Application),
- மின்னஞ்சல் அலகிடல் (Email Parsing)
- வலையமைப்பு நிரலான் (Network Program)
- மேசைத்தளம் மென்பொருள் (Desktop Application),,
- இணைய நெறிமுறை (Internet Protocol) 
- கணினி நிருவாகம் (System administration)
- விளையாட்டுகள் (

sports)

பயன்படுத்தும் நிறுவனங்கள்
-------------------------

* கூகிள்
* யூடியூப்
* டராப்பாக்ஸ் பரணிடப்பட்டது 2014-04-24 at the வந்தவழி இயந்திரம்
* முகநூல்
* பிட்லி
* யாகூ! நிலப்படம்
* யாகூ குழுமம்
* சோப்
* அல்ட்ரா சீக்
* லினக்சு வாரச் செய்தி
* ரெட்ஹேட்
* டிக்க
* இவன்ட்பிரைட்
* லேன்யார்ட்
* மிக்ஸ் பேனல் பரணிடப்பட்டது 2013-03-15 at the வந்தவழி இயந்திரம்
* கோரா
* பின்டிரசட்
* ரேட்டிட் பரணிடப்பட்டது 2011-07-15 at the வந்தவழி இயந்திரம்
* பாத் பரணிடப்பட்டது 2014-06-09 at the வந்தவழி இயந்திரம்
* இன்சடாகிராம்
* மொசில்லா நிறுவனம்
* சர்வே மங்கி பரணிடப்பட்டது 2013-04-09 at the வந்தவழி இயந்திரம்
* எல்பு
* அசனா
* சேக்கேன்டு லைப்பு
* வால்ட் டிச்சினி
* கூகிள் அப் இஞ்ன்
* இவ் அன்லைன் கேம்ங்
* கனோனிக்கல் நிறுவனம்
* Rackspace
* சிஸ்கோ சிஸ்டம்ஸ் பரணிடப்பட்டது 2013-04-22 at the வந்தவழி இயந்திரம்
* ஐபிஎம்
* இன்டச்சிட்ரியல் லைட் மேசிக்
* பிக்சர்
* தேசிய வானூர்தியியல் மற்றும் விண்வெளி நிர்வாகம்
* ஹனிவெல்
* ஐரேபட்
* One Laptop Per Child (OLPC) project
* டிச்கச்(disqus) பரணிடப்பட்டது 2013-08-10 at the வந்தவழி இயந்திரம்

எடுத்துக்காட்டு
---------------

வருக வையகமே நிரல்

```
#!/usr/bin/python
print u"வணக்கம்"

```

வெளியீடு(Output)

```
வணக்கம்

```

வேறுபடுபவை(Variable)

```
#! /usr/bin/python
a = 1
b = 2
print a + b

```

வெளியீடு(Output)

```
3

```

இணை ஒப்படைப்பு(parallel assignment)

```
#! /usr/bin/python
#comment விளக்கம் கூறு
a, b = 1, 2
language = "python"
print a, b, language

```

வெளியீடு(Output)

```
1 2 python

```

கூற்று(Expression)

```
#! /usr/bin/python
print 1 + 2, 2 - 3, 2 \* 3, 5 / 2, 5.0 / 2

```

வெளியீடு(Output)

```
3 -1 6 2 2.5

```

கூற்று

```
#! /usr/bin/python
print 2 > 3, 1 < 3
print 2 > 3 and 1 < 3
print 1 < 2 < 3
print 1 + 2 \* 3 + 5
print 1 or 2
print 1 and 2

```

வெளியீடு(Output)

```
False True
False
True
12
1
2

```

சரம்(String)

```
#! /usr/bin/python
language = "தமிழ்"
lang = 'தமிழ்'
l = """தமிழ்"""
kural = """
அகர முதல எழுத்தெல்லாம் ஆதி
பகவன் முதற்றே உலகு.
"""
print language, lang, l
print kural

```

வெளியீடு(Output)

```
தமிழ் தமிழ் தமிழ்
அகர முதல எழுத்தெல்லாம் ஆதி
பகவன் முதற்றே உலகு.

```

கட்டியம்(Condition)

```
#! /usr/bin/python
a = 23
if a > 0:
	print "a %d is positive number" % (a)
else:
	print "a %d is negative number "% (a)
a = 0
if a >= 0:
	print "a(%d) is positive number" % (a)
elif a < 0:
	print "a(%d) is negative number" % (a)
elif a == 0:
	print "a(%d) is zero" %(a)

```

வெளியீடு(Output)

```
a 23 is positive number
a(0) is positive number

```

தரவுக் கட்டமைப்புகள் (Data structures)
--------------------------------------

தொடர் (List)

```
#! /usr/bin/python
l = [] #தொடர் உருவாக்குதல்
l.append("தமிழ்")
l.append(1) #புதிய சேர்க்கை
print l, l.count()
l.remove(1) #1யை நீக்குதல்
print l

```

வெளியீடு(Output)

```
[தமிழ், 1], 2
[தமிழ்]

```

டியுப்பல் (Tuple)

```
t = (1, 2, 3, 1)
print t.count(1)
print t.index(2)

```

வெளியீடு(Output)

```
2
1

```

அகராதி(Dictionary)

```
d = {'name': 'Tamil Magan', 'age': 23, 'place': 'coimbatore'}
print d
print d['name']
print d['age']
print d.keys()
print d.values()
print d.items()

```

வெளியீடு(Output)

```
{'age': 23, 'place': 'coimbatore', 'name': 'Tamil Magan'}
Tamil Magan
23
['age', 'place', 'name']
[23, 'coimbatore', 'Tamil Magan']
[('age', 23), ('place', 'coimbatore'), ('name', 'Tamil Magan')]

```

தொகுப்பு (set)

```
s = set([1, 2, 3, 1, 2, 3])
print s
s.add(23)
print s
s.pop()
print s
s.remove(23)
print s
print len(s)

```

வெளியீடு(Output)

```
set([1, 2, 3])
set([1, 2, 3, 23])
set([2, 3, 23])
set([2, 3])
2

```

முழுச்சுற்றுகள் (Loops)
-----------------------

தொடர்

```
for no in [1, 2, 3, 4, 5]: #தொடர்
    print no

```

வெளியீடு(Output)

```
1
2
3
4
5

```

டியுப்பல்

```
for no in (1, 2, 3, 4, 5): #டியுப்பல்
    print no

```

வெளியீடு(Output)

```
1
2
3
4
5

```

அகராதி

```
d = {'age': 23, 'name': 'Tamil Magan', 'place': 'coimbatore'}
for key in d: #அகராதி
    print key, d[key]

```

வெளியீடு(Output)

```
age 23
place coimbatore
name Tamil Magan

```

ஒயில் (while)

```
no = 1
while no < 10:
    if no % 2 == 0:
        print no, "இரட்டை"
    elif no % 2 == 1:
        print no, "ஒற்றை"
    no += 1

```

வெளியீடு(Output)

```
1 ஒற்றை
2 இரட்டை
3 ஒற்றை
4 இரட்டை
5 ஒற்றை
6 இரட்டை
7 ஒற்றை
8 இரட்டை
9 ஒற்றை

```

கொடுக்கப்பட்ட எண்ணை பெருக்கல் அட்டவணை அச்சிடும் நிரல் (பார் லூப் எடுத்துக்காட்டு)

```
val=5
for i in range(5):
 i=i+1
 print i," X ",int(val)," = ",int(i)\*int(val),"\n"

```

வெளியீடு(Output)

```
1  X  5  =  5

2  X  5  =  10

3  X  5  =  15

4  X  5  =  20

5  X  5  =  25

```

செயலாற்றி (Function)
--------------------

```
def square(no):
    return no \* no

def cube(no):
    return square(no) \* no

print square(2)
print square(2) + square(3)
print cube(3)
print cube(square(2))
print square(no=10)

```

வெளியீடு(Output)

```
4
13
27
64
100

```

இயல்பிருப்பு(Default)

```
def square(no=2):
    return no \* no

def cube(no=2):
    return square(no) \* no

print square()
print square(4)

```

வெளியீடு(Output)

```
4
16

```

மாற்றுப்பெயர் (Alias)

```
def square(no=2):
    return no \* no

def cube(no=2):
    return square(no) \* no

def caller(func\_name, arg):
    return func\_name(arg)

s = square
c = cube
print s(2)
print c(3)
print caller(s, 10)
print caller(c, 5)
print caller(square, 7)

```

```
4
27
100
125
49

```

Open-Tamil library
------------------

Open-Tamil  library example,

```
import re, operator
import tamil #open-tamil library
def print\_tamil\_words(tatext):
     taletters = tamil.utf8.get\_letters(tatext)
     # tamil words only
     frequency = {}
     for pos, word in enumerate(tamil.utf8.get\_tamil\_words(taletters)):
          print(pos, word)
          frequency[word] = 1 + frequency.get(word, 0)
     # sort words by descending order of occurrence
     for l in sorted(frequency.iteritems(), key=operator.itemgetter(1)):
          print(l[0], ’:’, l[1])

```

மேற்கோள்கள்
-----------

1. ↑  Hastings, Larry (2016-06-27). "Python 3.5.2 and Python 3.4.5 are now available". The Python Core Developers.. பார்த்த நாள்: 2016-06-28.
2. ↑  Peterson, Benjamin (2016-06-28). "Python 2.7.12 released". The Python Core Developers.. பார்த்த நாள்: 2016-06-28.
3. ↑  "Python 3.3.0 Release". Python Software Foundation.. பார்த்த நாள்: 28 June 2012.
4. ↑  "Interview with Guido van Rossum". 1998.. பார்த்த நாள்: 29 July 2007.
5. ↑  File extension .pyo was removed in Python 3.5. See PEP 0488
6. ↑  Holth, Moore (30 March 2014). "PEP 0441 -- Improving Python ZIP Application Support".. பார்த்த நாள்: 12 November 2015.
7. ↑  "General Python FAQ - Why is it called Python?". .
8. ↑  இணையதள திரைப்பட தரவுத்தளத்தில் *Monty Python’s Flying Circus*
9. ↑  Programming Language Trends – O'Reilly Radar. Radar.oreilly.com (2006-08-02). Retrieved on 2013-07-17.
10. ↑  The RedMonk Programming Language Rankings: January 2013 – tecosystems. Redmonk.com (2013-02-28). Retrieved on 2013-07-17.
11. ↑
12. ↑
13. ↑
14. ↑
15. ↑
16. ↑
17. ↑
18. ↑
19. ↑
20. ↑
21. ↑  "காப்பகப்படுத்தப்பட்ட நகல்". .

புற இணைய இணைப்புகள்
-------------------

* தமிழில் பைத்தான் நிரல்மொழிப் பற்றிய அறிமுக யூடியூப் காணொலி
* ஓப்பன் தமிழ் இணையத்தளம் பரணிடப்பட்டது 2021-01-19 at the வந்தவழி இயந்திரம்