কম্পিউটার টিউটোরিয়াল

পাইথন: স্ট্রিং থেকে সব ডিজিট বের করা

স্ট্রিং থেকে সব সংখ্যা (ডিজিট) বের করার জন্য split() এবং isdigit() মেথড ব্যবহার করে লিস্ট কম্প্রিহেনশন তৈরি করা হয়।

উদাহরণ


my_string = "python is 12 fun 2 learn"
print("স্ট্রিং:", my_string)

# স্পেস দিয়ে ভাগ করে প্রতিটি শব্দ চেক করা
numbers = [int(word) for word in my_string.split() if word.isdigit()]

print("নাম্বার লিস্ট:", numbers)

আউটপুট


স্ট্রিং: python is 12 fun 2 learn
নাম্বার লিস্ট: [12, 2]

ব্যাখ্যা

  • my_string.split() — স্পেস দিয়ে শব্দগুলোতে ভাগ করে
  • word.isdigit() — শব্দটি পুরোপুরি ডিজিট কিনা চেক করে
  • int(word) — স্ট্রিংকে ইন্টিজারে রূপান্তর করে

সীমাবদ্ধতা

এই পদ্ধতিটি শুধু **স্পেস-সেপারেটেড** সংখ্যা খুঁজে পায়। যেমন:


"abc123def" → []  # খুঁজে পাবে না
"price: $100" → []  # $ চিহ্ন থাকায় isdigit() False

উন্নত পদ্ধতি: Regex (re.findall)


import re

text = "python is 12 fun 2 learn, price $100, version 3.14"
numbers = [int(x) for x in re.findall(r'\d+', text)]
print(numbers)  # [12, 2, 100, 3, 14]

# ডেসিমাল নাম্বার পেতে
decimals = re.findall(r'\d+\.\d+', text)
print(decimals)  # ['3.14']

সব ধরনের সংখ্যা (নেগেটিভ, ডেসিমাল, সاينটিফিক)


import re

text = "temp -5.5, value 1e3, count 42"
# সাইনটিফিক নোটেশন, ডেসিমাল, নেগেটিভ
pattern = r'-?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?'
numbers = [float(x) for x in re.findall(pattern, text)]
print(numbers)  # [-5.5, 1000.0, 42.0]
  1. পাইথনে স্ট্রিং থেকে শুধু ডিজিট বাদে সব ক্যারেক্টার রিমুভ করা

  2. পাইথনে স্ট্রিং থেকে সংখ্যা বের করা

  3. পাইথনে স্ট্রিং থেকে সকল পাঙ্কচুয়েশন সরিয়ে ফেলা

  4. পাইথনে স্ট্রিং শুধু ডিজিট ধারণ করছে কিনা যাচাই করা