ಪೈಥಾನ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆ

ಪೈಥಾನ್ ಅಥವಾ ಪೈಥನ್ ಎಂಬುದು ಒಂದು ಸರ್ವೋಪಯೋಗಿ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆ. ಇದನ್ನು ಸೃಷ್ಟಿಸಿದ್ದು ಗಿಡೋ ವ್ಯಾನ್ ರಾಸಮ್ ಎಂಬ ಕಂಪ್ಯೂಟರ್ ವಿಜ್ಞಾನಿ.  ೧೯೯೧ರಲ್ಲಿ ಇದನ್ನು ಬಿಡುಗಡೆ ಮಾಡಲಾಯಿತು. ಅದರ ಸರಳತೆಯ ಕಾರಣ  ಪೈಥನ್ ಭಾಷೆಯಲ್ಲಿ ಬರೆದ ಪ್ರೋಗ್ರಾಮುಗಳನ್ನು ಓದಿ ಅರ್ಥ ಮಾಡಿಕೊಳ್ಳುವುದು ಸುಲಭ. ಇದು ಈ ಭಾಷೆಯ ಜನಪ್ರಿಯತೆಗೆ ಒಂದು ಮುಖ್ಯ ಕಾರಣ.  ಪ್ರಸ್ತುತ ಬಹುತೇಕ ಎಲ್ಲಾ ಕಾಲೇಜುಗಳಲ್ಲೂ ಪೈಥನ್ ಬಳಸಿ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಪಾಠ ಮಾಡುವುದು ಸಾಮಾನ್ಯವಾಗಿದೆ. ಅನೇಕ ಕ್ಷೇತ್ರಗಳಲ್ಲಿ ಪೈಥನ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಬಳಕೆಯಾಗುತ್ತಿದೆ - ಇವುಗಳಲ್ಲಿ ಮುಖ್ಯವಾದವು 

* ಡೇಟಾ ಸೈನ್ಸ್ ಅಥವಾ ಡೇಟಾ ವಿಜ್ಞಾನ 
* ಕೃತಕ ಬುದ್ಧಿವಂತಿಕೆ 
* ಯಂತ್ರ ಕಲಿಕೆ 
* ವಿಜ್ಞಾನಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಕಾರ್ಯಕ್ಷೇತ್ರಗಳು 
* ಸ್ವಯಂಚಾಲಿತ ಯಂತ್ರಗಳು /ತಂತ್ರಾಂಶಗಳು 
* ವೆಬ್ ಅಭಿವೃದ್ಧಿ

**ಪೈಥನ್ ಭಾಷೆಯ ಮುಖ್ಯಾಂಶಗಳು**

**ಸರಳ ರಚನೆ**

ಪೈಥನ್ ಭಾಷೆಯಲ್ಲಿ ಬರೆದ ಪ್ರೋಗ್ರಾಮ್ ಓದಲು ಸುಲಭವಾಗಿರುತ್ತದೆ. ಉದಾಹರಣೆಗೆ ಕೆಳಕಂಡ ಭಾಗವನ್ನು ಗಮನಿಸಿ. def ಎಂಬುದು ಒಂದು ಫಂಕ್ಷನ್   ಪ್ರಾರಂಭವಾಗುವುದನ್ನು ಸೂಚಿಸುತ್ತದೆ. ಇದರ ನಂತರ ಬರುವ fib ಈ ಫಂಕ್ಷನ್ನಿನ ಹೆಸರು.  n ಎಂಬುದು ಈ ಫಂಕ್ಷನ್ನಿಗೆ ಬೇಕಾದ ಡೇಟಾ.  ":" ಎಂಬುದು ಕಡ್ಡಾಯವಾಗಿ ನೀಡಬೇಕಾದ ಅಕ್ಷರ. ಇನ್ನಿತರ ಭಾಷೆಗಳಲ್ಲಿ ಬಳಸುವ begin... end ಅಥವಾ {... } ಇವು ಬೇಡ. ಆದರೆ ಫಂಕ್ಷನ್ನಿಗೆ ಸೇರಿದ ವಾಕ್ಯಗಳ ಪ್ರಾರಂಭದಲ್ಲಿ ಒಂದು tab ಇರುವುದನ್ನು ಗಮನಿಸಬೇಕು. ಈ tab ಅಕ್ಷರವನ್ನು ಕೈಬಿಟ್ಟರೆ ವಾಕ್ಯವು ಫಂಕ್ಶನ್ನಿಗೆ ಸೇರಿದ್ದಲ್ಲವೆಂದು ಅರ್ಥ. if... elif... else ಎಂಬಲ್ಲಿ ಕೂಡಾ ಇದೇ ನಿಯಮ ಅನ್ವಯವಾಗುತ್ತದೆ. if ಅಥವಾ elif ಅಥವಾ else  ಸಂಬಂಧಿಸಿದ ವಾಕ್ಯಗಳು ಒಂದು tab ಅಕ್ಷರದಿಂದ ಪ್ರಾರಂಭವಾಗಬೇಕು.  or ಎಂಬ ಇಂಗ್ಲಿಷ್ ಪದದ ಬಳಕೆಯನ್ನು ಕೂಡಾ ಗಮನಿಸಬೇಕು. ತಾರ್ಕಿಕ ಅಥವಾ ಲಾಜಿಕ್ ಎಕ್ಸ್ಪ್ರೆಷನ್ ಗಳಲ್ಲಿ  ಪೈಥನ್ and, or ಮತ್ತು not ಎಂಬ ಇಂಗ್ಲಿಷ್ ಪದಗಳನ್ನು ಬಳಸುತ್ತದೆ. ಇದೇ ರೀತಿ is, in, ಪದಗಳೂ ಪೈಥನ್ ಪ್ರೋಗ್ರಾಮುಗಳಲ್ಲಿ ಬಳಕೆಯಾಗುತ್ತವೆ.   ಓದಲು ತೊಡಕು ಉಂಟುಮಾಡುವ {... }, ಇತ್ಯಾದಿಗಳು ಇಲ್ಲದಿರುವ ಕಾರಣ ಮತ್ತು tab ಬಳಕೆಯನ್ನು ಕಡ್ಡಾಯ ಮಾಡಿರುವ ಕಾರಣ ಪೈಥನ್ ಪ್ರೋಗ್ರಾಮುಗಳು ಸುಲಲಿತವಾಗಿ ಓದಿಸಿಕೊಂಡು ಹೋಗುತ್ತವೆ.

def fib(n):

    if n == 1 or n == 2:

        return 1

    else:

        return fib(n-1) + fib(n-2)

**ಇಂಟರ್ ಪ್ರೆಟರ್**

ಪೈಥನ್ ಒಂದು ಇಂಟರ್ ಪ್ರೆಟೆಡ್ ಭಾಷೆ; ಅರ್ಥಾನ್ ಈ ಪ್ರೋಗ್ರಾಮುಗಳನ್ನು ಓಡಿಸಲು ಇಂಟರ್ ಪ್ರೆಟರ್ ಎಂಬ ತಂತ್ರಾಂಶ ಬೇಕು. ಈ ತಂತ್ರಾಂಶವು ಪ್ರೋಗ್ರಾಮಿನ ಒಂದೊಂದೇ ವಾಕ್ಯವನ್ನು ಓದಿ ಅರ್ಥ ಮಾಡಿಕೊಂಡು ನಡೆಸುತ್ತಾ ಮುಂದೆ ಸಾಗುತ್ತದೆ. ಪೈಥನ್ ಪ್ರೋಗ್ರಾಮುಗಳ ಅಭಿವೃದ್ಧಿಗಾಗಿ ಅನೇಕ ಉತ್ತಮ "ಇಂಟೆಗ್ರೇಟೆಡ್ ಡೆವಲೆಪ್ಮೆಂಟ್ ಎನ್ವಿರಾನ್ಮೆಂಟ್" (Integrated Development Environment ಅಥವಾ IDE) ಮುಕ್ತವಾಗಿ ಲಭ್ಯವಾಗಿವೆ - ಉದಾಹರಣೆಗೆ Spyder, idle ಮೊದಲಾದವು. ಇವುಗಳಲ್ಲಿ ಪ್ರೋಗ್ರಾಮ್ ಬರೆಯಲು ವಿಶೇಷ ಎಡಿಟರ್ ಸೌಲಭ್ಯ ಇರುತ್ತದೆ. ಈ ಎಡಿಟರ್ ಪೈಥನ್ ಭಾಷೆಯ ರಚನೆಗಳನ್ನು ಅರ್ಥ ಮಾಡಿಕೊಳ್ಳಬಲ್ಲದು; ಪ್ರೋಗ್ರಾಮ್ ಬರೆಯುವಾಗಲೇ ತಪ್ಪುಗಳನ್ನು ತೋರಿಸಬಲ್ಲದು. ಪ್ರೋಗ್ರಾಮಿನಲ್ಲಿ ಬಳಸುವ ಪದಗಳನ್ನು ಸಂದರ್ಭಕ್ಕೆ ತಕ್ಕಂತೆ ವಿವಿಧ ಬಣ್ಣಗಳಲ್ಲಿ ತೋರಿಸಬಲ್ಲದು. ಕಮಾಂಡ್ ವಿಂಡೋದಲ್ಲಿ ಪೈಥನ್ ಭಾಷೆಯ ವಾಕ್ಯಗಳನ್ನು ಆದೇಶಗಳಾಗಿ ನೀಡಬಹುದು ಮತ್ತು ವಾಕ್ಯವನ್ನು ಪೈಥನ್ ಮಾಡಿ ಮುಗಿಸಿದ ನಂತರ ಸೃಷ್ಟಿಯಾದ / ಬದಲಾವಣೆಗೊಂಡ ವೇರಿಯಬಲ್ ಗಳನ್ನು ಮುದ್ರಿಸಿ ಅಪೇಕ್ಷಿತ ಬದಲಾವಣೆಗಳು ಉಂಟಾಗಿವೆಯೇ ಎಂದು ನೋಡಬಹುದು. ಇದಲ್ಲದೆ ಡೀಬಗರ್  ಸೌಲಭ್ಯವೂ ಲಬ್ಧ; ನಡೆಸುವ ಪ್ರೋಗ್ರಾಮನ್ನು ಡೀಬಗರ್ ಕಿಟಕಿಯಲ್ಲಿ (Window) ನಡುವೆ ನಿಲ್ಲಿಸಿ ವೇರಿಯಬಲ್ ಗಳು ನಮ್ಮ ಅಪೇಕ್ಷೆಯಂತೆ ಬದಲಾಗುತ್ತಿವೆಯೇ ಎಂದು ಗಮನಿಸುವುದು ಸಾಧ್ಯ.  

**ಡೈನಾಮಿಕ್ ಟೈಪಿಂಗ್**

ಪೈಥನ್ ಭಾಷೆಯಲ್ಲಿ x = "string" ಎಂದು ಬರೆದರೆ  x ಒಂದು ಅಕ್ಷರಮಾಲೆ ಜಾತಿಯ ವೇರಿಯಬಲ್ ಆಗುತ್ತದೆ. ನಂತರ "x = ೨೦" ಎಂದು ಬರೆದರೆ x ಒಂದು ಇಂಟಿಜರ್ ಜಾತಿಯ ವೇರಿಯಬಲ್ ಆಗುತ್ತದೆ.  ಮುಂದೆ "x = ೨೦. ೫" ಎಂದು   ಬರೆದರೆ ಅದೇ ಹೆಸರಿನ ವೇರಿಯಬಲ್ ಈಗ  float ಜಾತಿಗೆ ಸೇರುತ್ತದೆ.  "x = True" ಎಂದು ಬರೆದರೆ bool ಜಾತಿಗೆ ಸೇರುತ್ತದೆ. ಅರ್ಥಾತ್ ಒಂದು ವೇರಿಯಬಲ್ ಇಂಥದ್ದೇ ಜಾತಿಗೆ ಸೇರಿದ್ದು ಎಂದು ಮೊದಲೇ ಸಾರುವ  ಅಗತ್ಯವಿಲ್ಲ.  ಇದಕ್ಕೆ dynamic typing (ಡೈನಾಮಿಕ್ ಟೈಪಿಂಗ್) ಎನ್ನುತ್ತಾರೆ. ಇದು ಪ್ರೋಗ್ರಾಮ್ ಬರೆಯುವವರಿಗೆ ಅನುಕೂಲಕರ.

**ಡೇಟಾ ಸ್ಟ್ರಕ್ಚರ್ ಗಳು**

ಪೈಥನ್ ಭಾಷೆಯಲ್ಲಿ ಹಲವು ಉಪಯುಕ್ತ ಡೇಟಾ ಸ್ಟ್ರಕ್ಚರ್ ಗಳಿವೆ. "x = [೨, ೩, ೪]" ಎಂದು ಬರೆದಾಗ ಒಂದು ಲಿಸ್ಟ್ (list) ದೊರಕುತ್ತದೆ.  "x={"a":"apple", "b":"ball"}" ಎಂಬುದು ಒಂದು ಡಿಕ್ಷನರಿ. "x={"red","blue","green"}" ಎನ್ನುವುದು ಒಂದು ಸೆಟ್.  "x=(೨,೩)" ಎನ್ನುವುದು ಒಂದು ಟಪಲ್.  ಇವುಗಳನ್ನು ಬೇಕಾದ ರೀತಿಯಲ್ಲಿ ಬೆರೆಸಿ ಇನ್ನೂ ಜಟಿಲವಾದ ಡೇಟಾ ಸ್ಟ್ರಕ್ಚರ್ ಗಳನ್ನು ಸೃಷ್ಟಿಸಬಹುದು - ಉದಾಹರಣೆಗೆ ಲಿಸ್ಟ್ ಒಳಗೆ ಡಿಕ್ಷನರಿಗಳನ್ನು ಸೇರಿಸಬಹುದು, ಡಿಕ್ಷನರಿಯಲ್ಲಿ ಸೆಟ್ ಗಳನ್ನು ಸೇರಿಸಬಹುದು, ಇತ್ಯಾದಿ.

**ಆಬ್ಜೆಕ್ಟ್ ಓರಿಯೆಂಟೆಡ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್**

ಪೈಥನ್ ಮೂಲತಃ ಒಂದು ಆಬ್ಜೆಕ್ಟ್ ಓರಿಯೆಂಟೆಡ್ ಭಾಷೆ.  ಉದಾಹರಣೆಗೆ  s="kannada" ಎಂದಾಗ s ಎಂಬುದು ಸ್ಟ್ರಿಂಗ್ ಜಾತಿಗೆ ಸೇರಿದ ಒಂದು ವಸ್ತು. ಮುಂದೆ  s = s.upper() ಎಂದರೆ s ಒಳಗೆ "KANNADA" ಎಂಬ ಅಕ್ಷರಮಾಲೆ ದೊರೆಯುತ್ತದೆ. ಯಾವುದೇ ಜಾತಿಯ ಡೇಟಾ ವಸ್ತುವಾಗಲಿ ಅದರ ಮೇಲೆ ಅನೇಕ ಮೆಥಡ್ಸ್ (methods)  ಬಳಸಿ ಡೇಟಾ ವಸ್ತುವನ್ನು ಬದಲಿಸಬಹುದು. ಪ್ರೋಗ್ರಾಮರ್  "class" ಎಂಬ  ರಚನೆಯ ಮೂಕ  ಹೊಸ ಜಾತಿಯ ಡೇಟಾ ವಸ್ತುಗಳನ್ನು ಸೃಷ್ಟಿಸಬಹುದು.   ಉದಾಹರಣೆಗೆ shtapadi ಎಂಬ ಜಾತಿಯ ವಸ್ತುವನ್ನು ಪ್ರೋಗ್ರಾಮರ್ ಸೃಷ್ಟಿಸಬಹುದು.; ಒಂದು ಷಟ್ಪದಿಯ ದ್ವಿತೀಯಾಕ್ಷರ ಯಾವುದು, ಅದು ಯಾವ ಜಾತಿಯ ಷಟ್ಪದಿ ಇವುಗಳನ್ನು ಈ ವಸ್ತುವಿನ ಮೇಲೆ ಪ್ರೋಗ್ರಾಮರ್  ನೀಡಬಹುದಾದ "ಮೆಥಡ್ಸ್".

**ಲೈಬ್ರರಿಗಳು**

 ಪೈಥನ್ ಭಾಷೆಗೆ ಜಗತ್ತಿನ ಆದ್ಯಂತ ಸಾವಿರಾರು ಪ್ರೋಗ್ರಾಮರುಗಳು ವಿವಿಧ ರೀತಿಯಲ್ಲಿ ಕೊಡುಗೆಗಳನ್ನು ನೀಡುತ್ತಿದ್ದಾರೆ. ಅನೇಕಾನೇಕ ಲೈಬ್ರರಿಗಳನ್ನು ಸೃಷ್ಟಿಸಿ ಪೈಥನ್ ಒಂದು ಬಹೂಪಯೋಗಿ ಭಾಷೆಯಾಗಲು ಕಾರಣರಾಗಿದ್ದಾರೆ. ಕೆಲವು ಮುಖ್ಯ. ಪೈಥನ್  ಲೈಬ್ರರಿಗಳ ಸಂಖ್ಯೆ ನೂರಾರು. ಇವುಗಳಲ್ಲಿ ಮುಖ್ಯವಾದ ಕೆಲವು ಹೀಗಿವೆ -

* Numpy - ನ್ಯೂಮರಿಕಲ್ ಪೈಥನ್ - ಮ್ಯಾಟ್ ಲ್ಯಾಬ್ ತಂತ್ರಾಂಶದಲ್ಲಿ ಸಾಧ್ಯವಾಗುವ  ಬಹುತೇಕ ಎಲ್ಲಾ ಲೆಕ್ಕಾಚಾರಗಳೂ ಇದರಲ್ಲಿ ಸಾಧ್ಯ. array ಎಂಬ ಜಾತಿಯ ವೇರಿಯಬಲ್ (data type) ಇಲ್ಲಿ ಸಾಧ್ಯ.
* Scipy - ಸೈಂಟಿಫಿಕ್ ಪೈಥಾನ್ - ಲೀನಿಯರ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್, ನಾನ್ ಲೀನಿಯರ್ ಆಪ್ಟಿಮೈಸೇಷನ್ ಇವೆಲ್ಲವನ್ನೂ ಒಳಗೊಂಡ ಲೈಬ್ರರಿ.
* scikit-learn, Tensorflow, Pytorch   : ಯಂತ್ರಕಲಿಕೆ  / ಕೃತಕ ಬುದ್ಧಿವಂತಿಕೆಗಳನ್ನು ಪ್ರೋಗ್ರಾಮಿನಲ್ಲಿ ತರಲು ಇವು ಉಪಯುಕ್ತ
* pandas : ಡೇಟಾ ಸೈನ್ಸ್ / ಡೇಟಾ ವಿಜ್ಞಾನಕ್ಕಾಗಿ ಬಳಸಲಾಗುವ ಲೈಬ್ರರಿ
* Django : ವೆಬ್ ಅಭಿವೃದ್ಧಿಗಾಗಿ ಸಿದ್ಧಪಡಿಸಲಾದ ಲೈಬ್ರರಿ

ಮೈಕ್ರೋಸಾಫ್ಟ್ ವಿಂಡೋಸ್, ಮ್ಯಾಕ್ ಓಎಸ್, ಲಿನಕ್ಸ್, ಹೀಗೆ ಅನೇಕಾನೇಕ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ಸ್ ಮೇಲೆ ಪೈಥನ್ ಕೆಲಸ ಮಾಡಬಲ್ಲದು.  ಇದನ್ನು ಕ್ರಾಸ್ ಪ್ಲಾಟಫಾರ್ಮ್ ಕಂಪಾಟಿಬಿಲಿಟಿ ಎನ್ನುತ್ತಾರೆ.

**ಆವೃತ್ತಿಗಳು**

ಪೈಥನ್ ಈಗಾಗಲೇ ಮೂರನೇ ಆವೃತ್ತಿಯಲ್ಲಿ ಲಭ್ಯವಾಗಿದೆ.   ಎರಡನೇ ಆವೃತ್ತಿಯ ಪೈಥನ್ ಭಾಷೆಯಲ್ಲಿ ಸಿದ್ಧಪಡಿಸಿದ ಪ್ರೋಗ್ರಾಮುಗಳನ್ನು  ಮೂರನೇ ಆವೃತ್ತಿಯಲ್ಲಿ ಸಾರಾಸಗಟಾಗಿ ಆಮದು ಮಾಡಿಕೊಳ್ಳುವುದು ಸಾಧ್ಯವಾಗದೇ ಇರಬಹುದು. ಪೈಥನ್ ಇಳಿಸಿಕೊಳ್ಳಲು ಬೇಕಾದ ವೆಬ್ ತಾಣ - 

ಪೈಥನ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಕುರಿತು ಕನ್ನಡದಲ್ಲೂ ಆನ್ಲೈನ್ ಸಾಹಿತ್ಯ ಲಭ್ಯವಾಗಿದೆ. ಇದೊಂದು ಉದಾಹರಣೆ.

## ಉಲ್ಲೇಖಗಳು 
ವರ್ಗ:ತಂತ್ರಾಂಶಗಳು