আপনি যদি পাইথনে সংখ্যার একটি স্ট্রিংকে সাংখ্যিক মানগুলিতে রূপান্তর করতে চান তবে পূর্ণসংখ্যাতে রূপান্তর করতে int() ব্যবহার করুন এবং ফ্লোটিং পয়েন্ট সংখ্যায় রূপান্তর করতে float() ব্যবহার করুন।
নমুনা কোড সহ এখানে ব্যাখ্যা করা হয়েছে।
- মৌলিক ব্যবহার
- সংখ্যাসূচক স্ট্রিংগুলিকে পূর্ণসংখ্যাতে রূপান্তর করুন:
int()
- সংখ্যার একটি স্ট্রিংকে ফ্লোটিং পয়েন্ট সংখ্যায় রূপান্তর করুন:
float()
- সংখ্যাসূচক স্ট্রিংগুলিকে পূর্ণসংখ্যাতে রূপান্তর করুন:
- বিশেষ ব্যবহার
- বাইনারি, অক্টাল, এবং হেক্সাডেসিমেল নোটেশনের স্ট্রিংকে সংখ্যায় রূপান্তর করে
- সূচকীয় স্বরলিপিতে স্ট্রিংগুলিকে সংখ্যাসূচক মানগুলিতে রূপান্তর করে
- পূর্ণ-প্রস্থ আরবি সংখ্যার স্ট্রিংগুলিকে সংখ্যায় রূপান্তর করুন
- চীনা অক্ষরের একটি স্ট্রিংকে সংখ্যায় রূপান্তর করুন
একটি সাংখ্যিক মানকে একটি স্ট্রিংয়ে রূপান্তর করতে, str() ব্যবহার করুন।
আপনি যদি সংখ্যা বা স্ট্রিংকে বিভিন্ন ফরম্যাটে রূপান্তর করতে চান, তাহলে format() ফাংশন বা স্ট্রিং পদ্ধতি str.format() ব্যবহার করুন। তারপর আপনি 0-ফিল, বাইনারি, অক্টাল, হেক্সাডেসিমেল, সূচকীয় স্বরলিপি ইত্যাদিতে রূপান্তর করতে পারেন। বিস্তারিত জানার জন্য নিম্নলিখিত নিবন্ধটি দেখুন।
- সম্পর্কিত:পাইথনে ফরম্যাট কনভার্সন, ফরম্যাট (0-ফিলিং, এক্সপোনেনশিয়াল নোটেশন, হেক্সাডেসিমেল, ইত্যাদি)
এটি স্ট্রিংগুলির একটি তালিকাকে সংখ্যার তালিকায় রূপান্তর করতে পারে। বিস্তারিত জানার জন্য নিম্নলিখিত নিবন্ধ দেখুন.
- সংখ্যাসূচক স্ট্রিংগুলিকে পূর্ণসংখ্যাতে রূপান্তর করুন:int()
- সংখ্যার একটি স্ট্রিংকে ফ্লোটিং পয়েন্ট সংখ্যায় রূপান্তর করুন:float()
- বাইনারি, অক্টাল, এবং হেক্সাডেসিমেল নোটেশনের স্ট্রিংকে সংখ্যায় রূপান্তর করে
- সূচকীয় স্বরলিপিতে স্ট্রিংগুলিকে সংখ্যাসূচক মানগুলিতে রূপান্তর করে
- পূর্ণ-প্রস্থ আরবি সংখ্যার স্ট্রিংগুলিকে সংখ্যায় রূপান্তর করুন
- চীনা অক্ষরের একটি স্ট্রিংকে সংখ্যায় রূপান্তর করুন
সংখ্যাসূচক স্ট্রিংগুলিকে পূর্ণসংখ্যাতে রূপান্তর করুন:int()
আপনি int() ব্যবহার করতে পারেন সংখ্যার একটি স্ট্রিংকে পূর্ণসংখ্যা টাইপ সংখ্যায় রূপান্তর করতে।
print(int('100'))
print(type(int('100')))
# 100
# <class 'int'>
দশমিক বিন্দু সহ, এবং কমা দ্বারা বিভক্ত স্ট্রিং একটি ValueError হবে।
# print(int('1.23'))
# ValueError: invalid literal for int() with base 10: '1.23'
# print(int('10,000'))
# ValueError: invalid literal for int() with base 10: '10,000'
কমা-ডিলিমিটেড স্ট্রিংগুলিকে রিপ্লেস() পদ্ধতি ব্যবহার করে কমা সরিয়ে (এটি একটি খালি স্ট্রিং দিয়ে প্রতিস্থাপন করে) রূপান্তরিত করা যেতে পারে।
print(int('10,000'.replace(',', '')))
# 10000
সংখ্যার একটি স্ট্রিংকে ফ্লোটিং পয়েন্ট সংখ্যায় রূপান্তর করুন:float()
একটি float() সংখ্যার একটি স্ট্রিংকে একটি ফ্লোটিং-পয়েন্ট নম্বর প্রকারে রূপান্তর করতে ব্যবহার করা যেতে পারে।
print(float('1.23'))
print(type(float('1.23')))
# 1.23
# <class 'float'>
পূর্ণসংখ্যার অংশ বাদ দেওয়া স্ট্রিংগুলি পূর্ণসংখ্যা অংশকে 0 দিয়ে পরিপূরক করে রূপান্তরিত হয়।
print(float('.23'))
# 0.23
পূর্ণসংখ্যা স্ট্রিংগুলিও ফ্লোটিং-পয়েন্ট সংখ্যায় রূপান্তরিত হয়।
print(float('100'))
print(type(float('100')))
# 100.0
# <class 'float'>
বাইনারি, অক্টাল, এবং হেক্সাডেসিমেল নোটেশনের স্ট্রিংকে সংখ্যায় রূপান্তর করে
যদি একটি রেডিক্সকে int() এর দ্বিতীয় আর্গুমেন্ট হিসাবে নির্দিষ্ট করা হয়, তাহলে স্ট্রিংটিকে বাইনারি, অক্টাল, হেক্সাডেসিমেল ইত্যাদি হিসাবে বিবেচনা করে একটি পূর্ণসংখ্যা int-এ রূপান্তর করা যেতে পারে।
print(int('100', 2))
print(int('100', 8))
print(int('100', 16))
# 4
# 64
# 256
আগের উদাহরণগুলির মতো, যদি বাদ দেওয়া হয়, তাহলে সংখ্যাটিকে দশমিক সংখ্যা হিসাবে বিবেচনা করা হয়।
print(int('100', 10))
print(int('100'))
# 100
# 100
যদি রেডিক্স 0 তে সেট করা হয়, রূপান্তরটি স্ট্রিং উপসর্গের উপর ভিত্তি করে। স্ট্রিং উপসর্গ জন্য নীচে দেখুন.
0b
0B
0o
0O
0x
0X
print(int('0b100', 0))
print(int('0o100', 0))
print(int('0x100', 0))
# 4
# 64
# 256
উপসর্গ এবং হেক্স বর্ণমালা হয় বড় হাতের বা ছোট হাতের হতে পারে।
print(int('FF', 16))
print(int('ff', 16))
# 255
# 255
print(int('0xFF', 0))
print(int('0XFF', 0))
print(int('0xff', 0))
print(int('0Xff', 0))
# 255
# 255
# 255
# 255
বাইনারি, অক্টাল এবং হেক্সাডেসিমেল সংখ্যা এবং স্ট্রিংগুলির আন্তঃরূপান্তরের তথ্যের জন্য নিম্নলিখিত নিবন্ধটি দেখুন।
সূচকীয় স্বরলিপিতে স্ট্রিংগুলিকে সংখ্যাসূচক মানগুলিতে রূপান্তর করে
সূচকীয় স্বরলিপির স্ট্রিংগুলিকে float() দিয়ে সরাসরি ফ্লোট টাইপে রূপান্তর করা যেতে পারে।
print(float('1.23e-4'))
print(type(float('1.23e-4')))
# 0.000123
# <class 'float'>
print(float('1.23e4'))
print(type(float('1.23e4')))
# 12300.0
# <class 'float'>
ছোট হাতের e-কেও বড় হাতের E হতে পারে।
print(float('1.23E-4'))
# 0.000123
পূর্ণ-প্রস্থ আরবি সংখ্যার স্ট্রিংগুলিকে সংখ্যায় রূপান্তর করুন
পূর্ণ-প্রস্থ আরবি সংখ্যাগুলিকে int() বা float() দ্বারা সরাসরি সংখ্যায় রূপান্তর করা যেতে পারে।
print(int('100'))
print(type(int('100')))
# 100
# <class 'int'>
print(float('100'))
print(type(float('100')))
# 100.0
# <class 'float'>
যাইহোক, যদি বিয়োগ এবং দশমিক পিরিয়ডের মতো চিহ্নগুলি পূর্ণ-প্রস্থের অক্ষর হয়, তাহলে একটি ValueError তৈরি হবে।
# print(float('ー1.23'))
# ValueError: could not convert string to float: '1.23'
সংখ্যাগুলি পূর্ণ-প্রস্থের অক্ষর হলে সমস্যা ছাড়াই রূপান্তরিত হতে পারে, তবে বিয়োগ এবং দশমিক বিন্দুগুলি অর্ধ-প্রস্থ অক্ষর। রিপ্লেস() পদ্ধতি ব্যবহার করে পূর্ণ-প্রস্থ চিহ্নকে অর্ধ-প্রস্থ চিহ্ন দিয়ে প্রতিস্থাপন করে রূপান্তর সম্ভব।
print(float('-1.23'))
# -1.23
print(float('ー1.23'.replace('ー', '-').replace('.', '.')))
# -1.23
চীনা অক্ষরের একটি স্ট্রিংকে সংখ্যায় রূপান্তর করুন
ইউনিকোডেডাটা মডিউলের unicodedata.numeric() ফাংশনটি একটি একক ইউনিকোড চাইনিজ অক্ষরকে একটি ফ্লোটিং-পয়েন্ট নম্বর টাইপ নম্বরে রূপান্তর করতে ব্যবহার করা যেতে পারে।
এটি একটি একক অক্ষর না হলে, একটি ত্রুটি ঘটবে. এছাড়াও, অ-সংখ্যাসূচক অক্ষর একটি ত্রুটি সৃষ্টি করবে।
import unicodedata
print(unicodedata.numeric('五'))
print(type(unicodedata.numeric('五')))
# 5.0
# <class 'float'>
print(unicodedata.numeric('十'))
# 10.0
print(unicodedata.numeric('参'))
# 3.0
print(unicodedata.numeric('億'))
# 100000000.0
# print(unicodedata.numeric('五十'))
# TypeError: numeric() argument 1 must be a unicode character, not str
# print(unicodedata.numeric('漢'))
# ValueError: not a numeric character