পাইথন 3 এ sys.maxint কি?


162

আমি সর্বাধিক পূর্ণসংখ্যাটি কীভাবে উপস্থাপন করব তা জানার চেষ্টা করেছি এবং আমি ব্যবহার করতে পঠ করেছি "sys.maxint"। তবে পাইথন 3-এ আমি যখন ফোন করি তখন তা পাই:

AttributeError: module 'object' has no attribute 'maxint'

উত্তর:


172

Sys.maxint ধ্রুবকটি সরানো হয়েছে, যেহেতু পূর্ণসংখ্যার মানটির আর সীমা নেই। তবে sys.maxsize কোনও ব্যবহারিক তালিকা বা স্ট্রিং সূচকের চেয়ে বড় হিসাবে পূর্ণসংখ্যার হিসাবে ব্যবহার করা যেতে পারে। এটি বাস্তবায়নের "প্রাকৃতিক" পূর্ণসংখ্যার আকারের সাথে সামঞ্জস্য হয় এবং সাধারণত একই প্ল্যাটফর্মের পূর্ববর্তী রিলিজগুলিতে sys.maxint হিসাবে একই হয় (একই বিল্ড অপশনগুলি ধরে নিয়ে)।

http://docs.python.org/3.1/whatsnew/3.0.html#integers


79

অন্যদের দ্বারা নির্দেশিত হিসাবে, পাইথন 3 এর intসর্বাধিক আকার নেই, তবে আপনার যদি অন্য কোনও intমানের চেয়ে উচ্চমানের গ্যারান্টিযুক্ত এমন কিছু প্রয়োজন হয় তবে আপনি ইনফিনিটির জন্য ভাসমান মানটি ব্যবহার করতে পারেন, যা আপনি পেতে পারেন float("inf")


লিগ্যাসি পাইথনের সাথেও কাজ করে (২.7) - যখন আপনি সমস্ত সম্ভাব্য বাস্তব মানের (যেমন বস্তুর তুলনা করে তালিকার বাছাইয়ের জন্য) চেয়ে বেশি নম্বর ফিরিয়ে আনতে হবে তখন এটি সঠিক উত্তর
অ্যারোন ডি

3
এই পদ্ধতির একটি খারাপ দিক হ'ল যদি আপনি নাম্বা বা সিথন বা অনুরূপের সাথে জিট সংকলন প্রয়োগ করার চেষ্টা করছেন তবে ফ্লোট ইনফ ডাটা অ্যারেগুলির ডেটা ধরণের ক্ষতি করতে পারে। আপনার কাছে সমস্ত পূর্ণসংখ্যার ধরণের পাইথন তালিকার প্রয়োজন হতে পারে যাতে একটি জিট সংকলক স্বয়ংক্রিয়ভাবে উপযুক্ত সি টাইপে রূপান্তর করতে পারে। এটি শাস্ত্রীয় অ্যালগরিদমগুলির জন্য বিশেষত সমালোচিত যেখানে আপনি জিট সরঞ্জামগুলি খাঁটি পাইথন প্রয়োগের তুলনায় আরও দ্রুত তৈরি করতে প্রয়োগ করতে পারেন, তবে এখনও সুবিধার্থে, পরীক্ষার জন্য, ফলব্যাকের জন্য খাঁটি পাইথনটিতে প্রয়োগটি লিখতে চান যদি জিট সংকলক স্থাপন করা পরিবেশে ইনস্টল না করা থাকে ইত্যাদি
এলী

24

পাইথন 3 ints সর্বাধিক নেই।

যদি পাইথনের মতো একইভাবে সংকলন করার সময় যদি আপনার উদ্দেশ্য সি-তে কোনও আন্তের সর্বাধিক আকার নির্ধারণ করা হয় তবে আপনি এটির জন্য স্ট্রাক্ট মডিউলটি ব্যবহার করতে পারেন:

>>> import struct
>>> platform_c_maxint = 2 ** (struct.Struct('i').size * 8 - 1) - 1

পাইথন 3 ইনট অবজেক্টের অভ্যন্তরীণ প্রয়োগের বিশদটি সম্পর্কে আপনি যদি আগ্রহী হন তবে sys.int_infoপ্রতি অঙ্ক এবং অঙ্কের আকারের বিশদটি দেখুন at কোনও সাধারণ প্রোগ্রাম এগুলির যত্ন নেওয়া উচিত নয়।


18

আপনি যদি এমন কোনও সংখ্যা খুঁজছেন যা অন্য সকলের চেয়ে বড়:

পদ্ধতি 1:

float('inf')

পদ্ধতি 2:

import sys
max = sys.maxsize

আপনি যদি এমন একটি সংখ্যা খুঁজছেন যা অন্য সকলের চেয়ে ছোট:

পদ্ধতি 1:

float('-inf')

পদ্ধতি 2:

import sys
min = -sys.maxsize - 1

পদ্ধতি 1 পাইথন 2 এবং পাইথন 3 উভয় ক্ষেত্রেই কাজ করে। পদ্ধতি 2 পাইথন 3 এ কাজ করে। পাইথন 2 তে আমি 2 পদ্ধতিটি ব্যবহার করে দেখিনি।


3

পাইথন 3 এর আর সাইস.ম্যাক্সিন্ট নেই যেহেতু পাইথন 3 এর অন্তর্নির্মিত দৈর্ঘ্যের হয়। Sys.maxint এর পরিবর্তে এতে sys.maxsize রয়েছে; ইতিবাচক আকারের সর্বোচ্চ আকার_আর পিআই_সাইজ_টি t


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.