โดยทั่วไป ชนิดข้อมูลของนิพจน์จะขึ้นอยู่กับชนิดของอาร์กิวเมนต์ กฎนี้ใช้กับโอเปอเรเตอร์ส่วนใหญ่ เช่น เมื่อเราบวกจำนวนเต็มสองตัว ผลลัพธ์ควรเป็นจำนวนเต็ม อย่างไรก็ตาม ในกรณีของการแบ่งแยก มันไม่ได้ผลดีเพราะมีความคาดหวังที่แตกต่างกันสองแบบ บางครั้งเราคาดว่าการหารจะสร้างตัวเลขทศนิยมที่แม่นยำ และในบางครั้งเราต้องการผลลัพธ์จำนวนเต็มปัดเศษลง
โดยทั่วไป คำจำกัดความของ python ของ division(/) ขึ้นอยู่กับอาร์กิวเมนต์เท่านั้น ตัวอย่างเช่นใน python 2.7 การหาร 20/7 เป็น 2 เพราะทั้งสองอาร์กิวเมนต์เป็นจำนวนเต็ม อย่างไรก็ตาม 20./7 จะสร้าง 2.857142857142857 เป็นเอาต์พุตเนื่องจากอาร์กิวเมนต์เป็นตัวเลขทศนิยม
คำจำกัดความข้างต้นของ '/' มักทำให้เกิดปัญหากับแอปพลิเคชันที่ใช้ประเภทข้อมูลที่ผู้เขียนไม่คาดคิด
พิจารณาโปรแกรมง่ายๆ ในการแปลงอุณหภูมิจากเซลเซียสเป็นฟาเรนไฮต์ การแปลงจะให้ผลลัพธ์ที่แตกต่างกันสองแบบขึ้นอยู่กับอินพุต หากผู้ใช้รายหนึ่งระบุอาร์กิวเมนต์จำนวนเต็ม (18) และอาร์กิวเมนต์จุดทศนิยมอื่น (18.0) คำตอบก็ต่างกันโดยสิ้นเชิง แม้ว่าอินพุตทั้งหมดจะมีค่าตัวเลขเท่ากัน
#Conversion of celcius to Fahrendheit in python 2.6 >>> print 18*9/5 + 32 64 >>> print 18.0*9/5 + 32 64.4 >>> 18 == 18.0 True
จากด้านบน เราจะเห็นได้ว่าเมื่อเราผ่าน 18.0 เราจะได้เอาต์พุตที่ถูกต้อง และเมื่อเราผ่าน 18 เราได้รับเอาต์พุตที่ไม่ถูกต้อง ลักษณะการทำงานนี้เป็นเพราะใน python 2.x ตัวดำเนินการ "/" ทำงานเป็นตัวแบ่งพื้นในกรณีที่อาร์กิวเมนต์ทั้งหมดเป็นจำนวนเต็ม อย่างไรก็ตาม หากหนึ่งในอาร์กิวเมนต์เป็นค่าทศนิยม ตัวดำเนินการ “/” จะส่งกลับค่าทศนิยม
ฟังก์ชันการแปลงที่ชัดเจน (เช่น float(x)) สามารถช่วยป้องกันสิ่งนี้ได้ อย่างไรก็ตาม แนวคิดสำหรับ python นั้นควรเป็นภาษาที่เรียบง่ายและกระจัดกระจาย โดยไม่ต้องมีการแปลงจำนวนมากเพื่อครอบคลุมกรณีที่หายากของประเภทข้อมูลที่ไม่คาดคิด เริ่มต้นด้วยเวอร์ชัน Python 2.2 มีการเพิ่มตัวดำเนินการหารใหม่เพื่อชี้แจงสิ่งที่คาดหวัง ตัวดำเนินการสามัญ / ตัวดำเนินการจะส่งคืนผลลัพธ์ทศนิยมในอนาคต ตัวดำเนินการส่วนพิเศษ // จะแสดงผลแบบปัดเศษลง
>>> # Python 2.7 program to demonstrate the use of "//" for both integers and floating point number >>> print 9//2 4 >>> print -9//2 -5 >>> print 9.0//2 4.0 >>> print -9.0//2 -5.0
ปฏิบัติการดิวิชั่นใน Python 3.x
ใน python 3.x ข้อบกพร่องที่กล่าวถึงข้างต้นจะถูกลบออกและตัวดำเนินการ '/' ทำการหารจุดทศนิยมสำหรับอาร์กิวเมนต์ทั้งจำนวนเต็มและทศนิยม
>>> #Conversion of celcius to Fahrendheit in python 3.x >>> #Passing 18 (integer) >>> print (18*9/5 + 32) 64.4 >>> #Passing 18.0(float) >>> print(18.0*9/5 + 32) 64.4
เมื่อเราส่งอาร์กิวเมนต์ +ve หรือ –ve ก็ไม่ต่างกัน
>>> print(9/2) 4.5 >>> print(-9/2) -4.5 >>> print(9.0/2) 4.5 >>> print(-9.0/2) -4.5