Python যেহেতু PHP-এর মতো স্বয়ংক্রিয়ভাবে টাইপ রূপান্তর করে না, ইচ্ছাকৃতভাবে এদের মধ্যে রূপান্তর করা এমন কিছু যা আপনি ক্রমাগত করবেন — বিশেষ করে যখন টেক্সট ইনপুট পড়েন যা একটি সংখ্যা হয়ে উঠতে হবে।
age_text = "21"
age = int(age_text) # 21, as an actual int
price = float("19.99") # 19.99
text = str(42) # "42"
flag = bool(1) # Trueএকজন ব্যবহারকারী দ্বারা টাইপ করা যেকোনো কিছু — input(), একটি ফর্ম, একটি ফাইলের মাধ্যমে — একটি স্ট্রিং হিসেবে আসে, দেখতে একটি সংখ্যার মতো হলেও। এটি দিয়ে অঙ্ক করতে চাইলে এটি রূপান্তর করা ঐচ্ছিক নয়:
age_text = input("How old are you? ")
age = int(age_text)
print(f"Next year you'll be {age + 1}.")int() কঠোর, ক্ষমাশীল নয়
int("21 years") একটি ValueError তোলে — PHP-এর intval()-এর থেকে আলাদা, যা চুপচাপ শুরুর সংখ্যাগুলো পড়ে বাকিটা উপেক্ষা করে, Python-এর int() পুরো স্ট্রিংটাই একটি বৈধ সংখ্যা হওয়া দাবি করে। অবিশ্বস্ত ইনপুটের রূপান্তরকে try/except-এ মুড়ে দিন (Exception Handling পাঠে দেখানো হয়েছে), সফল হবে ধরে না নিয়ে।
যেকোনো কিছুকে bool-এ কাস্ট করা একটি নির্দিষ্ট নিয়ম মেনে চলে, যা Python প্রতিটি if স্টেটমেন্টের ভেতরেও প্রয়োগ করে:
| মান | bool-এ কাস্ট হয় এভাবে |
|---|---|
| 0, 0.0 | False |
| "" (খালি স্ট্রিং) | False |
| [], (), {}, set() — যেকোনো খালি কালেকশন | False |
| None | False |
| অন্য যেকোনো সংখ্যা বা অ-খালি মান | True |
এই টেবিলটির আকৃতি PHP-এর মতোই, একটি পার্থক্য উল্লেখ করার মতো: Python-এ, স্ট্রিং "0" truthy — এটি একটি অ-খালি স্ট্রিং, ব্যাস, এতে কী আছে তার জন্য কোনো বিশেষ ব্যতিক্রম ছাড়াই। PHP-তে যেমন "0" বনাম "0.0" ফাঁদ ছিল তেমন কিছু এখানে নেই।