நிரலாக்குநர் அல்லாதவருக்கான பைத்தன் 2.7 பயிற்சி/பத்து வரை எண்ணுவோம்

விக்கிநூல்கள் இலிருந்து

வரை தடங்கள்[தொகு]

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

a = 0
while a < 10:
    a = a + 1
    print a

வெளியீடு:

1
2
3
4
5
6
7
8
9
10

சரி, எப்படி இந்த வெளியீடு வந்தது? முதலில் கணினியானது a = 0 என்ற வரியை வாசித்து, a என்ற மாறிக்கு 0 என்ற பெறுமானத்தை அமைக்கின்றது. அடுத்து, while a < 10: என்ற வரியை வாசித்ததும், a < 10ஆ எனப் பார்க்கும். முதல் தடவை பார்க்கும்போது, aஇன் பெறுமானம் 0. 10ஐ விட 0 சிறியது. எனவே, அடுத்த வரியை வாசிக்கும். a = a + 1 என்பதற்கேற்ப, aஇற்கு 1 என்ற பெறுமானம் ஒதுக்கப்படும். அடுத்த வரியின்படி, a என்ற மாறி பதிக்கப்படும். அதாவது, 1 என்ற பெறுமானம் பதிக்கப்படும். இனி, வரை தடத்தின் தொடக்கம் மறுபடியும் வாசிக்கப்படும். இப்போது aஇன் பெறுமானம் 1. 10ஐ விட 1 சிறியது. எனவே, மீண்டும் இதே செயன்முறை தொடர்ந்து 2 பதிக்கப்படும். இவ்வாறே a == 10 ஆகும் வரை தடம் தொடர்ந்து, பத்து வரையான எண்கள் பதிக்கப்படும். இப்போது aஇன் பெறுமானம் 10. 10ஐ விட 10 சிறியது என்பது பொய் (False). எனவே, வரை தடம் மூடப்படும். இதன்பின்னர், உட்டள்ளப்பட்ட எந்தவொரு வரியும் இயங்காது.

இவ்வாறான தடங்களை எழுதும்போது, முக்காற்புள்ளியை (:) இடவும் வரிகளை உட்டள்ளவும் மறக்கவேண்டாம். வரிகளை உட்டள்ளுவதற்கு நான்கு வெளிகளையோ தத்தலையோ பயன்படுத்தலாம். வரை தடத்தின் பயன்பாட்டுக்கான இன்னோர் எடுத்துக்காட்டையும் பாருங்கள்.

a = 1
s = 0
print ('கூட்டவேண்டிய எண்களை ஒவ்வொன்றாக உள்ளிடுக.')
print ('வெளியேறுவதற்கு 0ஐ உள்ளிடுக.')
while a != 0:
    print 'தற்போதைய கூட்டுத்தொகை:', s
    a = input('எண்? ')
    s = s + a
print 'மொத்தக் கூட்டுத்தொகை =', s
கூட்டவேண்டிய எண்களை ஒவ்வொன்றாக உள்ளிடுக.
வெளியேறுவதற்கு 0ஐ உள்ளிடுக.
தற்போதைய கூட்டுத்தொகை: 0
எண்? 200
தற்போதைய கூட்டுத்தொகை: 200
எண்? -15.25
தற்போதைய கூட்டுத்தொகை: 184.75
எண்? -151.85
தற்போதைய கூட்டுத்தொகை: 32.9
எண்? 10.00
தற்போதைய கூட்டுத்தொகை: 42.9
எண்? 0
மொத்தக் கூட்டுத்தொகை = 42.9

உட்டள்ளப்பட்ட வரிகள் தான் while கூற்றுக்குள் அடங்கும். print 'மொத்தக் கூட்டுத்தொகை =', s என்ற கூற்று உட்டள்ளப்படவில்லை. எனவே, வரை தடம் மூடப்பட்டபின் தான், print 'மொத்தக் கூட்டுத்தொகை =', s இயங்குகின்றது. != என்பது சமனன்று என்பதைக் குறிக்கும். எனவே, while a != 0: என்பது a == 0 ஆகும்வரை உட்டள்ளப்பட்ட வரிகளை இயக்கும்.

முடிவிலித் தடங்கள்[தொகு]

வரை தடத்தைப் பயன்படுத்தி, தொடர்ச்சியாக இயங்கிக்கொண்டிருக்கக்கூடிய ஒரு செய்நிரலை உருவாக்கமுடியும்.

while 1 == 1:
   print "ஒரு தடத்தில் மாட்டிக்கொண்டேன். உதவுங்கள்."

== குறியீடானது, வினைக்குறியின் இருபக்கங்களிலும் உள்ள கோவைகள் சமனானவையா என ஆராயப் பயன்படுகின்றன. வினைக்குறிகளைப் பற்றி அடுத்த இயலில் விரிவாகப் பார்ப்போம்.

இந்தச் செய்நிரலானது,

ஒரு தடத்தில் மாட்டிக்கொண்டேன். உதவுங்கள்.

என்ற வரியைத் தொடர்ச்சியாகப் பதித்துக்கொண்டே இருக்கும். ஏனென்றால், 1ஆனது 1இற்குச் சமனாகும்வரை செய்நிரலை இயக்கும்படி கட்டளைபிறப்பித்துள்ளோம். இச்செய்நிரலைக் கொல்வதற்கு, கட்டுப்பாட்டுவிசையையும் C விசையையும் ஒன்றாக அழுத்துங்கள்.

எடுத்துக்காட்டுகள்[தொகு]

Fibonacci.py

# இச்செய்நிரலானது பிபொனாச்சி தொடரியைக் கணிக்கவல்லது.
a = 0
b = 1
count = 0
max_count = 20
while count < max_count:
    count = count + 1
    # aஐ மாற்றப்போவதால், பழைய aஐ வேறு மாறியில் தேக்கிவைக்கின்றோம்.
    old_a = a
    old_b = b
    a = old_b
    b = old_a + old_b
    # print கூற்றின் இறுதியிலுள்ள , புதிய வரியைத் தோற்றுவிப்பதைத் தடுக்கின்றது.
    print(old_a),

வெளியீடு:

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181

Password.py

# கடவுச்சொல் தெரியாவிடின், செய்நிரலைக் கொல்வதற்கு கட்டுப்பாட்டுவிசையையும் C விசையையும் ஒன்றாக அழுத்துங்கள்.

# password என்ற மாறிக்கு ஒரு வெற்றுச்சரத்தை ஒதுக்குகின்றோம்.
password = ""

# இங்கே கடவுச்சொல்லாக Tamilwikib00ks என்பதைப் பயன்படுத்துகின்றோம்.
while password != "Tamilwikib00ks":
    password = raw_input("கடவுச்சொல்: ")
print "வருக!"

மாதிரி இயக்கம்:

கடவுச்சொல்: 123456
கடவுச்சொல்: qwerty
கடவுச்சொல்: password
கடவுச்சொல்: wikipedia
கடவுச்சொல்: Tamilwikib00ks
வருக!