$lang['tuto'] = "ਟਿ utorial ਟੋਰਿਅਲਸ"; ?> ਪਾਈਥਨ ਵਿੱਚ NaN ਆਉਟਪੁੱਟ

ਪਾਈਥਨ ਵਿੱਚ NaN ਆਉਟਪੁੱਟ ਦਾ ਨਿਪਟਾਰਾ ਕਰਨਾ: ਫਾਈਲ-ਆਧਾਰਿਤ ਗਣਨਾਵਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਨੂੰ ਠੀਕ ਕਰਨਾ

Temp mail SuperHeros
ਪਾਈਥਨ ਵਿੱਚ NaN ਆਉਟਪੁੱਟ ਦਾ ਨਿਪਟਾਰਾ ਕਰਨਾ: ਫਾਈਲ-ਆਧਾਰਿਤ ਗਣਨਾਵਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਨੂੰ ਠੀਕ ਕਰਨਾ
ਪਾਈਥਨ ਵਿੱਚ NaN ਆਉਟਪੁੱਟ ਦਾ ਨਿਪਟਾਰਾ ਕਰਨਾ: ਫਾਈਲ-ਆਧਾਰਿਤ ਗਣਨਾਵਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਨੂੰ ਠੀਕ ਕਰਨਾ

ਪਾਈਥਨ ਗਣਨਾ ਵਿੱਚ NaN ਆਉਟਪੁੱਟ ਦੇ ਰਹੱਸ ਨੂੰ ਹੱਲ ਕਰਨਾ

ਪ੍ਰੋਗਰਾਮਿੰਗ ਅਸਾਈਨਮੈਂਟਾਂ 'ਤੇ ਕੰਮ ਕਰਦੇ ਸਮੇਂ, ਖਾਸ ਤੌਰ 'ਤੇ ਫਾਈਲ ਓਪਰੇਸ਼ਨਾਂ ਅਤੇ ਗਣਨਾਵਾਂ ਨੂੰ ਸ਼ਾਮਲ ਕਰਦੇ ਹੋਏ, "NaN" ਵਰਗੇ ਅਚਾਨਕ ਨਤੀਜੇ ਬਹੁਤ ਨਿਰਾਸ਼ਾਜਨਕ ਹੋ ਸਕਦੇ ਹਨ। 🧑‍💻 ਇਹਨਾਂ ਮੁੱਦਿਆਂ ਦਾ ਪੈਦਾ ਹੋਣਾ ਅਸਧਾਰਨ ਨਹੀਂ ਹੈ, ਅਕਸਰ ਕੋਡ ਵਿਸ਼ੇਸ਼ ਮਾਮਲਿਆਂ ਨੂੰ ਸੰਭਾਲਣ ਦੇ ਤਰੀਕੇ ਵਿੱਚ ਸੂਖਮ ਅੰਤਰਾਂ ਦੇ ਕਾਰਨ। ਇੱਕ ਗਲਤ ਲਾਈਨ ਜਾਂ ਗਲਤ ਸਮਝਿਆ ਗਿਆ ਆਉਟਪੁੱਟ ਫਾਰਮੈਟ ਗਲਤੀਆਂ ਦਾ ਕਾਰਨ ਬਣ ਸਕਦਾ ਹੈ ਜੋ ਕਿ ਤਜਰਬੇਕਾਰ ਕੋਡਰਾਂ ਨੂੰ ਵੀ ਸਟੰਪ ਕਰ ਸਕਦਾ ਹੈ।

ਇਸ ਦ੍ਰਿਸ਼ ਵਿੱਚ, ਚੁਣੌਤੀ ਇੱਕ ਫਾਈਲ ਤੋਂ ਸੰਖਿਆਵਾਂ ਨੂੰ ਪੜ੍ਹਨਾ ਅਤੇ ਸਕਾਰਾਤਮਕ ਅਤੇ ਨਕਾਰਾਤਮਕ ਮੁੱਲਾਂ ਲਈ ਵੱਖਰੀ ਔਸਤ ਦੀ ਗਣਨਾ ਕਰਨਾ ਹੈ। ਕੈਚ ਉਹਨਾਂ ਮਾਮਲਿਆਂ ਨੂੰ ਸੰਭਾਲਣਾ ਹੈ ਜਿੱਥੇ ਕੋਈ ਵੀ ਸਕਾਰਾਤਮਕ ਜਾਂ ਨੈਗੇਟਿਵ ਨੰਬਰ ਨਹੀਂ ਹੋ ਸਕਦੇ ਹਨ ਅਤੇ ਉਸ ਅਨੁਸਾਰ "NaN" ਆਉਟਪੁੱਟ ਹੋ ਸਕਦੇ ਹਨ। ਅਜਿਹੀਆਂ ਸਥਿਤੀਆਂ ਕੋਡ ਆਉਟਪੁੱਟ ਨੂੰ ਵਧਾ ਸਕਦੀਆਂ ਹਨ ਜੇਕਰ ਇਹ ਸਪਸ਼ਟ ਤੌਰ 'ਤੇ ਲੋੜਾਂ ਨਾਲ ਮੇਲ ਕਰਨ ਲਈ ਫਾਰਮੈਟ ਨਹੀਂ ਕੀਤੀ ਗਈ ਹੈ।

"NaN" ਵਰਗੇ ਵਿਸ਼ੇਸ਼ ਮੁੱਲਾਂ ਨੂੰ ਸ਼ਾਮਲ ਕਰਨ ਵਾਲੀਆਂ ਗਲਤੀਆਂ ਅਕਸਰ ਪੂੰਜੀਕਰਣ ਜਾਂ ਸਪੇਸਿੰਗ ਵਿੱਚ ਅੰਤਰ ਦੇ ਨਤੀਜੇ ਵਜੋਂ ਹੁੰਦੀਆਂ ਹਨ, ਅਤੇ ਇਹਨਾਂ ਅੰਤਰਾਂ ਨੂੰ ਪਛਾਣਨਾ ਸਹੀ ਆਉਟਪੁੱਟ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਮਹੱਤਵਪੂਰਨ ਹੁੰਦਾ ਹੈ। 💡 ਇਸ ਸਮੱਸਿਆ ਨੂੰ ਹੱਲ ਕਰਨਾ ਨਾ ਸਿਰਫ਼ ਤੁਹਾਡੇ ਪਾਈਥਨ ਹੁਨਰ ਨੂੰ ਸੁਧਾਰਦਾ ਹੈ ਬਲਕਿ ਛੋਟੀਆਂ, ਆਸਾਨੀ ਨਾਲ ਖੁੰਝਣ ਵਾਲੀਆਂ ਗਲਤੀਆਂ ਦਾ ਨਿਪਟਾਰਾ ਕਰਨ ਦੀ ਤੁਹਾਡੀ ਯੋਗਤਾ ਨੂੰ ਵੀ ਵਧਾਉਂਦਾ ਹੈ।

ਜੇਕਰ ਤੁਸੀਂ ਕਿਸੇ ਸਮੱਸਿਆ ਦਾ ਸਾਹਮਣਾ ਕਰ ਰਹੇ ਹੋ ਜਿੱਥੇ ਤੁਹਾਡਾ ਕੋਡ "NaN" ਦੀ ਬਜਾਏ "nan" ਆਉਟਪੁੱਟ ਕਰਦਾ ਹੈ, ਤਾਂ ਚਿੰਤਾ ਨਾ ਕਰੋ। ਅਸੀਂ ਇਸ ਦੇ ਵਾਪਰਨ ਦੇ ਆਮ ਕਾਰਨਾਂ 'ਤੇ ਚੱਲਾਂਗੇ ਅਤੇ ਤੁਹਾਨੂੰ ਦਿਖਾਵਾਂਗੇ ਕਿ ਇਸਨੂੰ ਕਿਵੇਂ ਠੀਕ ਕਰਨਾ ਹੈ ਤਾਂ ਜੋ ਤੁਹਾਡਾ ਕੋਡ ਅਸਾਈਨਮੈਂਟ ਲੋੜਾਂ ਨਾਲ ਇਕਸਾਰ ਹੋਵੇ। ਆਉ ਇਸ ਨੂੰ ਇਕੱਠੇ ਠੀਕ ਕਰਨ ਦੇ ਤਰੀਕੇ ਦੀ ਪੜਚੋਲ ਕਰੀਏ।

ਹੁਕਮ ਵਰਣਨ ਅਤੇ ਵਰਤੋਂ ਦੀ ਉਦਾਹਰਨ
float('NaN') ਇਹ ਕਮਾਂਡ ਇੱਕ ਵਿਸ਼ੇਸ਼ ਫਲੋਟ ਵੈਲਯੂ, “NaN” (ਨੰਬਰ ਨਹੀਂ) ਤਿਆਰ ਕਰਦੀ ਹੈ, ਜੋ ਕਿ ਅਕਸਰ ਇੱਕ ਪਰਿਭਾਸ਼ਿਤ ਨਤੀਜੇ ਨੂੰ ਦਰਸਾਉਣ ਲਈ ਗਣਿਤਿਕ ਗਣਨਾਵਾਂ ਵਿੱਚ ਵਰਤੀ ਜਾਂਦੀ ਹੈ। ਇੱਥੇ, ਇਸਦੀ ਵਰਤੋਂ ਉਹਨਾਂ ਮਾਮਲਿਆਂ ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਜਿੱਥੇ ਸੂਚੀ ਵਿੱਚ ਕੋਈ ਵੀ ਸਕਾਰਾਤਮਕ ਜਾਂ ਨਕਾਰਾਤਮਕ ਸੰਖਿਆਵਾਂ ਮੌਜੂਦ ਨਹੀਂ ਹਨ, ਇੱਕ ਤਰੁੱਟੀ ਸੁੱਟਣ ਦੀ ਬਜਾਏ ਪ੍ਰੋਗਰਾਮ ਦੇ ਆਉਟਪੁੱਟ "NaN" ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਂਦੇ ਹੋਏ।
try...except ValueError ਗਲਤੀ ਨਾਲ ਨਜਿੱਠਣ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ, ਇਹ ਬਲਾਕ ਫਾਈਲ ਵਿੱਚ ਹਰੇਕ ਲਾਈਨ ਨੂੰ ਫਲੋਟ ਵਿੱਚ ਬਦਲਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦਾ ਹੈ। ਜੇਕਰ ਪਰਿਵਰਤਨ ਅਸਫਲ ਹੋ ਜਾਂਦਾ ਹੈ (ਉਦਾਹਰਨ ਲਈ, ਇੱਕ ਗੈਰ-ਸੰਖਿਆਤਮਕ ਲਾਈਨ ਦੇ ਕਾਰਨ), ਇੱਕ ValueError ਨੂੰ ਉਭਾਰਿਆ ਜਾਂਦਾ ਹੈ ਅਤੇ ਉਸ ਲਾਈਨ ਨੂੰ ਛੱਡ ਕੇ ਹੈਂਡਲ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਪ੍ਰੋਗਰਾਮ ਬਿਨਾਂ ਕਿਸੇ ਰੁਕਾਵਟ ਦੇ ਜਾਰੀ ਰਹੇ।
replace('nan', 'NaN') ਇਹ ਸਤਰ ਵਿਧੀ ਇਕਸਾਰ ਆਉਟਪੁੱਟ ਲਈ ਲੋੜੀਂਦੇ ਫਾਰਮੈਟ "NaN" ਨਾਲ ਲੋਅਰਕੇਸ "nan" ਨੂੰ ਬਦਲਦੀ ਹੈ। ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਆਉਟਪੁੱਟ ਫਾਰਮੈਟ ਅਸਾਈਨਮੈਂਟ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨਾਲ ਇਕਸਾਰ ਹੈ, ਜੋ ਕਿ ਕੇਸ-ਸੰਵੇਦਨਸ਼ੀਲ ਹੋ ਸਕਦਾ ਹੈ, ਖਾਸ ਤੌਰ 'ਤੇ ਸਵੈਚਲਿਤ ਟੈਸਟਿੰਗ ਵਾਤਾਵਰਨ ਵਿੱਚ।
sum(numbers) / len(numbers) ਇਹ ਕਮਾਂਡ ਇੱਕ ਸੂਚੀ ਵਿੱਚ ਸਾਰੇ ਤੱਤਾਂ ਦੇ ਜੋੜ ਨੂੰ ਤੱਤਾਂ ਦੀ ਸੰਖਿਆ ਦੁਆਰਾ ਵੰਡ ਕੇ ਔਸਤ ਦੀ ਗਣਨਾ ਕਰਦੀ ਹੈ। ਜੇਕਰ ਸੂਚੀ ਖਾਲੀ ਹੈ, ਤਾਂ ਇਹ ਓਪਰੇਸ਼ਨ ਆਮ ਤੌਰ 'ਤੇ ਇੱਕ ਡਿਵੀਜ਼ਨ ਗਲਤੀ ਸੁੱਟ ਦੇਵੇਗਾ, ਪਰ ਇੱਥੇ, ਇਹ ਸਿਰਫ ਓਪਰੇਸ਼ਨ ਕਰਨ ਲਈ ਇੱਕ ਸ਼ਰਤ ਦੇ ਅੰਦਰ ਬੰਦ ਹੈ ਜਦੋਂ ਤੱਤ ਮੌਜੂਦ ਹੁੰਦੇ ਹਨ।
with open(file_name, 'r') as file ਇਹ ਕਮਾਂਡ ਇੱਕ ਫਾਈਲ ਨੂੰ ਰੀਡ ਮੋਡ ਵਿੱਚ ਖੋਲ੍ਹਦੀ ਹੈ ਅਤੇ ਇਸਨੂੰ ਪੜ੍ਹਨ ਤੋਂ ਬਾਅਦ ਆਪਣੇ ਆਪ ਬੰਦ ਕਰ ਦਿੰਦੀ ਹੈ, ਭਾਵੇਂ ਕੋਈ ਗਲਤੀ ਆਉਂਦੀ ਹੈ। ਇਹ ਸੰਦਰਭ ਪ੍ਰਬੰਧਕ ਪਹੁੰਚ ਫਾਈਲਾਂ ਨੂੰ ਹੱਥੀਂ ਖੋਲ੍ਹਣ ਅਤੇ ਬੰਦ ਕਰਨ ਨਾਲੋਂ ਕੁਸ਼ਲ ਅਤੇ ਸੁਰੱਖਿਅਤ ਹੈ, ਕੋਡ ਵਿੱਚ ਸਰੋਤ ਲੀਕ ਨੂੰ ਘਟਾਉਣਾ।
StringIO() StringIO ਦੀ ਵਰਤੋਂ ਇੱਕ ਅਸਥਾਈ ਬਫਰ ਵਿੱਚ ਪ੍ਰਿੰਟ ਕੀਤੀ ਆਉਟਪੁੱਟ ਨੂੰ ਕੈਪਚਰ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਜਿਸ ਨਾਲ ਟੈਸਟ ਸੂਟ ਫੰਕਸ਼ਨ ਦੇ ਪ੍ਰਿੰਟ ਕੀਤੇ ਆਉਟਪੁੱਟ ਦੀ ਉਮੀਦ ਕੀਤੇ ਨਤੀਜਿਆਂ ਨਾਲ ਤੁਲਨਾ ਕਰ ਸਕਦਾ ਹੈ। ਇਹ ਵਿਸ਼ੇਸ਼ ਤੌਰ 'ਤੇ ਯੂਨਿਟ ਟੈਸਟਾਂ ਵਿੱਚ ਲਾਭਦਾਇਕ ਹੈ ਜਿੱਥੇ ਅਸੀਂ ਪ੍ਰਿੰਟ ਕੀਤੀ ਆਉਟਪੁੱਟ ਨੂੰ ਸਿੱਧਾ ਚੈੱਕ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹਾਂ।
sys.stdout = output ਇਹ ਕਮਾਂਡ ਸਟੈਂਡਰਡ ਆਉਟਪੁੱਟ ਨੂੰ ਇੱਕ ਕਸਟਮ ਬਫਰ (ਆਉਟਪੁੱਟ) ਤੇ ਰੀਡਾਇਰੈਕਟ ਕਰਦੀ ਹੈ, ਜੋ ਟੈਸਟਿੰਗ ਉਦੇਸ਼ਾਂ ਲਈ ਪ੍ਰਿੰਟ ਕੀਤੀ ਸਮੱਗਰੀ ਨੂੰ ਕੈਪਚਰ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ। ਇੱਥੇ, ਇਹ ਪੁਸ਼ਟੀ ਕਰਨ ਲਈ ਯੂਨਿਟ ਟੈਸਟਿੰਗ ਵਿੱਚ ਜ਼ਰੂਰੀ ਹੈ ਕਿ ਆਉਟਪੁੱਟ ਨਿਰਧਾਰਤ ਫਾਰਮੈਟ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ।
self.assertEqual() ਯੂਨਿਟ ਟੈਸਟਿੰਗ ਵਿੱਚ, ਇਹ ਵਿਧੀ ਜਾਂਚ ਕਰਦੀ ਹੈ ਕਿ ਕੀ ਦੋ ਮੁੱਲ ਬਰਾਬਰ ਹਨ। ਜੇਕਰ ਉਹ ਨਹੀਂ ਹਨ, ਤਾਂ ਟੈਸਟ ਫੇਲ ਹੋ ਜਾਂਦਾ ਹੈ। ਇਸ ਸਥਿਤੀ ਵਿੱਚ, ਇਹ ਪ੍ਰਮਾਣਿਤ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ ਕਿ ਫੰਕਸ਼ਨ ਆਉਟਪੁੱਟ ਸੰਭਾਵਿਤ ਸਟ੍ਰਿੰਗ ਫਾਰਮੈਟ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਟੈਸਟਰ ਤੇਜ਼ੀ ਨਾਲ ਅੰਤਰ ਦੀ ਪਛਾਣ ਕਰ ਸਕਦਾ ਹੈ।
tearDown() ਇਹ ਵਿਧੀ ਯੂਨਿਟ ਟੈਸਟਿੰਗ ਵਿੱਚ ਹਰੇਕ ਟੈਸਟ ਤੋਂ ਬਾਅਦ ਸਫਾਈ ਕਾਰਵਾਈਆਂ ਕਰਨ ਲਈ ਵਰਤੀ ਜਾਂਦੀ ਹੈ, ਜਿਵੇਂ ਕਿ ਟੈਸਟਿੰਗ ਲਈ ਬਣਾਈਆਂ ਗਈਆਂ ਅਸਥਾਈ ਫਾਈਲਾਂ ਨੂੰ ਮਿਟਾਉਣਾ। ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਹਰੇਕ ਟੈਸਟ ਇੱਕ ਸਾਫ਼ ਵਾਤਾਵਰਨ ਵਿੱਚ ਚੱਲਦਾ ਹੈ, ਬਚੇ ਹੋਏ ਡੇਟਾ ਵਿੱਚ ਦਖਲਅੰਦਾਜ਼ੀ ਨੂੰ ਰੋਕਦਾ ਹੈ।
math.isnan() ਇਹ ਫੰਕਸ਼ਨ ਜਾਂਚ ਕਰਦਾ ਹੈ ਕਿ ਕੀ ਕੋਈ ਮੁੱਲ "NaN" ਹੈ। ਇੱਥੇ, ਇਸਦੀ ਵਰਤੋਂ "NaN" ਦੀ ਸਿੱਧੀ ਪ੍ਰਿੰਟਿੰਗ ਤੋਂ ਬਚਣ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਜੇਕਰ ਗਣਨਾ ਕੀਤੀ ਔਸਤ ਪਰਿਭਾਸ਼ਿਤ ਨਹੀਂ ਹੈ, ਆਉਟਪੁੱਟ ਫਾਰਮੈਟ 'ਤੇ ਵਧੇਰੇ ਨਿਯੰਤਰਣ ਦੀ ਪੇਸ਼ਕਸ਼ ਕਰਦਾ ਹੈ।

NaN ਹੈਂਡਲਿੰਗ ਨਾਲ ਔਸਤ ਗਣਨਾ ਲਈ ਹੱਲ ਨੂੰ ਸਮਝਣਾ

ਪਾਈਥਨ ਸਕ੍ਰਿਪਟ ਪ੍ਰਦਾਨ ਕੀਤੀ ਪ੍ਰੋਗਰਾਮਿੰਗ ਵਿੱਚ ਇੱਕ ਆਮ ਸਮੱਸਿਆ ਨਾਲ ਨਜਿੱਠਦੀ ਹੈ: ਇੱਕ ਫਾਈਲ ਤੋਂ ਸੰਖਿਆਵਾਂ ਦੀ ਸੂਚੀ ਪੜ੍ਹਨਾ ਅਤੇ ਖਾਸ ਸਥਿਤੀਆਂ ਦੇ ਅਧਾਰ ਤੇ ਔਸਤ ਦੀ ਗਣਨਾ ਕਰਨਾ। ਇਸ ਸਥਿਤੀ ਵਿੱਚ, ਪ੍ਰੋਗਰਾਮ ਡੇਟਾ ਫਾਈਲ ਤੋਂ ਸਕਾਰਾਤਮਕ ਅਤੇ ਨਕਾਰਾਤਮਕ ਦੋਵਾਂ ਸੰਖਿਆਵਾਂ ਦੀ ਔਸਤ ਦੀ ਗਣਨਾ ਕਰਦਾ ਹੈ। ਇੱਕ ਵਿਲੱਖਣ ਲੋੜ ਸਥਿਤੀਆਂ ਨੂੰ ਸੰਭਾਲਣਾ ਹੈ ਜਿੱਥੇ ਕੋਈ ਸਕਾਰਾਤਮਕ ਜਾਂ ਨਕਾਰਾਤਮਕ ਸੰਖਿਆ ਨਹੀਂ ਹੋ ਸਕਦੀ ਹੈ, ਜਿਸ ਸਥਿਤੀ ਵਿੱਚ ਆਉਟਪੁੱਟ ਨੂੰ ਇੱਕ ਨੰਬਰ ਦੀ ਬਜਾਏ "NaN" ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ। ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਕਿ ਇਹ ਕੁਸ਼ਲਤਾ ਨਾਲ ਕੰਮ ਕਰਦੀ ਹੈ, ਅਧੂਰੇ ਡੇਟਾ ਦੇ ਨਾਲ ਵੀ, ਸਕ੍ਰਿਪਟ ਕੁਝ ਉੱਨਤ ਗਲਤੀ-ਪ੍ਰਬੰਧਨ ਤਕਨੀਕਾਂ ਅਤੇ ਕੰਡੀਸ਼ਨਲ ਤਰਕ ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ। ਇਹ ਪਹੁੰਚ ਨਾ ਸਿਰਫ ਕੋਡ ਵਿੱਚ ਗਲਤੀ-ਪ੍ਰੂਫਿੰਗ ਨੂੰ ਮਜ਼ਬੂਤ ​​​​ਬਣਾਉਂਦੀ ਹੈ ਬਲਕਿ ਇਹ ਵੀ ਦਰਸਾਉਂਦੀ ਹੈ ਕਿ ਕਿਵੇਂ ਪਾਈਥਨ ਗੁੰਮ ਜਾਂ ਅਧੂਰੇ ਡੇਟਾ ਨੂੰ ਆਸਾਨੀ ਨਾਲ ਸੰਭਾਲ ਸਕਦਾ ਹੈ।

ਫਾਈਲ ਸਮੱਗਰੀ ਨੂੰ ਪੜ੍ਹਨ ਲਈ, ਸਕ੍ਰਿਪਟ ਪਹਿਲਾਂ ਪਾਈਥਨ ਦੇ ਸੰਦਰਭ ਪ੍ਰਬੰਧਕ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਨਿਰਧਾਰਤ ਫਾਈਲ ਨੂੰ ਖੋਲ੍ਹਦੀ ਹੈ। ਇਹ ਪਹੁੰਚ ਫਾਈਲ ਨੂੰ ਪੜ੍ਹਨ ਤੋਂ ਬਾਅਦ ਆਪਣੇ ਆਪ ਬੰਦ ਕਰ ਦਿੰਦੀ ਹੈ, ਜਿਸ ਲਈ ਲਾਭਦਾਇਕ ਹੈ ਮੈਮੋਰੀ ਪ੍ਰਬੰਧਨ ਅਤੇ ਫਾਈਲ ਐਕਸੈਸ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਰੋਕਣਾ. "ਵਿਦ ਓਪਨ" ਕਮਾਂਡ ਖਾਸ ਤੌਰ 'ਤੇ ਇਸ ਕਾਰਨ ਲਈ ਚੁਣੀ ਗਈ ਹੈ। ਫਾਈਲ ਲੂਪ ਦੇ ਅੰਦਰ, ਹਰੇਕ ਲਾਈਨ ਨੂੰ ਪ੍ਰੋਸੈਸ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਅਤੇ "ਫਲੋਟ" ਫੰਕਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇੱਕ ਫਲੋਟਿੰਗ-ਪੁਆਇੰਟ ਨੰਬਰ ਵਿੱਚ ਬਦਲਿਆ ਜਾਂਦਾ ਹੈ। ਇਹ ਹਿੱਸਾ ਜ਼ਰੂਰੀ ਹੈ ਕਿਉਂਕਿ ਇਹ ਵਧੇਰੇ ਸਟੀਕ ਗਣਨਾਵਾਂ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ, ਖਾਸ ਕਰਕੇ ਜਦੋਂ ਦਸ਼ਮਲਵ ਸੰਖਿਆਵਾਂ ਨਾਲ ਨਜਿੱਠਣਾ ਹੋਵੇ। ਜੇਕਰ ਸੰਖਿਆ ਨਕਾਰਾਤਮਕ ਹੈ, ਤਾਂ ਇਸਨੂੰ "ਨੈਗੇਟਿਵ" ਨਾਮਕ ਸੂਚੀ ਵਿੱਚ ਜੋੜਿਆ ਜਾਂਦਾ ਹੈ; ਜੇਕਰ ਸਕਾਰਾਤਮਕ ਹੈ, ਤਾਂ ਇਸਨੂੰ "ਸਕਾਰਾਤਮਕ" ਨਾਮਕ ਸੂਚੀ ਵਿੱਚ ਜੋੜਿਆ ਜਾਂਦਾ ਹੈ। ਇਹ ਵਿਭਾਜਨ ਵਰਗੀਕਰਨ ਕੋਡ ਵਿੱਚ ਬਾਅਦ ਵਿੱਚ ਸਕਾਰਾਤਮਕ ਅਤੇ ਨਕਾਰਾਤਮਕ ਸੰਖਿਆਵਾਂ 'ਤੇ ਵੱਖਰੀਆਂ ਗਣਨਾਵਾਂ ਕਰਨ ਲਈ ਇਸਨੂੰ ਸਿੱਧਾ ਬਣਾਉਂਦਾ ਹੈ।

ਫਾਈਲ ਦੇ ਅੰਦਰ ਗੈਰ-ਸੰਖਿਆਤਮਕ ਮੁੱਲਾਂ ਦੀ ਸੰਭਾਵਨਾ ਦੇ ਕਾਰਨ ਇੱਥੇ ਗਲਤੀ ਨੂੰ ਸੰਭਾਲਣਾ ਮਹੱਤਵਪੂਰਨ ਹੈ। ਸਕ੍ਰਿਪਟ ਕਿਸੇ ਵੀ ValueError ਨੂੰ ਫੜਨ ਲਈ "ਕੋਸ਼ਿਸ਼-ਸਿਵਾਏ" ਬਲਾਕ ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ ਜੋ ਉਦੋਂ ਵਾਪਰਦੀ ਹੈ ਜੇਕਰ ਇੱਕ ਲਾਈਨ ਨੂੰ ਫਲੋਟ ਵਿੱਚ ਬਦਲਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ ਹੈ। ਇਹ ਉਹਨਾਂ ਲਾਈਨਾਂ ਨੂੰ ਛੱਡਣ ਲਈ ਮਦਦਗਾਰ ਹੈ ਜਿਹਨਾਂ ਵਿੱਚ ਟੈਕਸਟ ਜਾਂ ਚਿੰਨ੍ਹ ਸ਼ਾਮਲ ਹੋ ਸਕਦੇ ਹਨ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦੇ ਹੋਏ ਕਿ ਸਿਰਫ਼ ਵੈਧ ਨੰਬਰਾਂ 'ਤੇ ਕਾਰਵਾਈ ਕੀਤੀ ਗਈ ਹੈ। ਇੱਕ ਵਾਰ ਸਾਰੀਆਂ ਲਾਈਨਾਂ ਦਾ ਵਰਗੀਕਰਨ ਹੋ ਜਾਣ ਤੋਂ ਬਾਅਦ, ਸਕ੍ਰਿਪਟ ਸਕਾਰਾਤਮਕ ਅਤੇ ਨਕਾਰਾਤਮਕ ਸੂਚੀਆਂ ਦੀ ਔਸਤ ਦੀ ਵੱਖਰੇ ਤੌਰ 'ਤੇ ਗਣਨਾ ਕਰਦੀ ਹੈ। ਜੇਕਰ ਕੋਈ ਵੀ ਸੂਚੀ ਖਾਲੀ ਹੈ, ਤਾਂ ਇਹ ਗਣਨਾ ਕਰਨ ਦੀ ਬਜਾਏ "NaN" ਨੂੰ ਆਉਟਪੁੱਟ ਕਰਦਾ ਹੈ। ਕੋਡ ਦਾ ਇਹ ਹਿੱਸਾ ਕੰਡੀਸ਼ਨਲ ਇਨਲਾਈਨ ਓਪਰੇਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ: ਜੇਕਰ ਸੂਚੀ ਵਿੱਚ ਮੁੱਲ ਹਨ, ਤਾਂ ਇਹ ਔਸਤ ਦੀ ਗਣਨਾ ਕਰਦਾ ਹੈ; ਨਹੀਂ ਤਾਂ, ਇਹ "NaN" ਮੁੱਲ ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ। ਇਹ ਕਿਸੇ ਵੀ ਵੰਡ-ਦਰ-ਜ਼ੀਰੋ ਗਲਤੀਆਂ ਨੂੰ ਰੋਕਦਾ ਹੈ, ਜੋ ਕਿ ਪ੍ਰੋਗਰਾਮ ਦੇ ਕਰੈਸ਼ ਜਾਂ ਅਚਾਨਕ ਵਿਵਹਾਰ ਕਰਨ ਦਾ ਕਾਰਨ ਬਣ ਸਕਦਾ ਹੈ।

ਅੰਤ ਵਿੱਚ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਕਿ ਫਾਰਮੈਟ ਅਸਾਈਨਮੈਂਟ ਦੀਆਂ ਲੋੜਾਂ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ, ਸਕ੍ਰਿਪਟ ਸਪਸ਼ਟ ਤੌਰ 'ਤੇ ਇੱਕ ਬਦਲੀ ਵਿਧੀ ਦੀ ਵਰਤੋਂ ਕਰਕੇ "NaN" ਮੁੱਲ ਨੂੰ ਫਾਰਮੈਟ ਕਰਦੀ ਹੈ। ਇਹ ਕਦਮ ਜ਼ਰੂਰੀ ਹੈ ਕਿਉਂਕਿ ਬਹੁਤ ਸਾਰੇ ਸਿਸਟਮਾਂ ਵਿੱਚ, "NaN" ਮੂਲ ਰੂਪ ਵਿੱਚ "nan" ਵਜੋਂ ਦਿਖਾਈ ਦੇ ਸਕਦਾ ਹੈ। ਸਹੀ ਕੇਸ ਨੂੰ ਲਾਗੂ ਕਰਕੇ, ਸਕ੍ਰਿਪਟ ਅਸਾਈਨਮੈਂਟ ਦੀਆਂ ਖਾਸ ਆਉਟਪੁੱਟ ਉਮੀਦਾਂ ਨਾਲ ਇਕਸਾਰ ਹੋ ਜਾਂਦੀ ਹੈ। ਇਹ ਇੱਕ ਮਾਮੂਲੀ ਵੇਰਵੇ ਵਾਂਗ ਜਾਪਦਾ ਹੈ, ਪਰ ਇਹ ਇਸ ਲਈ ਜ਼ਰੂਰੀ ਹੈ ਆਟੋਮੈਟਿਕ ਟੈਸਟਿੰਗ ਸਿਸਟਮ ਜੋ ਸਹੀ ਆਉਟਪੁੱਟ ਦੀ ਜਾਂਚ ਕਰਦੇ ਹਨ, ਜਿਵੇਂ ਕਿ ਇਸ ਅਸਾਈਨਮੈਂਟ ਵਿੱਚ। ਕੁੱਲ ਮਿਲਾ ਕੇ, ਇਹ ਹੱਲ ਨਾ ਸਿਰਫ਼ ਲੋੜੀਂਦੀਆਂ ਗਣਨਾਵਾਂ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ ਬਲਕਿ ਅਜਿਹਾ ਇਸ ਤਰੀਕੇ ਨਾਲ ਕਰਦਾ ਹੈ ਜੋ ਗਲਤੀ-ਸਹਿਣਸ਼ੀਲ ਅਤੇ ਫਾਰਮੈਟ-ਅਨੁਕੂਲ ਹੈ। ਅਸਾਈਨਮੈਂਟਾਂ, ਪੇਸ਼ੇਵਰ ਪ੍ਰੋਜੈਕਟਾਂ, ਜਾਂ ਰੀਅਲ-ਵਰਲਡ ਡੇਟਾ ਪ੍ਰੋਸੈਸਿੰਗ ਲਈ ਕੋਡ ਲਿਖਣ ਵੇਲੇ ਅਜਿਹੇ ਅਭਿਆਸ ਕੀਮਤੀ ਹੁੰਦੇ ਹਨ, ਜਿੱਥੇ ਅਚਾਨਕ ਇਨਪੁਟ ਨੂੰ ਸੰਭਾਲਣਾ ਮਹੱਤਵਪੂਰਨ ਹੁੰਦਾ ਹੈ। 🧑‍💻

ਇੱਕ ਫਾਈਲ ਤੋਂ ਸਕਾਰਾਤਮਕ ਅਤੇ ਨਕਾਰਾਤਮਕ ਸੰਖਿਆਵਾਂ ਦੀ ਵੱਖਰੀ ਔਸਤ ਦੀ ਗਣਨਾ ਕਰਨਾ

ਪਾਈਥਨ ਬੈਕਐਂਡ ਸਕ੍ਰਿਪਟ ਫਾਈਲ ਡੇਟਾ ਨੂੰ ਪੜ੍ਹਨ, ਔਸਤਾਂ ਦੀ ਗਣਨਾ ਕਰਨ ਅਤੇ ਗੁੰਮ ਹੋਏ ਮੁੱਲਾਂ ਨੂੰ ਮਜ਼ਬੂਤੀ ਨਾਲ ਸੰਭਾਲਣ ਲਈ।

def calculate_averages(file_name):
    """Calculate and print average of negative and positive numbers from a file.
    Args:
        file_name (str): Name of the file containing numbers, one per line.
    Returns:
        None (prints averages directly).
    """
    negatives = []
    positives = []
    # Read the file and categorize numbers
    with open(file_name, 'r') as file:
        for line in file:
            try:
                num = float(line.strip())
                if num < 0:
                    negatives.append(num)
                elif num > 0:
                    positives.append(num)
            except ValueError:
                # Ignore lines that aren't valid numbers
                continue
    # Calculate averages with NaN fallback
    neg_avg = sum(negatives) / len(negatives) if negatives else float('NaN')
    pos_avg = sum(positives) / len(positives) if positives else float('NaN')
    # Print averages to match Pearson's expected format
    print(f"{neg_avg:.1f}".replace('nan', 'NaN'))
    print(f"{pos_avg:.1f}".replace('nan', 'NaN'))

# Call the function with test file
calculate_averages('numbers.txt')

ਮਾਡਯੂਲਰ ਅਤੇ ਮੁੜ ਵਰਤੋਂ ਯੋਗ ਕੋਡ ਨਾਲ ਵੱਖ-ਵੱਖ ਡਾਟਾ ਫਾਰਮੈਟਾਂ ਨੂੰ ਸੰਭਾਲਣਾ

ਪਾਇਥਨ ਬੈਕਐਂਡ ਸਕ੍ਰਿਪਟ ਸੁਧਾਰੀ ਮਾਡਯੂਲਰ ਬਣਤਰ ਅਤੇ ਵੱਖ-ਵੱਖ ਡੇਟਾ ਫਾਰਮੈਟਾਂ ਲਈ ਗਲਤੀ ਹੈਂਡਲਿੰਗ ਦੇ ਨਾਲ।

import math
def calculate_average(numbers):
    """Helper function to calculate average, returning NaN if list is empty."""
    return sum(numbers) / len(numbers) if numbers else float('NaN')

def parse_numbers(file_name):
    """Parse numbers from file, categorize them into positives and negatives."""
    negatives, positives = [], []
    with open(file_name, 'r') as file:
        for line in file:
            try:
                num = float(line.strip())
                if num < 0:
                    negatives.append(num)
                elif num > 0:
                    positives.append(num)
            except ValueError:
                continue
    return negatives, positives

def display_averages(neg_avg, pos_avg):
    """Prints averages in a specific format."""
    neg_output = str(neg_avg) if not math.isnan(neg_avg) else "NaN"
    pos_output = str(pos_avg) if not math.isnan(pos_avg) else "NaN"
    print(neg_output)
    print(pos_output)

# Main function to tie all parts together
def main(file_name):
    negatives, positives = parse_numbers(file_name)
    neg_avg = calculate_average(negatives)
    pos_avg = calculate_average(positives)
    display_averages(neg_avg, pos_avg)

# Execute main function with file input
main('numbers.txt')

ਫਾਈਲ-ਆਧਾਰਿਤ ਔਸਤ ਗਣਨਾ ਪ੍ਰੋਗਰਾਮ ਲਈ ਯੂਨਿਟ ਟੈਸਟਿੰਗ

ਵੱਖ-ਵੱਖ ਇਨਪੁਟ ਦ੍ਰਿਸ਼ਾਂ ਲਈ ਸਹੀ ਔਸਤ ਗਣਨਾ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਪਾਈਥਨ ਯੂਨਿਟ ਟੈਸਟ।

import unittest
from io import StringIO
import sys

class TestCalculateAverages(unittest.TestCase):
    def setUp(self):
        self.file_name = 'test_numbers.txt'

    def test_both_positives_and_negatives(self):
        with open(self.file_name, 'w') as f:
            f.write("-5\n-10\n15\n20\n")
        output = StringIO()
        sys.stdout = output
        main(self.file_name)
        sys.stdout = sys.__stdout__
        self.assertEqual(output.getvalue().strip(), "-7.5\n17.5")

    def test_no_negatives(self):
        with open(self.file_name, 'w') as f:
            f.write("10\n20\n30\n")
        output = StringIO()
        sys.stdout = output
        main(self.file_name)
        sys.stdout = sys.__stdout__
        self.assertEqual(output.getvalue().strip(), "NaN\n20.0")

    def test_no_positives(self):
        with open(self.file_name, 'w') as f:
            f.write("-10\n-20\n-30\n")
        output = StringIO()
        sys.stdout = output
        main(self.file_name)
        sys.stdout = sys.__stdout__
        self.assertEqual(output.getvalue().strip(), "-20.0\nNaN")

    def tearDown(self):
        import os
        os.remove(self.file_name)

# Run the tests
unittest.main()

ਪਾਈਥਨ ਪ੍ਰੋਗਰਾਮਾਂ ਵਿੱਚ NaN ਆਉਟਪੁੱਟ ਨਾਲ ਚੁਣੌਤੀਆਂ ਨੂੰ ਪਾਰ ਕਰਨਾ

ਪਾਈਥਨ ਨਾਲ ਕੰਮ ਕਰਦੇ ਸਮੇਂ, ਖਾਸ ਤੌਰ 'ਤੇ ਡੇਟਾ ਪ੍ਰੋਸੈਸਿੰਗ ਅਸਾਈਨਮੈਂਟਾਂ ਵਿੱਚ, ਕਿਨਾਰੇ ਦੇ ਕੇਸਾਂ ਨੂੰ ਸੰਭਾਲਣਾ ਜਿਵੇਂ ਕਿ ਮੁੱਲ ਗੁੰਮ ਜਾਂ "NaN" ਨਤੀਜੇ ਆਮ ਹਨ ਪਰ ਉਲਝਣ ਵਾਲੇ ਹੋ ਸਕਦੇ ਹਨ। ਇਸ ਦ੍ਰਿਸ਼ਟੀਕੋਣ ਵਿੱਚ, ਇੱਕ ਫਾਈਲ ਤੋਂ ਸਕਾਰਾਤਮਕ ਅਤੇ ਨਕਾਰਾਤਮਕ ਸੰਖਿਆਵਾਂ ਲਈ ਵੱਖਰੀ ਔਸਤ ਦੀ ਗਣਨਾ ਕਰਨੀ ਸਿੱਧੀ ਲੱਗ ਸਕਦੀ ਹੈ, ਪਰ ਉਹਨਾਂ ਸਥਿਤੀਆਂ ਨੂੰ ਸੰਭਾਲਣਾ ਜਿੱਥੇ ਇੱਕ ਸ਼੍ਰੇਣੀ ਗੈਰਹਾਜ਼ਰ ਹੈ, ਥੋੜਾ ਹੋਰ ਸੋਚਣ ਦੀ ਲੋੜ ਹੈ। ਸ਼ਰਤੀਆ ਸਮੀਕਰਨਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਜਿਵੇਂ ਕਿ ਇਨਲਾਈਨ ਜੇ ਬਿਆਨ ਗੁੰਮ ਹੋਏ ਮੁੱਲਾਂ ਨੂੰ ਸ਼ਾਨਦਾਰ ਢੰਗ ਨਾਲ ਸੰਭਾਲਣਾ ਸੰਭਵ ਬਣਾਉਂਦਾ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਜਦੋਂ ਕੋਈ ਮੁੱਲ ਮੌਜੂਦ ਨਹੀਂ ਹੁੰਦਾ ਹੈ (ਜੋ ਕਿ ਇੱਕ ਗਲਤੀ ਦਾ ਕਾਰਨ ਬਣਦਾ ਹੈ), ਤਾਂ ਇੱਕ ਵੰਡ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਦੀ ਬਜਾਏ, ਪ੍ਰੋਗਰਾਮ ਇੱਕ ਕੰਡੀਸ਼ਨਲ ਸਮੀਕਰਨ ਦੀ ਵਰਤੋਂ ਕਰਕੇ "NaN" ਵਾਪਸ ਕਰ ਸਕਦਾ ਹੈ। ਇਹ ਪਹੁੰਚ ਨਾ ਸਿਰਫ਼ ਪ੍ਰੋਗਰਾਮ ਦੇ ਕਰੈਸ਼ਾਂ ਨੂੰ ਰੋਕਦੀ ਹੈ ਸਗੋਂ ਇਹ ਵੀ ਯਕੀਨੀ ਬਣਾਉਂਦੀ ਹੈ ਕਿ ਆਉਟਪੁੱਟ ਇਕਸਾਰ ਰਹੇ, ਜਿਸ ਨਾਲ ਪ੍ਰੋਗਰਾਮ ਨੂੰ ਹੋਰ ਮਜਬੂਤ ਅਤੇ ਡੀਬੱਗ ਕਰਨਾ ਆਸਾਨ ਹੋ ਜਾਂਦਾ ਹੈ।

ਪਾਈਥਨ ਦਾ float('NaN') ਵਿਧੀ ਇੱਥੇ ਇੱਕ ਵਿਲੱਖਣ ਭੂਮਿਕਾ ਨਿਭਾਉਂਦੀ ਹੈ, ਖਾਸ ਤੌਰ 'ਤੇ "NaN" ਜਾਂ "ਨੰਬਰ ਨਹੀਂ" ਵਜੋਂ ਮਾਨਤਾ ਪ੍ਰਾਪਤ ਇੱਕ ਵਿਸ਼ੇਸ਼ ਫਲੋਟ ਮੁੱਲ ਬਣਾਉਂਦਾ ਹੈ। ਇਹ ਵਿਸ਼ੇਸ਼ ਤੌਰ 'ਤੇ ਲਾਭਦਾਇਕ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਡੇਟਾ ਸੈੱਟਾਂ ਨਾਲ ਕੰਮ ਕਰਦੇ ਹੋਏ ਜਿਨ੍ਹਾਂ ਦੇ ਮੁੱਲ ਗੁੰਮ ਹੋ ਸਕਦੇ ਹਨ, ਕਿਉਂਕਿ ਅਜਿਹੇ ਮਾਮਲਿਆਂ ਨੂੰ ਹੋਰ ਜਾਂਚ ਜਾਂ ਵਿਸ਼ੇਸ਼ ਪ੍ਰਬੰਧਨ ਲਈ ਫਲੈਗ ਕਰਨਾ ਅਕਸਰ ਜ਼ਰੂਰੀ ਹੁੰਦਾ ਹੈ। ਜਦੋਂ ਕੋਡ ਨੰਬਰ ਦੀ ਬਜਾਏ "NaN" ਪ੍ਰਿੰਟ ਕਰਦਾ ਹੈ, ਤਾਂ ਇਹ ਉਪਭੋਗਤਾ ਨੂੰ ਦੱਸਦਾ ਹੈ ਕਿ ਕੁਝ ਡਾਟਾ ਪੁਆਇੰਟ ਉਪਲਬਧ ਨਹੀਂ ਸਨ, ਜੋ ਕਿ ਅਸਲ-ਸੰਸਾਰ ਡਾਟਾ ਵਿਸ਼ਲੇਸ਼ਣ ਵਿੱਚ ਕੀਮਤੀ ਜਾਣਕਾਰੀ ਹੈ। ਅਜਿਹੇ "NaN" ਝੰਡੇ ਆਮ ਤੌਰ 'ਤੇ ਉਦਯੋਗਾਂ ਵਿੱਚ ਵਰਤੇ ਜਾਂਦੇ ਹਨ ਜੋ ਡੇਟਾ 'ਤੇ ਨਿਰਭਰ ਕਰਦੇ ਹਨ, ਜਿਵੇਂ ਕਿ ਵਿੱਤ ਜਾਂ ਸਿਹਤ ਸੰਭਾਲ, ਜਿੱਥੇ ਸਹੀ ਗੁੰਮ ਡੇਟਾ ਹੈਂਡਲਿੰਗ ਸਮੁੱਚੇ ਵਿਸ਼ਲੇਸ਼ਣ ਨਤੀਜਿਆਂ ਨੂੰ ਪ੍ਰਭਾਵਤ ਕਰ ਸਕਦੀ ਹੈ। 📊

ਬਹੁਤ ਸਾਰੇ ਪ੍ਰੋਗਰਾਮਰਾਂ ਲਈ, ਆਉਟਪੁੱਟ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਫਾਰਮੈਟ ਕਰਨਾ ਵੀ ਬਰਾਬਰ ਮਹੱਤਵਪੂਰਨ ਹੈ। ਆਟੋਮੇਟਿਡ ਟੈਸਟਿੰਗ ਸਿਸਟਮ ਅਕਸਰ ਸਟੀਕ ਆਉਟਪੁੱਟ ਦੀ ਜਾਂਚ ਕਰਦੇ ਹਨ, ਜਿਵੇਂ ਕਿ ਇਸ ਉਦਾਹਰਨ ਵਿੱਚ, ਜਿੱਥੇ "nan" ਨੂੰ ਫਲੈਗ ਕੀਤਾ ਗਿਆ ਸੀ ਕਿਉਂਕਿ ਇਹ ਵੱਡੇ ਅੱਖਰ "NaN" ਦੀ ਬਜਾਏ ਲੋਅਰਕੇਸ ਸੀ। ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ replace('nan', 'NaN') ਵਿਧੀ ਯਕੀਨੀ ਬਣਾਉਂਦੀ ਹੈ ਕਿ ਪ੍ਰੋਗਰਾਮ ਦਾ ਆਉਟਪੁੱਟ ਇਹਨਾਂ ਸਖਤ ਲੋੜਾਂ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ। ਨਿਯੰਤਰਣ ਦਾ ਇਹ ਪੱਧਰ ਮਹੱਤਵਪੂਰਨ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਵਾਤਾਵਰਣ ਵਿੱਚ ਕੰਮ ਕਰਦੇ ਹੋਏ ਜਿੱਥੇ ਡੇਟਾ ਪ੍ਰਸਤੁਤੀ ਵਿੱਚ ਇਕਸਾਰਤਾ ਦੀ ਉਮੀਦ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਹਨਾਂ ਤਕਨੀਕਾਂ ਵਿੱਚ ਮੁਹਾਰਤ ਹਾਸਲ ਕਰਨ ਨਾਲ ਨਾ ਸਿਰਫ਼ ਪਾਇਥਨ ਵਿੱਚ ਤੁਹਾਡਾ ਭਰੋਸਾ ਵਧਦਾ ਹੈ ਬਲਕਿ ਤੁਹਾਨੂੰ ਅਸਲ-ਸੰਸਾਰ ਦੇ ਦ੍ਰਿਸ਼ਾਂ ਲਈ ਵੀ ਤਿਆਰ ਕਰਦਾ ਹੈ ਜਿੱਥੇ ਤਕਨੀਕੀ ਸ਼ੁੱਧਤਾ ਅਤੇ ਵੇਰਵੇ ਵੱਲ ਧਿਆਨ ਦੋਵੇਂ ਜ਼ਰੂਰੀ ਹਨ।

ਪਾਈਥਨ NaN ਅਤੇ ਗਲਤੀ ਨੂੰ ਸੰਭਾਲਣ ਬਾਰੇ ਆਮ ਸਵਾਲ

  1. ਕੀ ਕਰਦਾ ਹੈ float('NaN') ਪਾਈਥਨ ਵਿੱਚ ਕਰੋ?
  2. ਇਹ ਕਮਾਂਡ "NaN" (ਨੰਬਰ ਨਹੀਂ) ਵਜੋਂ ਮਾਨਤਾ ਪ੍ਰਾਪਤ ਇੱਕ ਵਿਸ਼ੇਸ਼ ਫਲੋਟ ਮੁੱਲ ਬਣਾਉਂਦਾ ਹੈ। ਇਹ ਉਹਨਾਂ ਮਾਮਲਿਆਂ ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਲਾਭਦਾਇਕ ਹੈ ਜਿੱਥੇ ਇੱਕ ਗਣਨਾ ਪਰਿਭਾਸ਼ਿਤ ਨਹੀਂ ਹੈ ਜਾਂ ਜਦੋਂ ਤੁਹਾਨੂੰ ਆਪਣੇ ਪ੍ਰੋਗਰਾਮ ਵਿੱਚ ਗੁੰਮ ਹੋਏ ਡੇਟਾ ਨੂੰ ਫਲੈਗ ਕਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ।
  3. ਮੈਂ ਇਹ ਕਿਵੇਂ ਯਕੀਨੀ ਬਣਾ ਸਕਦਾ ਹਾਂ ਕਿ ਮੇਰਾ ਆਉਟਪੁੱਟ ਖਾਸ ਫਾਰਮੈਟਿੰਗ ਲੋੜਾਂ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ?
  4. ਵਰਗੇ ਤਰੀਕਿਆਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ replace() ਤੁਹਾਨੂੰ ਇਹ ਨਿਯੰਤਰਣ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ ਕਿ ਤੁਹਾਡਾ ਆਉਟਪੁੱਟ ਕਿਵੇਂ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ। ਉਦਾਹਰਣ ਲਈ, replace('nan', 'NaN') ਇਹ ਯਕੀਨੀ ਬਣਾ ਸਕਦਾ ਹੈ ਕਿ ਤੁਹਾਡੇ "NaN" ਮੁੱਲ ਸਹੀ ਕੇਸ ਵਿੱਚ ਦਿਖਾਈ ਦੇਣ, ਜਿਵੇਂ ਕਿ ਕੁਝ ਟੈਸਟਿੰਗ ਪ੍ਰਣਾਲੀਆਂ ਵਿੱਚ ਲੋੜੀਂਦਾ ਹੈ।
  5. ਕਿਉਂ ਹੈ try...except ਫਾਈਲ-ਅਧਾਰਿਤ ਪ੍ਰੋਗਰਾਮਾਂ ਵਿੱਚ ਮਹੱਤਵਪੂਰਨ?
  6. try...except ਉਹਨਾਂ ਮਾਮਲਿਆਂ ਵਿੱਚ ਗਲਤੀ ਸੰਭਾਲਣ ਲਈ ਬਲਾਕ ਮਹੱਤਵਪੂਰਨ ਹੈ ਜਿੱਥੇ ਲਾਈਨਾਂ ਵਿੱਚ ਅਵੈਧ ਡੇਟਾ ਹੋ ਸਕਦਾ ਹੈ। ਇਹ ਪ੍ਰੋਗਰਾਮ ਨੂੰ ਕਰੈਸ਼ ਹੋਣ ਤੋਂ ਰੋਕਦਾ ਹੈ ਜੇਕਰ ਇੱਕ ਲਾਈਨ ਨੂੰ ਫਲੋਟ ਵਿੱਚ ਬਦਲਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ, ਕੋਡ ਨੂੰ ਵਧੇਰੇ ਭਰੋਸੇਮੰਦ ਬਣਾਉਂਦਾ ਹੈ।
  7. ਇੱਕ ਇਨਲਾਈਨ ਕੰਡੀਸ਼ਨਲ ਕੀ ਹੈ, ਅਤੇ ਇਸਨੂੰ ਕਿਉਂ ਵਰਤਣਾ ਹੈ?
  8. ਇੱਕ ਇਨਲਾਈਨ ਸ਼ਰਤੀਆ ਵਰਗਾ sum(numbers) / len(numbers) if numbers else float('NaN') ਤੁਹਾਨੂੰ ਕੁਝ ਸ਼ਰਤਾਂ ਪੂਰੀਆਂ ਹੋਣ 'ਤੇ ਹੀ ਓਪਰੇਸ਼ਨ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ ਜਦੋਂ ਸੂਚੀ ਵਿੱਚ ਮੁੱਲ ਹੁੰਦੇ ਹਨ। ਇਹ ਜ਼ੀਰੋ ਦੁਆਰਾ ਵੰਡ ਵਰਗੀਆਂ ਗਲਤੀਆਂ ਤੋਂ ਬਚਣ ਲਈ ਆਦਰਸ਼ ਹੈ।
  9. ਕਿਵੇਂ ਕਰਦਾ ਹੈ with open(file_name, 'r') ਹੁਕਮ ਦਾ ਕੰਮ?
  10. ਇਹ ਕਮਾਂਡ ਇੱਕ ਫਾਈਲ ਨੂੰ ਰੀਡ ਮੋਡ ਵਿੱਚ ਖੋਲ੍ਹਦੀ ਹੈ ਅਤੇ ਇਸਨੂੰ ਬਾਅਦ ਵਿੱਚ ਆਪਣੇ ਆਪ ਬੰਦ ਕਰ ਦਿੰਦੀ ਹੈ। "ਨਾਲ" ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਫਾਈਲ ਸਹੀ ਢੰਗ ਨਾਲ ਬੰਦ ਹੋ ਜਾਂਦੀ ਹੈ, ਜੋ ਸਰੋਤ ਪ੍ਰਬੰਧਨ ਵਿੱਚ ਮਦਦ ਕਰਦੀ ਹੈ ਅਤੇ ਗਲਤੀ ਨਾਲ ਫਾਈਲਾਂ ਨੂੰ ਖੋਲ੍ਹਣ ਤੋਂ ਬਚਾਉਂਦੀ ਹੈ।
  11. ਕੀ ਮੈਂ ਜਾਂਚ ਕਰ ਸਕਦਾ ਹਾਂ ਕਿ ਕੀ ਪਾਈਥਨ ਵਿੱਚ ਇੱਕ ਮੁੱਲ "NaN" ਹੈ?
  12. ਹਾਂ, ਤੁਸੀਂ ਵਰਤ ਸਕਦੇ ਹੋ math.isnan() ਇਹ ਦੇਖਣ ਲਈ ਕਿ ਕੀ ਕੋਈ ਮੁੱਲ "NaN" ਹੈ। ਇਹ ਵਿਸ਼ੇਸ਼ ਤੌਰ 'ਤੇ ਮਦਦਗਾਰ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਤੁਸੀਂ ਗਣਨਾਵਾਂ ਜਾਂ ਆਉਟਪੁੱਟ ਵਿੱਚ "NaN" ਮੁੱਲਾਂ ਨੂੰ ਫਾਰਮੈਟ ਜਾਂ ਬਾਹਰ ਕੱਢਣਾ ਚਾਹੁੰਦੇ ਹੋ।
  13. ਸਵੈਚਲਿਤ ਗਰੇਡਿੰਗ ਵਿੱਚ ਫਾਰਮੈਟਿੰਗ ਇਕਸਾਰਤਾ ਮਹੱਤਵਪੂਰਨ ਕਿਉਂ ਹੈ?
  14. ਸਵੈਚਲਿਤ ਸਿਸਟਮ ਸਹੀ ਫਾਰਮੈਟਿੰਗ 'ਤੇ ਨਿਰਭਰ ਕਰਦੇ ਹਨ, ਇਸਲਈ ਮਾਮੂਲੀ ਅੰਤਰ (ਜਿਵੇਂ ਕਿ "NaN" ਦੀ ਬਜਾਏ "nan") ਗਲਤੀਆਂ ਦਾ ਕਾਰਨ ਬਣ ਸਕਦੇ ਹਨ। ਇਕਸਾਰ ਤਰੀਕਿਆਂ ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਜਿਵੇਂ ਕਿ replace() ਫਾਰਮੈਟਿੰਗ ਲਈ ਇਹਨਾਂ ਮੁੱਦਿਆਂ ਨੂੰ ਰੋਕਦਾ ਹੈ।
  15. ਪਾਈਥਨ ਵਿੱਚ ਸੂਚੀਆਂ ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਡੇਟਾ ਨੂੰ ਸ਼੍ਰੇਣੀਬੱਧ ਕਰਨਾ ਕਿਵੇਂ ਸੌਖਾ ਬਣਾਉਂਦਾ ਹੈ?
  16. ਸੂਚੀਆਂ ਤੁਹਾਨੂੰ ਸਕਾਰਾਤਮਕ ਅਤੇ ਨਕਾਰਾਤਮਕ ਵਰਗੀਆਂ ਸ਼੍ਰੇਣੀਆਂ ਵਿੱਚ ਡੇਟਾ ਨੂੰ ਵੱਖ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦੀਆਂ ਹਨ, ਜੋ ਹਰੇਕ ਸ਼੍ਰੇਣੀ ਲਈ ਵੱਖਰੇ ਅੰਕੜਿਆਂ ਦੀ ਗਣਨਾ ਨੂੰ ਸਿੱਧਾ ਬਣਾਉਂਦਾ ਹੈ। ਸ਼ਰਤਾਂ ਦੇ ਅਧਾਰ ਤੇ ਸੂਚੀਆਂ ਵਿੱਚ ਮੁੱਲ ਜੋੜਨਾ ਕੁਸ਼ਲ ਹੈ ਅਤੇ ਕੋਡ ਨੂੰ ਵਿਵਸਥਿਤ ਰੱਖਦਾ ਹੈ।
  17. ਇਨਲਾਈਨ ਕੰਡੀਸ਼ਨਲ ਕੀ ਹਨ, ਅਤੇ ਉਹਨਾਂ ਨੂੰ ਕਦੋਂ ਵਰਤਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ?
  18. ਇਨਲਾਈਨ ਕੰਡੀਸ਼ਨਲ ਸੰਖੇਪ ਇੱਕ-ਲਾਈਨ ਸਟੇਟਮੈਂਟਾਂ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੇ ਹਨ ਜੋ ਕੋਡ ਨੂੰ ਸਿਰਫ਼ ਤਾਂ ਹੀ ਲਾਗੂ ਕਰਦੇ ਹਨ ਜੇਕਰ ਕੋਈ ਸ਼ਰਤ ਪੂਰੀ ਹੁੰਦੀ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਔਸਤ ਦੀ ਗਣਨਾ ਕਰਨਾ ਤਾਂ ਹੀ ਜੇਕਰ ਸੂਚੀ ਵਿੱਚ ਮੁੱਲ ਮੌਜੂਦ ਹਨ, ਗਲਤੀਆਂ ਨੂੰ ਰੋਕਦੇ ਹੋਏ।
  19. ਮੈਂ ਟੈਸਟਿੰਗ ਲਈ ਪ੍ਰਿੰਟ ਆਉਟਪੁੱਟ ਨੂੰ ਕਿਵੇਂ ਰੀਡਾਇਰੈਕਟ ਕਰ ਸਕਦਾ ਹਾਂ?
  20. ਵਰਤ ਕੇ StringIO ਅਤੇ sys.stdout ਰੀਡਾਇਰੈਕਸ਼ਨ, ਤੁਸੀਂ ਇਹ ਪੁਸ਼ਟੀ ਕਰਨ ਲਈ ਟੈਸਟਾਂ ਵਿੱਚ ਆਉਟਪੁੱਟ ਕੈਪਚਰ ਕਰ ਸਕਦੇ ਹੋ ਕਿ ਇਹ ਉਮੀਦ ਕੀਤੇ ਨਤੀਜਿਆਂ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ। ਇਹ ਯੂਨਿਟ ਟੈਸਟਿੰਗ ਵਿੱਚ ਇੱਕ ਆਮ ਅਭਿਆਸ ਹੈ ਜਿੱਥੇ ਤੁਸੀਂ ਪ੍ਰੋਗਰਾਮ ਆਉਟਪੁੱਟ ਨੂੰ ਪ੍ਰਮਾਣਿਤ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ।
  21. ਦਾ ਮਕਸਦ ਕੀ ਹੈ tearDown ਯੂਨਿਟ ਟੈਸਟਾਂ ਵਿੱਚ?
  22. ਵਿੱਚ unittest ਫਰੇਮਵਰਕ, tearDown() ਟੈਸਟਾਂ ਤੋਂ ਬਾਅਦ ਸਾਫ਼ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ ਅਸਥਾਈ ਫਾਈਲਾਂ ਨੂੰ ਹਟਾਉਣਾ। ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਹਰੇਕ ਟੈਸਟ ਨਵੇਂ ਵਾਤਾਵਰਨ ਨਾਲ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ, ਟੈਸਟਾਂ ਦੇ ਵਿਚਕਾਰ ਡੇਟਾ ਦਖਲ ਨੂੰ ਰੋਕਦਾ ਹੈ।

ਹੱਲ ਨੂੰ ਸਮੇਟਣਾ

ਇਹ ਅਸਾਈਨਮੈਂਟ ਵਿਸ਼ੇਸ਼ ਕੇਸਾਂ ਨੂੰ ਸੰਭਾਲਣ ਦੀ ਮਹੱਤਤਾ ਨੂੰ ਦਰਸਾਉਂਦੀ ਹੈ, ਜਿਵੇਂ ਕਿ ਪਾਈਥਨ ਵਿੱਚ ਔਸਤਾਂ ਦੀ ਗਣਨਾ ਕਰਦੇ ਸਮੇਂ, ਸਕਾਰਾਤਮਕ ਜਾਂ ਨਕਾਰਾਤਮਕ ਮੁੱਲਾਂ ਦਾ ਗੁੰਮ ਹੋਣਾ। ਕੰਡੀਸ਼ਨਲ ਸਟੇਟਮੈਂਟਾਂ ਅਤੇ ਫਾਰਮੈਟਿੰਗ ਐਡਜਸਟਮੈਂਟਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ, ਤੁਸੀਂ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦੇ ਹੋ ਕਿ "NaN" ਨੂੰ ਲੋੜ ਪੈਣ 'ਤੇ ਵਾਪਸ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਖਾਲੀ ਡਾਟਾ ਸੂਚੀਆਂ ਤੋਂ ਕਿਸੇ ਵੀ ਤਰੁੱਟੀ ਨੂੰ ਰੋਕਦੇ ਹੋਏ।

ਪਾਇਥਨ ਦੇ ਟੂਲ ਜਿਵੇਂ ਕੋਸ਼ਿਸ਼ ਕਰੋ...ਸਿਵਾਏ ਅਤੇ ਫਲੋਟ ('NaN') ਲਚਕਦਾਰ ਤਰੁੱਟੀ ਪ੍ਰਬੰਧਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਅਚਾਨਕ ਡੇਟਾ ਨੂੰ ਸੰਭਾਲਣਾ ਆਸਾਨ ਹੋ ਜਾਂਦਾ ਹੈ। ਅਜਿਹੇ ਅਭਿਆਸ ਪ੍ਰੋਗਰਾਮਰਾਂ ਲਈ ਅਸਾਈਨਮੈਂਟਾਂ, ਆਟੋਮੇਟਿਡ ਟੈਸਟਾਂ, ਅਤੇ ਕਿਸੇ ਵੀ ਸਥਿਤੀ ਨੂੰ ਸਹੀ ਆਉਟਪੁੱਟ ਫਾਰਮੈਟਿੰਗ ਦੀ ਜ਼ਰੂਰਤ ਨਾਲ ਨਜਿੱਠਣ ਲਈ ਅਨਮੋਲ ਹਨ। 🚀

ਹੋਰ ਸਮਝ ਲਈ ਸਰੋਤ ਅਤੇ ਹਵਾਲੇ
  1. ਪਾਈਥਨ ਪ੍ਰੋਗਰਾਮਿੰਗ ਅਸਾਈਨਮੈਂਟਾਂ ਵਿੱਚ NaN ਮੁੱਲਾਂ ਅਤੇ ਗਲਤੀ ਪ੍ਰਬੰਧਨ ਦੇ ਪ੍ਰਬੰਧਨ ਦੀ ਵਿਆਖਿਆ ਕਰਦਾ ਹੈ। 'ਤੇ ਹੋਰ ਵੇਖੋ ਅਸਲੀ ਪਾਈਥਨ: ਪਾਈਥਨ ਅਪਵਾਦ .
  2. ਪਾਈਥਨ ਵਿੱਚ ਫਾਈਲ ਓਪਰੇਸ਼ਨਾਂ ਅਤੇ ਸੰਦਰਭ ਪ੍ਰਬੰਧਨ 'ਤੇ ਇੱਕ ਡੂੰਘਾਈ ਨਾਲ ਨਜ਼ਰ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ, ਇਸ ਅਸਾਈਨਮੈਂਟ ਵਿੱਚ ਡੇਟਾ ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਮਹੱਤਵਪੂਰਨ ਹੈ। 'ਤੇ ਅੱਗੇ ਪੜ੍ਹੋ ਪਾਈਥਨ ਦਸਤਾਵੇਜ਼: ਫਾਈਲਾਂ ਨੂੰ ਪੜ੍ਹਨਾ ਅਤੇ ਲਿਖਣਾ .
  3. ਪਾਈਥਨ ਵਿੱਚ ਫਲੋਟ ਮੁੱਲਾਂ ਦੀ ਵਰਤੋਂ ਅਤੇ ਡੇਟਾ ਵਿਸ਼ਲੇਸ਼ਣ ਕਾਰਜਾਂ ਵਿੱਚ NaN ਦੀ ਵਰਤੋਂ ਬਾਰੇ ਚਰਚਾ ਕਰਦਾ ਹੈ। ਹੋਰ ਲਈ, 'ਤੇ ਜਾਓ W3Schools: Python float() ਫੰਕਸ਼ਨ .
  4. ਪਾਈਥਨ ਦੀ ਇਕਾਈ ਟੈਸਟਿੰਗ ਸਮਰੱਥਾਵਾਂ ਦੇ ਨਾਲ ਆਉਟਪੁੱਟ ਇਕਸਾਰਤਾ ਦੀ ਜਾਂਚ ਕਰਨ ਬਾਰੇ ਸੂਝ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ। ਫੇਸਬੁਕ ਤੇ ਦੇਖੋ ਪਾਈਥਨ ਦਸਤਾਵੇਜ਼: ਯੂਨਿਟ ਟੈਸਟਿੰਗ .