এই আর্টিকেলে আমরা নিচের সমস্যা স্টেটমেন্টের সমাধান শিখব।
সমস্যা স্টেটমেন্ট - আমাদের একটি স্ট্রিং দেওয়া আছে, আমাদের বিল্ট-ইন ফাংশন ব্যবহার না করে স্ট্রিংয়ে উপস্থিত আপারকেস এবং লোয়ারকেস ক্যারেক্টার সংখ্যা কাউন্ট করতে হবে।
এটি সহজে islower() এবং isupper() ফাংশন দিয়ে সমাধান করা যায়। কিন্তু এখানে কনস্ট্রেইন্ট হচ্ছে বিল্ট-ইন ফাংশন ব্যবহার করা যাবে না। তাই আমরা ক্যারেক্টারগুলোর ASCII ভ্যালু ব্যবহার করব।
ord() ফাংশন ব্যবহার করে স্ট্রিংয়ে থাকা প্রতিটি ক্যারেক্টারের ASCII ভ্যালু কম্পিউট করে তারপর আপারকেস এবং লোয়ারকেস চেক করব।
উদাহরণ
def upperlower(string):
upper = 0
lower = 0
for i in range(len(string)):
# লোয়ারকেসের জন্য
if (ord(string[i]) >= 97 and ord(string[i]) <= 122):
lower += 1
# আপারকেসের জন্য
elif (ord(string[i]) >= 65 and ord(string[i]) <= 90):
upper += 1
print('Lower case characters = ' + str(lower))
print('Upper case characters = ' + str(upper))
# ড্রাইভার কোড
string = 'TutorialsPoint'
upperlower(string)
আউটপুট
Lower case characters = 12 Upper case characters = 2

সব ভেরিয়েবল লোকাল স্কোপে ডিক্লেয়ার করা হয়েছে এবং তাদের রেফারেন্স উপরের ফিগার থেকে দেখা যাচ্ছে।
উপসংহার
এই আর্টিকেলে আমরা শিখেছি কীভাবে দেয়া স্ট্রিংয়ে আপারকেস এবং লোয়ারকেস ক্যারেক্টার কাউন্ট করা যায়।