Python যেহেতু স্বয়ংক্রিয়ভাবে টাইপ রূপান্তর করে না, ইচ্ছাকৃতভাবে এদের মধ্যে রূপান্তর করা এমন কিছু যা আপনি ক্রমাগত করবেন — বিশেষ করে যখন টেক্সট ইনপুট পড়েন যা একটি সংখ্যা হয়ে উঠতে হবে।
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 তোলে — Python-এর int() পুরো স্ট্রিংটাই একটি বৈধ সংখ্যা হওয়া দাবি করে; এটা শুধু শুরুর সংখ্যাগুলো পড়ে বাকিটা উপেক্ষা করবে না। অবিশ্বস্ত ইনপুটের রূপান্তরকে try/except-এ মুড়ে দিন (Exception Handling পাঠে দেখানো হয়েছে), সফল হবে ধরে না নিয়ে।
যেকোনো কিছুকে bool-এ কাস্ট করা একটি নির্দিষ্ট নিয়ম মেনে চলে, যা Python প্রতিটি if স্টেটমেন্টের ভেতরেও প্রয়োগ করে:
| মান | bool-এ কাস্ট হয় এভাবে |
|---|---|
| 0, 0.0 | False |
| "" (খালি স্ট্রিং) | False |
| [], (), {}, set() — যেকোনো খালি কালেকশন | False |
| None | False |
| অন্য যেকোনো সংখ্যা বা অ-খালি মান | True |
নির্দিষ্টভাবে উল্লেখ করার মতো একটি বিষয়: Python-এ, স্ট্রিং "0" truthy — এটি একটি অ-খালি স্ট্রিং, ব্যাস, এতে কী আছে তার জন্য কোনো বিশেষ ব্যতিক্রম ছাড়াই।
একই int()/str() প্যাটার্ন কালেকশন টাইপের জন্যও কাজ করে — list(), tuple(), set(), আর dict() এক কালেকশন টাইপ থেকে আরেকটি তৈরি করে:
numbers = [1, 2, 2, 3]
unique = set(numbers) # {1, 2, 3} — a set, so duplicates disappear
back_to_list = list(unique) # a list again, order not guaranteed to match the originalSet এ রূপান্তর করা একটি লিস্ট থেকে ডুপ্লিকেট বাদ দেওয়ার একটি দ্রুত, প্রচলিত কৌশল।