ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง
ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง
เมื่อทำงานกับจำนวนเต็มใน Python คุณควรทราบค่าสูงสุดที่โค้ดของคุณสามารถจัดการได้ ขึ้นอยู่กับว่าคุณใช้ Python 2 หรือ Python 3
Python 2 มีค่าคงที่ Max Int ( sys.maxint ) ที่กำหนดค่าจำนวนเต็มสูงสุด Python 3 ได้ลบขีดจำกัดสูงสุดของจำนวนเต็มและถูกจำกัดโดยทรัพยากรระบบที่โค้ดรันอยู่เท่านั้น
บทความนี้จะอธิบายแนวคิดใน Python เวอร์ชันเก่าและใหม่กว่า คุณจะได้เรียนรู้วิธีเข้าถึงและใช้ขีดจำกัดใน Python 2 และ 3 พร้อมโค้ดตัวอย่าง คุณจะได้เรียนรู้วิธีหลีกเลี่ยงข้อผิดพลาดและหน่วยความจำเกินพิกัดด้วยตัวเลขจำนวนมาก
มาเริ่มกันเลย!
สารบัญ
คำอธิบายด่วนของจำนวนเต็มใน Python
จำนวนเต็มทางคณิตศาสตร์เป็นจำนวนเต็มที่สามารถเป็นค่าบวก ลบ หรือศูนย์ได้ พวกมันมีความแม่นยำไม่จำกัด ซึ่งหมายความว่าพวกมันสามารถเติบโตได้มากเท่าที่หน่วยความจำของระบบจะรองรับได้
ตัวเลขทั้งสามนี้เป็นจำนวนเต็ม:
99
-923,230,101,493
0
ในทางตรงกันข้าม จำนวนลอยแทนจำนวนจริงและเขียนด้วยจุดทศนิยม ทุ่นยังสามารถแสดงในรูปแบบสัญกรณ์วิทยาศาสตร์ นี่คือตัวอย่างของการลอยตัว:
3.14
-0.5
1.23e-4
Python 2 กับ Python 3
การเปลี่ยนแปลงที่สำคัญอย่างหนึ่งจากPython 2เป็นPython 3คือการจัดการจำนวนเต็ม นักพัฒนาส่วนใหญ่จะทำงานกับ Python 3 ในตอนนี้ แต่คุณอาจพบโค้ดรุ่นเก่าที่ทำงานกับจำนวนเต็มจำนวนมาก การทำความเข้าใจความแตกต่างระหว่างสองเวอร์ชันจะเป็นประโยชน์
จำนวนเต็มใน Python 2
Python 2 มีตัวเลข สองประเภทที่สามารถแทนจำนวนเต็มได้: intและlong ประเภท int ถูกจำกัดด้วยค่าสูงสุดและต่ำสุดที่สามารถจัดเก็บได้ ค่าสูงสุดสามารถใช้ได้กับค่าคงที่sys.maxint
แบบยาวสามารถจัดเก็บตัวเลขที่มากกว่าขนาดจำนวนเต็มสูงสุด หากการดำเนินการกับค่า int ธรรมดาสร้างค่าเกินsys.maxintตัวแปลจะแปลงชนิดข้อมูลเป็นแบบยาวโดยอัตโนมัติ
จำนวนเต็มใน Python 3
Python 3 ไม่มีข้อจำกัดด้านขนาด ค่า คงที่ สูงสุดถูกลบออกจาก โมดูล sysใน Python 3 เมื่อรวมประเภทข้อมูล int และ long
ชนิด int ธรรมดาใน Python 3 ไม่มีขอบเขต ซึ่งหมายความว่าสามารถเก็บค่าจำนวนเต็มใดๆ ได้โดยไม่ต้องใช้ประเภทจำนวนเต็มยาวแยกต่างหาก
สิ่งนี้ทำให้โปรแกรมเมอร์จัดการกับจำนวนเต็มได้ง่ายขึ้นโดยไม่ต้องกังวลเกี่ยวกับค่าสูงสุดที่เป็นไปได้หรือการสลับระหว่าง int และ long
Max Int ของ Python: มันคืออะไรและเหตุใดจึงสำคัญ
int สูงสุดของ Python หมายถึงค่าจำนวนเต็มสูงสุดที่ล่าม Python สามารถจัดการได้
บางภาษา เช่น C หรือ Java มีขนาดสูงสุดคงที่สำหรับจำนวนเต็มตามพื้นที่จัดเก็บ 32 บิตหรือ 64 บิต Python แตกต่างตรงที่จะปรับจำนวนบิตแบบไดนามิกตามค่าที่จะจัดเก็บ
จำนวนเต็มของ Python สามารถขยายขนาดได้เรื่อยๆ ตราบใดที่เครื่องของคุณมีหน่วยความจำรองรับ สิ่งนี้เรียกว่า "ความแม่นยำโดยพลการ"
นี่ไม่ได้หมายความว่า Python สามารถจัดการ จำนวน อนันต์ได้ ! มีข้อ จำกัด ในทางปฏิบัติเสมอเนื่องจากหน่วยความจำของระบบมี จำกัด
อย่างไรก็ตาม ขีดจำกัดนี้โดยทั่วไปมีขนาดใหญ่มากจนสำหรับการใช้งานจริงส่วนใหญ่ ขีดจำกัดนี้อาจไม่มีที่สิ้นสุดเช่นกัน
วิธีใช้ Sys.MaxInt ใน Python 2
ใน Python 2 คุณสามารถดูค่าจำนวนเต็มสูงสุดที่กำหนดโดยค่า คงที่ sys.maxintดังนี้:
import sys
print("The maximum integer value is: ", sys.maxint)
ค่าคงที่มักใช้เพื่อกำหนดขีดจำกัดบนของลูป โค้ดตัวอย่างนี้ช่วยให้แน่ใจว่า ดัชนี การวนซ้ำไม่เกินขนาดจำนวนเต็มสูงสุด
import sys
for i in range(sys.maxint):
# do some stuff
คุณยังสามารถตรวจสอบอินพุตของผู้ใช้เพื่อให้แน่ใจว่าตัวเลขไม่เกินค่าสูงสุด
วิธีใช้ Sys.MaxSize ใน Python 3
คุณสามารถใช้sys.maxsizeใน Python 3 เพื่อแทนที่sys.maxintใน Python 2
สิ่งสำคัญคือต้องเข้าใจว่าค่านี้ไม่ได้แสดงถึงค่าจำนวนเต็มสูงสุดที่ Python 3 สามารถจัดการได้ คุณสมบัติmaxsizeแสดงค่าสูงสุดของจำนวนเต็มที่สามารถใช้เป็นดัชนีสำหรับโครงสร้างข้อมูลในตัวของ Python เช่น รายการและสตริง
ค่านี้ขึ้นอยู่กับหน่วยความจำที่มีอยู่ ดังนั้นอาจมีการเปลี่ยนแปลงระหว่างระบบหรือการกำหนดค่าที่แตกต่างกัน
ค่าที่แน่นอนของsys.maxsizeโดยปกติจะเป็น 2**31 – 1 บนแพลตฟอร์ม 32 บิต และ 2**63 – 1 บนแพลตฟอร์ม 64 บิต ค่าเหล่านี้เป็นค่าสูงสุดที่สามารถใช้สำหรับจำนวนเต็มขนาดคงที่บนแพลตฟอร์มเหล่านั้น
ต่อไปนี้เป็นตัวอย่างของฟังก์ชันที่ใช้sys.maxsizeเพื่อหลีกเลี่ยงการสร้างรายการที่ใหญ่จนล้มเหลวเนื่องจากหน่วยความจำไม่เพียงพอ:
import sys
def create_list(input_number):
if input_number > sys.maxsize:
print("the requested size is too large.")
return
large_list = [0] * input_number
อย่าลืมนำเข้า โมดูล sysก่อนใช้sys.maxsize ไม่ใช่คำหลักในตัว แต่เป็นส่วนหนึ่งของโมดูลsys
วิธีหาจำนวนเต็มสูงสุดในโครงสร้างข้อมูล
ใน Python 2 และ 3 คุณสามารถใช้ฟังก์ชันmax() เพื่อค้นหาค่าสูงสุดในโครงสร้างข้อมูลที่วนซ้ำ ได้เช่น รายการ ทูเพิล หรือset
นี่คือตัวอย่างการค้นหาจำนวนเต็มที่มากที่สุดในรายการ:
numbers = [1, 9999, 35, 820, -5]
max_value = max(numbers)
print(max_value)
รหัสตัวอย่างนี้จะพิมพ์หมายเลข 9999
คู่เทียบคือฟังก์ชัน min() ซึ่งจะส่งคืนค่าต่ำสุด
การค้นหาค่าที่มากที่สุดภายในช่วงเป็นสิ่งสำคัญเมื่อเรียกใช้การคำนวณ เช่น การถดถอยเชิงเส้น หากค่าที่สูงมากเกินขีดจำกัดจำนวนเต็ม คุณอาจพบกับความไม่ถูกต้องหรือข้อผิดพลาดในการคำนวณ
เคล็ดลับ 3 ข้อในการหลีกเลี่ยงปัญหาจำนวนเต็มสูงสุด
ความยืดหยุ่นของ Python ทำให้เกิดข้อเสียหลายประการ
การดำเนินการที่เกี่ยวข้องกับจำนวนเต็มจำนวนมากอาจช้าลงเนื่องจากค่าใช้จ่ายในการจัดการความแม่นยำตามอำเภอใจ
จำนวนเต็มจำนวนมากยังสามารถเพิ่มการใช้หน่วยความจำของโปรแกรมของคุณอย่างมาก ซึ่งอาจนำไปสู่ข้อผิดพลาดของหน่วยความจำ
เคล็ดลับสามประการในการหลีกเลี่ยงปัญหามีดังนี้
เคล็ดลับที่ 1: เลือกประเภทข้อมูลที่เหมาะสม
มีหลายกรณีที่ขนาดที่แน่นอนของค่าจำนวนเต็มของคุณไม่สำคัญ พิจารณาใช้ชนิดข้อมูลขนาดคงที่ที่เล็กลงเมื่อเป็นกรณีนี้
สิ่งนี้จะช่วยหลีกเลี่ยงการใช้หน่วยความจำโดยไม่จำเป็นและทำให้แอปพลิเคชันของคุณทำงานช้าลง
เคล็ดลับ 2: ใช้แนวทางปฏิบัติในการเขียนโปรแกรมอย่างมีประสิทธิภาพ
ระวังการดำเนินการที่จัดการกับจำนวนเต็มจำนวนมากและออกแบบอัลกอริทึมโดยคำนึงถึงสิ่งนี้
ซึ่งอาจเกี่ยวข้องกับการแบ่งการคำนวณออกเป็นส่วนย่อยๆ หรือใช้การประมาณค่าที่ไม่จำเป็นต้องใช้ความแม่นยำที่แน่นอนของตัวเลขจำนวนมาก
เคล็ดลับ 3: ติดตามการใช้หน่วยความจำ
ติดตามการใช้หน่วยความจำของโปรแกรม Python ของคุณและเพิ่มประสิทธิภาพโค้ดของคุณเพื่อลดรอยเท้าของหน่วยความจำ
ซึ่งอาจรวมถึงการลบตัวแปรขนาดใหญ่เมื่อไม่ต้องการอีกต่อไป หรือการใช้เครื่องมือหรือไลบรารีที่ออกแบบมาเพื่อจัดการชุดข้อมูลขนาดใหญ่อย่างมีประสิทธิภาพ
ความคิดสุดท้าย
การทำความเข้าใจค่าจำนวนเต็มสูงสุดที่โค้ด Python ของคุณสามารถจัดการได้นั้นจำเป็นสำหรับการเขียนโปรแกรมที่มีประสิทธิภาพและมีประสิทธิภาพ บทความนี้สำรวจแนวคิดใน Python 2 และ Python 3
คุณได้เรียนรู้วิธีเข้าถึงและใช้ค่าจำนวนเต็มสูงสุดเหล่านี้ใน Python ทั้งสองเวอร์ชัน ไม่ว่าคุณจะทำงานกับ Python 2 หรือ 3 โปรดจำเคล็ดลับของเราในการเพิ่มประสิทธิภาพโค้ดของคุณเพื่อหลีกเลี่ยงการโอเวอร์โหลดหน่วยความจำ
ด้วยความรู้นี้ คุณก็พร้อมที่จะใช้ประโยชน์จากความสามารถในการจัดการจำนวนเต็มของ Python!
ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง
คุณจะได้เรียนรู้วิธีการบันทึกและโหลดวัตถุจากไฟล์ .rds ใน R บล็อกนี้จะครอบคลุมถึงวิธีการนำเข้าวัตถุจาก R ไปยัง LuckyTemplates
ในบทช่วยสอนภาษาการเข้ารหัส DAX นี้ เรียนรู้วิธีใช้ฟังก์ชัน GENERATE และวิธีเปลี่ยนชื่อหน่วยวัดแบบไดนามิก
บทช่วยสอนนี้จะครอบคลุมถึงวิธีการใช้เทคนิค Multi Threaded Dynamic Visuals เพื่อสร้างข้อมูลเชิงลึกจากการแสดงข้อมูลแบบไดนามิกในรายงานของคุณ
ในบทความนี้ ฉันจะเรียกใช้ผ่านบริบทตัวกรอง บริบทตัวกรองเป็นหนึ่งในหัวข้อหลักที่ผู้ใช้ LuckyTemplates ควรเรียนรู้ในขั้นต้น
ฉันต้องการแสดงให้เห็นว่าบริการออนไลน์ของ LuckyTemplates Apps สามารถช่วยในการจัดการรายงานและข้อมูลเชิงลึกต่างๆ ที่สร้างจากแหล่งข้อมูลต่างๆ ได้อย่างไร
เรียนรู้วิธีคำนวณการเปลี่ยนแปลงอัตรากำไรของคุณโดยใช้เทคนิคต่างๆ เช่น การแยกสาขาและการรวมสูตร DAX ใน LuckyTemplates
บทช่วยสอนนี้จะหารือเกี่ยวกับแนวคิดของการทำให้แคชข้อมูลเป็นรูปธรรมและวิธีที่สิ่งเหล่านี้ส่งผลต่อประสิทธิภาพของ DAX ในการให้ผลลัพธ์
หากคุณยังคงใช้ Excel อยู่จนถึงตอนนี้ นี่เป็นเวลาที่ดีที่สุดในการเริ่มใช้ LuckyTemplates สำหรับความต้องการในการรายงานทางธุรกิจของคุณ
เกตเวย์ LuckyTemplates คืออะไร ทั้งหมดที่คุณต้องการรู้