วิธีการแปลงสตริงเป็นจำนวนเต็มโดยใช้ Python



บทความนี้จะให้ความรู้โดยละเอียดและครอบคลุมเกี่ยวกับวิธีการแปลงสตริงเป็นจำนวนเต็มในรูปแบบต่างๆพร้อมตัวอย่าง

ในหัวข้อนี้เราจะเรียนรู้เกี่ยวกับวิธีการแปลงสตริงเป็นจำนวนเต็มโดยมีและไม่ใช้ชนิดข้อมูลในตัว เราทราบดีว่าสตริงคือชุดของอักขระที่จัดเรียงตามลำดับล้อมรอบภายในเครื่องหมายคำพูดและจำนวนเต็มคือตัวเลขที่ไม่มีจุดทศนิยมและไม่ได้อยู่ในเครื่องหมายคำพูดประเภทใด ๆ

สตริงเป็นจำนวนเต็ม python





แต่เมื่อคำถามมาถึงวิธีการแปลงข้อมูลประเภทหนึ่งไปยังอีกประเภทหนึ่ง Python มีวิธีง่ายๆในการแปลงซึ่งกันและกัน ในกรณีนี้เราจะเห็นว่าเราสามารถแปลงสตริงเป็นจำนวนเต็มตามลำดับต่อไปนี้ได้อย่างไร:

การใช้ประเภทข้อมูลในตัว



สมมติว่าเมื่อฉันรับอินพุตจากผู้ใช้ด้วยเหตุผลบางประการ Python จะรับมันและส่งคืนเป็นสตริงเอง กล่าวอีกนัยหนึ่งแม้ว่าบางคนจะพิมพ์ตัวเลขเป็นอินพุต Python จะส่งกลับเป็นสตริง

name = input ('What is your name:') print (name) print (type (name)) age = input ('What is your age:') print (age) print (type (age))

เอาท์พุต:

คุณชื่ออะไร: Tyra



ไทระ

คุณอายุเท่าไร: 20

ยี่สิบ

คุณจะเห็นว่าประเภทของชื่อและอายุที่ใช้ในการป้อนข้อมูลคือ 'สตริง'

ตอนนี้สมมติว่าถ้าเราต้องการเพิ่มอายุ 5 เราจะดำเนินการดังต่อไปนี้:

name = input ('What is your name:') print (name) print (type (name)) age = input ('What is your age:') print (age) print (type (age)) print (age +) 5)

เอาท์พุต:

คุณชื่ออะไร: Tyra

ไทระ

คุณอายุเท่าไร: 20

6 วิธีในการใช้คีย์เวิร์ดนี้มีอะไรบ้าง

ยี่สิบ

Traceback (โทรล่าสุดล่าสุด):

ไฟล์ 'C: /Users/prac.py' บรรทัดที่ 9 ใน

พิมพ์ (อายุ + 5)

TypeError: ต้องเป็น str ไม่ใช่ int

เราไม่สามารถเพิ่มอายุ 5 ขวบได้เนื่องจากอายุเป็นประเภท String และเราไม่สามารถคำนวณทางคณิตศาสตร์โดยตรงกับสตริงได้ ดังนั้นเราจึงต้องเปลี่ยนอายุเป็นจำนวนเต็มเนื่องจากเราใช้อายุเป็นอินพุตและ Python จะส่งกลับเป็น String

ดังนั้น.

name = input ('What is your name:') print (name) print (type (name)) age = input ('What is your age:') print (age) print (type (age)) age = int ( อายุ) พิมพ์ (อายุ + 5)

เอาท์พุต:

คุณชื่ออะไร: Tyra

ไทระ

คุณอายุเท่าไร: 20

ยี่สิบ

25

วิธีธรรมดา

สมมติว่าเราไม่ต้องการใช้ฟังก์ชัน int () ในตัวเพื่อแปลงสตริงเป็นจำนวนเต็มดังนั้นเราจึงต้องใช้ไฟล์ วิธีธรรมดา ในการแปลง

นี่คือวิธีง่ายๆในการแปลงโดยไม่ต้องใช้ int ()

'' '' 123 '-> 123' -12332 '-> -12332' '' def str_to_int (input_str): output_int = 0 ถ้า input_str [0] == '-': start_idx = 1 is_negative = True else: start_idx = 0 is_negative = False สำหรับ i ในช่วง (start_idx, len (input_str)): place = 10 ** (len (input_str) - (i + 1)) digit = ord (input_str [i]) - ord ('0') output_int + = place * หลักถ้า is_negative: return -1 * output_int else: return output_int s = '554' x = str_to_int (s) print (type (x)) s = '123' print (str_to_int (s)) s = พิมพ์ '-123' (str_to_int (s))

เอาท์พุต:

123

-123

  • ขั้นแรกเราจะตรวจสอบว่าหมายเลขที่ผู้ใช้ให้มามีเครื่องหมายลบหรือไม่นั่นคือจำนวนลบหรือไม่หากมีอยู่ในตำแหน่งแรกในเครื่องหมายลบเราจะเริ่มการแปลงจากตำแหน่งที่สองซึ่งมีตัวเลข

  • ตัวเลขใดก็ได้สมมติว่า 123 เขียนได้ในแบบฟอร์ม -10 ** 2 * 1 + 10 ** 1 * 2 + 10 ** 0 * 3

  • ในทำนองเดียวกันเราแยกแต่ละหมายเลขอินพุตโดยใช้ คำ (อาร์กิวเมนต์) .

  • ord (‘0’) จะส่งคืน 48, ord (‘1’) ส่งกลับ 49 เป็นต้น

    ปัดสองครั้งเป็น int java
  • ที่นี่เราใช้ตรรกะที่ว่า ord ('1') - ord ('0) = 1, ord (' 2 ') - ord (' 0 ') = 2 เป็นต้นซึ่งทำให้เรามีจำนวนนัยสำคัญที่จะดึงมาจากที่กำหนด หมายเลขอินพุต

  • ในที่สุดผลลัพธ์ที่เราได้รับจากฟังก์ชันเป็นจำนวนเต็มที่ถูกต้องซึ่งเราแปลงจากสตริงอินพุตที่กำหนด

อย่างที่คุณเห็นเราสามารถแปลงสตริงใด ๆ เป็นจำนวนเต็มโดยใช้ฟังก์ชัน int () หรือด้วยวิธีธรรมดาก็ได้

ฉันหวังว่าคุณจะเรียนรู้แนวคิดได้ดีและลองใช้เพื่อให้แม่นยำยิ่งขึ้นและด้วยเหตุนี้เราจึงมาถึงตอนท้ายของบทความนี้เกี่ยวกับการแปลง String เป็น int โดยใช้ Python

มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นของบทช่วยสอน String to Integer และเราจะติดต่อกลับโดยเร็วที่สุด

หากต้องการรับความรู้เชิงลึกเกี่ยวกับ Python พร้อมกับแอพพลิเคชั่นต่างๆคุณสามารถลงทะเบียนเพื่อถ่ายทอดสด ด้วยการสนับสนุนตลอด 24 ชั่วโมงทุกวันและการเข้าถึงตลอดชีวิต