ஊடாடும் யூக விளையாட்டை உருவாக்கும் போது பொதுவான பைதான் பிழை
பைத்தானைக் கற்கும்போது, எண்ணை யூகிக்கும் கேம் போன்ற ஊடாடும் கேம்களை உருவாக்குவது மிகவும் உற்சாகமான திட்டங்களில் ஒன்றாகும். பயனர் உள்ளீட்டுடன் பைதான் எவ்வாறு தொடர்பு கொள்கிறது மற்றும் நிரலின் நடத்தையை வழிநடத்த கட்டுப்பாட்டு ஓட்டத்தைப் பயன்படுத்துகிறது என்பதைப் புரிந்துகொள்ள இதுபோன்ற திட்டங்கள் உங்களுக்கு உதவுகின்றன. இந்த வழக்கில், பைதான் பயனரை 1 மற்றும் 100 க்கு இடையில் உள்ள எண்ணை யூகிக்க தூண்டுகிறது, மேலும் அதிகமாகவோ அல்லது குறைவாகவோ யூகிக்க பின்னூட்டம் அளித்து, இறுதியாக, சரியான யூகம் எப்போது செய்யப்படுகிறது என்பதை உறுதிப்படுத்தவும்.
இருப்பினும், பல நிரலாக்கப் பயிற்சிகளைப் போலவே, உடனடியாகத் தெளிவாகத் தெரியாத பிழைகள் ஏற்படலாம். நீங்கள் பணிபுரியும் பைதான் டுடோரியலைப் பின்தொடரும் போது நீங்கள் சந்திக்கும் ஒரு பிழையானது, %: 'கணிதம்' மற்றும் 'டூப்பிள்' க்கான ஆதரிக்கப்படாத operand வகை(கள்) ஆகும். இது வெறுப்பாக இருக்கலாம், குறிப்பாக முதல் பார்வையில் தொடரியல் சரியாகத் தோன்றும்போது.
இந்த யூகிக்கும் விளையாட்டில், நீங்கள் எதிர்கொள்ளும் பிழை பொதுவாக நீங்கள் பயன்படுத்தும் போது தவறாக ஒரு சரத்தை வடிவமைக்க முயற்சிக்கும் போது ஏற்படும் கணிதம் இல் செயல்பாடு IPython.display நூலகம். இது ஒரு பொதுவான தவறு, ஆனால் கண்டறியப்பட்டவுடன் தீர்வு நேரடியானது.
இந்த வழிகாட்டி பிழையின் அர்த்தம் என்ன, அது ஏன் நிகழ்கிறது மற்றும் அதைச் சரிசெய்ய உங்கள் பைதான் குறியீட்டை எவ்வாறு மாற்றியமைக்கலாம். முடிவில், குழப்பமான பிழைச் செய்தி இல்லாமல் யூகிக்கும் விளையாட்டை முழுமையாகச் செயல்படுவீர்கள்!
கட்டளை | பயன்பாட்டின் உதாரணம் |
---|---|
random.randint() | இருந்து இந்த செயல்பாடு சீரற்ற நூலகம் ஒரு குறிப்பிட்ட வரம்பிற்குள் சீரற்ற முழு எண்ணை உருவாக்குகிறது. யூகிக்கும் விளையாட்டில், பயனர் யூகிக்க 1 மற்றும் 100 இடையே ஒரு சீரற்ற எண்ணை உருவாக்க இது பயன்படுகிறது. எடுத்துக்காட்டு: random.randint(1, 100). |
IPython.display.Math() | இலிருந்து இந்த கட்டளை IPython.display மாட்யூல் கணித வெளிப்பாடுகளை வடிவமைத்த முறையில் காட்ட பயன்படுகிறது. தீர்வில், சரியான எண்ணையும் பயனரின் யூகத்தையும் காட்ட வெளியீட்டை வடிவமைக்க உதவுகிறது. எடுத்துக்காட்டு: கணிதம்(f'வாழ்த்துக்கள்! சரியான எண் {a}'). |
unittest.mock.patch() | சோதனையின் போது உங்கள் குறியீட்டில் உள்ள செயல்பாடு அல்லது பொருளைப் போலிப் பதிப்பைக் கொண்டு மாற்ற இந்தச் செயல்பாடு பயன்படுத்தப்படுகிறது. கைமுறையான தொடர்பு இல்லாமல் பயனர் உள்ளீட்டை உருவகப்படுத்த அலகு சோதனைகளில் இது மிகவும் பயனுள்ளதாக இருக்கும். எடுத்துக்காட்டு: @patch('builtins.input', side_effect=[50, 75, 85, 95, 100]). |
unittest.TestCase | ஒரு அடிப்படை வகுப்பு அலகு சோதனை அலகு சோதனைகளை உருவாக்க பயன்படுத்தப்படும் தொகுதி. தனிப்பட்ட செயல்பாடுகள் எதிர்பார்த்தபடி செயல்படுவதை உறுதி செய்வதற்காக சோதனை செய்வதற்கான கட்டமைப்பை இது வழங்குகிறது. எடுத்துக்காட்டு: வகுப்பு TestGuessingGame(unittest.TestCase). |
continue | தற்போதைய மறு செய்கையைத் தவிர்த்துவிட்டு அடுத்ததற்குச் செல்ல இந்த கட்டுப்பாட்டு ஓட்டம் கட்டளை சுழல்களுக்குள் பயன்படுத்தப்படுகிறது. ஸ்கிரிப்ட்டில், தவறான உள்ளீடு காரணமாக ஒரு ValueError ஐப் பிடித்த பிறகு நிரல் தொடர்வதை இது உறுதி செய்கிறது. எடுத்துக்காட்டு: தொடரவும். |
try-except | பிழையைக் கையாளப் பயன்படுகிறது, இந்த அமைப்பு விதிவிலக்கு எழுப்பப்பட்டாலும் நிரலைத் தொடர்ந்து இயங்க அனுமதிக்கிறது. யூகிக்கும் விளையாட்டில், முழு எண்களை உள்ளிடாத பயனர்களின் தவறான உள்ளீட்டை இது கையாளுகிறது. எடுத்துக்காட்டு: முயற்சி: ... ValueError: தவிர. |
input() | இந்தச் செயல்பாடு பயனர் உள்ளீட்டை ஒரு சரமாகப் பிடிக்கிறது. யூகிக்கும் விளையாட்டில், பயனரின் யூகத்தை உள்ளிடும்படி தூண்டுவதற்கு இது பயன்படுகிறது. உள்ளீடு பின்னர் முழு எண்ணாக மாற்றப்படுகிறது. எடுத்துக்காட்டு: user_guess = int(உள்ளீடு('1க்கும் 100க்கும் இடைப்பட்ட எண்ணை யூகிக்கவும்:')). |
f-string | பைதான் 3.6 இல் அறிமுகப்படுத்தப்பட்டது, f-சரங்கள் சரத்தில் நேரடியாக வெளிப்பாடுகளை உட்பொதிப்பதன் மூலம் எளிதாக சரம் வடிவமைப்பை அனுமதிக்கவும். தீர்வில், இறுதி செய்திக்கான வெளியீட்டை வடிவமைக்க அவை பயன்படுத்தப்படுகின்றன. உதாரணம்: வாழ்த்துக்கள்! சரியான எண் {a}'. |
unittest.main() | இந்த கட்டளை பைத்தானில் சோதனை தொகுப்பை இயக்குகிறது அலகு சோதனை கட்டமைப்பு. நிரலுக்காக எழுதப்பட்ட சோதனைகளை தானாகவே கண்டறிந்து இயக்க இது பயன்படுகிறது. எடுத்துக்காட்டு: __name__ == '__main__' என்றால்: unittest.main(). |
பைத்தானின் யூக விளையாட்டுக் குறியீட்டின் பின்னால் உள்ள இயக்கவியலைப் புரிந்துகொள்வது
பைதான் யூகிக்கும் கேம் ஸ்கிரிப்ட் 1 மற்றும் 100 க்கு இடையில் தோராயமாக உருவாக்கப்பட்ட எண்ணை யூகிக்க பயனரை அனுமதிக்கும் வகையில் வடிவமைக்கப்பட்டுள்ளது. இந்த திட்டத்தில் முதல் முக்கியமான உறுப்பு random.randint() செயல்பாடு, இது குறிப்பிட்ட வரம்பிற்குள் (1 முதல் 100 வரை) ஒரு சீரற்ற முழு எண்ணை உருவாக்குகிறது. பயனர் யூகிக்க வேண்டிய ரகசிய எண்ணை வழங்குவதால், இது விளையாட்டின் பின்னணியில் உள்ள முக்கிய தர்க்கத்தை உருவாக்குகிறது. நிரல் பின்னர் பயனரை தங்கள் யூகத்தை உள்ளிட தூண்டுகிறது உள்ளீடு () செயல்பாடு, இது பயனர் உள்ளீட்டை ஒரு சரமாகப் பிடிக்கிறது மற்றும் பின்னர் ஒப்பிடும் நோக்கத்திற்காக முழு எண்ணாக மாற்றப்படுகிறது.
விளையாட்டின் ஓட்டத்தை கட்டுப்படுத்துவதில் லூப் அமைப்பு முக்கிய பங்கு வகிக்கிறது. ஏ போது தோராயமாக உருவாக்கப்பட்ட எண்ணுக்கு எதிராக பயனரின் யூகங்களை தொடர்ந்து சரிபார்க்க லூப் பயன்படுத்தப்படுகிறது. பயனரின் யூகம் தவறாக இருக்கும் வரை, லூப் பிளேயரை "அதிகமாக யூகிக்க" அல்லது "குறைவாக யூகிக்க" என்று தொடர்ந்து கேட்கும். லூப்பின் உள்ளே இருக்கும் நிலை, பயனரின் யூகத்தை ரகசிய எண்ணுடன் ஒப்பிட்டு, விளையாட்டு முன்கூட்டியே முடிவடையாமல் பொருத்தமான கருத்துக்களை வழங்குவதை உறுதி செய்கிறது. இந்த வழியில் பயனர் உள்ளீட்டைக் கையாள்வதன் மூலம், விளையாட்டு ஊடாடத்தக்கதாக மாறி, சரியான பதிலை நோக்கி வீரரை வழிநடத்துகிறது.
பயன்படுத்தி இரண்டாவது ஸ்கிரிப்ட்டில் IPython.display, உடன் அதிநவீன வெளியீட்டு வடிவமைப்பை அறிமுகப்படுத்துகிறோம் கணிதம்(), கணிதக் குறியீட்டில் செய்திகளைக் காண்பிக்கப் பயன்படும் ஒரு செயல்பாடு. இருப்பினும், பல மாறிகள் கொண்ட செய்தியை வடிவமைக்க சதவீதக் குறியீட்டின் (%) தொடக்கப் பயன்பாடு பிழையை ஏற்படுத்தியது: % க்கான ஆதரிக்கப்படாத operand வகை(கள்): 'Math' மற்றும் 'tuple'. ஏனெனில் இந்த பிழை ஏற்படுகிறது கணிதம் சரம் இடைச்செருகல் வடிவத்தை ஆதரிக்கவில்லை. அதற்கு பதிலாக, பைத்தானின் நவீன எஃப்-ஸ்ட்ரிங் வடிவமைப்பைப் பயன்படுத்தி, இது மிகவும் உள்ளுணர்வுடன், இந்த சிக்கலைத் தீர்த்து, பயனர் சரியாக யூகிக்கும்போது, விளையாட்டின் முடிவில் ஒழுங்காக வடிவமைக்கப்பட்ட செய்தியைக் காண்பிக்கும்.
கூடுதலாக, மூன்றாவது ஸ்கிரிப்ட் ஒரு தொகுப்பை ஒருங்கிணைக்கிறது அலகு சோதனைகள் பைத்தானைப் பயன்படுத்தி எழுதப்பட்டது அலகு சோதனை கட்டமைப்பு. இந்த சோதனைகளின் நோக்கம், விளையாட்டின் செயல்பாட்டின் சரிபார்ப்பை தானியங்குபடுத்துவதாகும், பல்வேறு சூழ்நிலைகளில் கேம் எதிர்பார்த்தபடி செயல்படுவதை உறுதிசெய்கிறது. கேலி செய்வதன் மூலம் உள்ளீடு () பயன்படுத்தி செயல்பாடு untest.mock.patch, கைமுறை உள்ளீடு தேவையில்லாமல் சோதனையின் போது பயனர் உள்ளீடுகளை உருவகப்படுத்துகிறோம். இந்த அணுகுமுறை குறியீட்டின் வலிமையை மேம்படுத்துகிறது, டெவலப்பர்கள் வெவ்வேறு நிலைமைகளின் கீழ் விளையாட்டின் தர்க்கத்தை சரிபார்க்க அனுமதிக்கிறது. யூனிட் சோதனைகள் சாத்தியமான பிழைகளை முன்கூட்டியே கண்டறிய உதவுகின்றன, நிரலில் எந்த மாற்றமும் ஏற்கனவே இருக்கும் செயல்பாட்டை உடைக்காது என்பதை உறுதி செய்கிறது.
பைதான் யூகிக்கும் விளையாட்டில் ஆதரிக்கப்படாத ஓபராண்ட் பிழையை சரிசெய்தல்
தீர்வு 1: நிலையான நூலகங்களைப் பயன்படுத்தி ஒரு எளிய பைதான் யூகிக்கும் கேம்
# Importing required libraries
import random
# Function for the guessing game
def guessing_game():
# Generate a random number between 1 and 100
number_to_guess = random.randint(1, 100)
user_guess = None
# Loop until the user guesses the correct number
while user_guess != number_to_guess:
try:
# Get input from the user
user_guess = int(input('Guess a number between 1 and 100: '))
except ValueError:
print('Please enter a valid number.')
continue
# Provide hints for guessing higher or lower
if user_guess < number_to_guess:
print('Guess higher!')
elif user_guess > number_to_guess:
print('Guess lower!')
# Congratulate the user when they guess correctly
print(f'Congratulations! The correct number was {number_to_guess}.')
# Call the function
guessing_game()
IPython.display உடன் பிழைகளைக் கையாளுதல் மற்றும் பைத்தானில் சரம் வடிவமைப்பை சரிசெய்தல்
தீர்வு 2: வடிவமைக்கப்பட்ட வெளியீட்டிற்கு IPython.display ஐப் பயன்படுத்துதல் மற்றும் tuple பிழையை சரிசெய்தல்
# Importing required libraries from IPython
from IPython.display import display, Math
import random
# Function for the guessing game with IPython display
def guessing_game_ipython():
number_to_guess = random.randint(1, 100)
user_guess = None
while user_guess != number_to_guess:
try:
user_guess = int(input('Guess a number between 1 and 100: '))
except ValueError:
print('Please enter a valid number.')
continue
if user_guess < number_to_guess:
print('Guess higher!')
elif user_guess > number_to_guess:
print('Guess lower!')
# Correctly formatting using the f-string instead of % formatting
display(Math(f'Congratulations! The correct number was {number_to_guess} and you typed {user_guess}'))
# Call the function
guessing_game_ipython()
சுற்றுச்சூழலில் சரியான தன்மையை உறுதிப்படுத்த அலகு சோதனைகளைச் சேர்த்தல்
தீர்வு 3: விளையாட்டு தர்க்கத்தை சரிபார்க்க அலகு சோதனைகளை செயல்படுத்துதல்
import unittest
from unittest.mock import patch
import random
# Function for the guessing game to be tested
def guessing_game_tested():
number_to_guess = random.randint(1, 100)
user_guess = None
while user_guess != number_to_guess:
user_guess = int(input('Guess a number between 1 and 100: '))
return number_to_guess, user_guess
# Test class for the guessing game
class TestGuessingGame(unittest.TestCase):
@patch('builtins.input', side_effect=[50, 75, 85, 95, 100])
def test_guessing_game(self, mock_input):
result = guessing_game_tested()
self.assertEqual(result, (100, 100))
# Run the tests
if __name__ == '__main__':
unittest.main()
ஊடாடும் நிரல்களில் காட்சிக்கு பைதான் சரம் வடிவமைப்பை மேம்படுத்துதல்
பைத்தானில் எண் யூகிக்கும் விளையாட்டை உருவாக்குவதற்கான ஒரு முக்கிய அம்சம், நிரல் பயனருடன் எவ்வாறு தொடர்பு கொள்கிறது என்பதுதான். குறிப்பாக, "அதிகமாக யூகிக்கவும்" அல்லது "குறைவாக யூகிக்கவும்" போன்ற செய்திகளைக் காண்பிக்கும் போது, தெளிவான மற்றும் துல்லியமான வடிவமைப்பை உறுதி செய்வது அவசியம். போன்ற நூலகங்களைப் பயன்படுத்தும் போது ஒரு பொதுவான சவால் IPython.display வெளியீட்டு சரங்களை சரியாக வடிவமைக்கிறது. சர இடைக்கணிப்புக்கான சதவீதக் குறியீட்டை (%) பயன்படுத்துவது பாரம்பரியமானது, இது %: 'கணிதம்' மற்றும் 'டூப்பிள்'க்கான ஆதரிக்கப்படாத ஓபராண்ட் வகை(கள்) போன்ற பிழைகளுக்கு வழிவகுக்கும். போன்ற சில நூலகங்கள் காரணமாக இந்த சிக்கல் ஏற்படுகிறது கணிதம்(), f-string வடிவமைப்பு போன்ற மாற்று அணுகுமுறைகள் தேவை.
நவீன பைதான் நிரலாக்கத்தில், மாறிகளை சரங்களில் செருகுவதற்கு f-ஸ்ட்ரிங்ஸ் மிகவும் திறமையான மற்றும் படிக்கக்கூடிய வழியை வழங்குகிறது. எடுத்துக்காட்டாக, "வாழ்த்துக்கள்! சரியான எண் %g" என்று எழுதுவதற்குப் பதிலாக, நீங்கள் ஒரு f-ஸ்ட்ரிங் பயன்படுத்தலாம் f'Congratulations! The correct number was {number}'. எஃப்-சரங்கள் உங்களை நேரடியாக வெளிப்பாடுகளை உட்பொதிக்க அனுமதிக்கின்றன, குறியீட்டை மிகவும் சுருக்கமாக ஆக்குகின்றன மற்றும் பாரம்பரிய சரம் இடைக்கணிப்புடன் தொடர்புடைய அபாயங்களை நீக்குகின்றன. இது வாசிப்புத்திறனை அதிகரிப்பது மட்டுமல்லாமல் பொதுவான வடிவமைப்பு பிழைகளைத் தடுக்கிறது.
எஃப்-ஸ்ட்ரிங்ஸைப் பயன்படுத்துவதைத் தவிர, ஊடாடும் நிரல்களை உருவாக்கும் போது மற்றொரு முக்கியமான கருத்தில் பயனர் உள்ளீடு சரிபார்ப்பு ஆகும். பயனர்களிடமிருந்து உள்ளீட்டை ஏற்கும் போது, குறிப்பாக யூகங்கள் மீண்டும் மீண்டும் உள்ளிடப்படும் கேமில், முழு எண் அல்லாத உள்ளீடுகள் போன்ற சாத்தியமான விதிவிலக்குகளைக் கையாள்வது இன்றியமையாதது. செயல்படுத்துகிறது try-except தவறான உள்ளீடு காரணமாக நிரல் செயலிழக்காமல் தடுக்கிறது. மாறாக, செல்லுபடியாகும் தரவை உள்ளிடுமாறு பயனரை மனதாரத் தூண்டும், இதன் மூலம் ஒட்டுமொத்த பயனர் அனுபவத்தை மேம்படுத்தும். இந்த உகந்த சரம் வடிவமைப்பு மற்றும் உள்ளீடு சரிபார்ப்பு ஆகியவற்றின் கலவையானது மிகவும் வலுவான மற்றும் பயனர் நட்பு பைதான் பயன்பாடுகளுக்கு வழிவகுக்கிறது.
பைதான் யூகிக்கும் விளையாட்டு மற்றும் பிழைகள் பற்றி அடிக்கடி கேட்கப்படும் கேள்விகள்
- "%க்கான ஆதரிக்கப்படாத operand type(s): 'Math' மற்றும் 'tuple'" பிழையின் அர்த்தம் என்ன?
- போது இந்த பிழை ஏற்படுகிறது Math() செயல்பாடு தவறான சரம் வடிவமைப்பில் பயன்படுத்தப்படுகிறது. சதவீத குறியீட்டை (%) f-strings மூலம் மாற்றுவது இந்த சிக்கலை தீர்க்கிறது.
- பைத்தானில் சதவிகிதம் (%) முறையில் எஃப்-ஸ்ட்ரிங்ஸை ஏன் பயன்படுத்த வேண்டும்?
- F-ஸ்ட்ரிங்ஸ் பாரம்பரியத்துடன் ஒப்பிடும்போது படிக்கக்கூடிய மற்றும் திறமையான வடிவமைப்பை வழங்குகின்றன % முறை. அவை சிக்கலான சரம் வடிவமைப்பில் ஏற்படும் பிழைகளின் அபாயத்தையும் குறைக்கின்றன.
- யூகிக்கும் கேமில் தவறான பயனர் உள்ளீட்டை எவ்வாறு கையாள்வது?
- நீங்கள் ஒரு பயன்படுத்தலாம் try-except பயனர் முழு எண் அல்லாத தரவை உள்ளிடும்போது ValueError போன்ற பிழைகளைப் பிடிக்க தடுக்கவும், விளையாட்டு சீராக தொடர்வதை உறுதி செய்கிறது.
- பங்கு என்ன random.randint() இந்த விளையாட்டில்?
- random.randint() விளையாட்டில் பயனர் யூகிக்க, குறிப்பிட்ட வரம்பிற்குள் (1 முதல் 100 வரை) சீரற்ற எண்ணை உருவாக்குகிறது.
- எப்படி செய்கிறது while யூகிக்கும் விளையாட்டில் லூப் உதவியா?
- தி while பயனர் தோராயமாக உருவாக்கப்பட்ட எண்ணை சரியாக யூகிக்கும் வரை கேம் இயங்குவதை லூப் உறுதி செய்கிறது.
பைதான் யூக விளையாட்டுகளில் வடிவமைப்பு பிழைகளை சரிசெய்தல்
சரம் வடிவமைப்புச் சிக்கலைத் தீர்த்துவிட்டால், பைத்தானில் யூகிக்கும் விளையாட்டு சீராக இயங்கும். f-strings ஐப் பயன்படுத்துவதன் மூலம், பிழை தொடர்பானது கணிதம்() மற்றும் tuple தீர்க்கப்பட்டது, ஒரு மென்மையான பயனர் அனுபவத்தை உறுதி செய்கிறது. இந்த நவீன வடிவமைப்பு அணுகுமுறை செயல்படுத்த எளிதானது மற்றும் பொதுவான ஆபத்துக்களைத் தவிர்க்கிறது.
கூடுதலாக, பயனர் உள்ளீடு பிழைகளைக் கையாளுதல் முயற்சி-தவிர தவறான உள்ளீடு காரணமாக கேம் செயலிழக்காமல் தடுக்கிறது. இந்தச் சரிசெய்தல் விளையாட்டை மிகவும் வலிமையானதாகவும், பயனர்களுக்கு ஏற்றதாகவும் ஆக்குகிறது, மேலும் ஏமாற்றமளிக்கும் பிழைகளைச் சந்திக்காமல் ஊடாடும் அனுபவத்தை அனுபவிக்க வீரர்களுக்குத் தேவையான கருத்துக்களை வழங்குகிறது.
பைதான் யூகிக்கும் விளையாட்டுக்கான குறிப்புகள் மற்றும் கூடுதல் ஆதாரங்கள்
- பயன்படுத்துவதை விளக்குகிறது IPython.display மற்றும் கணிதம்() ஊடாடும் நிரல்களில் வடிவமைக்கப்பட்ட வெளியீட்டிற்கான செயல்பாடுகள். மேலும் விவரங்களுக்கு, பார்வையிடவும் IPython ஆவணம் .
- பற்றிய தகவல்களை வழங்குகிறது f-ஸ்ட்ரிங் வடிவமைப்பு பைத்தானில் சுத்தமான சரம் இடைச்செருகல். மேலும் படிக்க, பார்க்கவும் பைதான் அதிகாரப்பூர்வ ஆவணம் .
- பைத்தானைப் பயன்படுத்தி பிழைகள் மற்றும் விதிவிலக்குகளை எவ்வாறு கையாள்வது என்பதை இந்த ஆதாரம் விவரிக்கிறது முயற்சி-தவிர தொகுதிகள். பார்க்கவும் உண்மையான பைதான்: பைதான் விதிவிலக்குகள் .
- பைத்தானின் அடிப்படைகளை உள்ளடக்கியது சீரற்ற யூகிக்கும் கேம்களை உருவாக்குவதில் தொகுதி மற்றும் அதன் பயன்பாடு. முழு குறிப்பு கிடைக்கிறது பைதான் ரேண்டம் தொகுதி .