Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python:Pad Zeros

ตัวเลขบางตัวต้องเริ่มต้นด้วยศูนย์หรือศูนย์หลายตัว ตัวอย่างเช่น ID ผู้ใช้อาจต้องมีเลขศูนย์จำนวนหนึ่งเมื่อเริ่มต้น หากต่ำกว่าจำนวนที่กำหนด ดังนั้นหมายเลข ID ทั้งหมดจึงมีความยาวเท่ากัน

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

Python:ใส่ค่าศูนย์เป็นสตริง

เขียนโปรแกรมที่ตรวจสอบว่าหมายเลขตั๋วจับฉลากเป็นผู้ชนะหรือไม่ หมายเลขสลากแต่ละหมายเลขประกอบด้วยสามหมายเลขดังนี้:

022

โปรแกรมของเราจะขอให้ผู้ใช้ใส่หมายเลข หากตัวเลขที่ผู้ใช้ใส่น้อยกว่า 100 ระบบจะเพิ่มศูนย์ที่จุดเริ่มต้นของตัวเลข เพื่อให้แน่ใจว่าโปรแกรมของเราสามารถเปรียบเทียบหมายเลขที่ผู้ใช้ใส่กับหมายเลขสลากที่ชนะ

เริ่มต้นด้วยการกำหนดรายการหมายเลขสลากที่ชนะ:

winners = ["033", "087", "183", "173", "012"]

หมายเลขตั๋วแต่ละหมายเลขถูกจัดรูปแบบเป็นสตริง ถัดไป ให้ผู้ใช้ใส่ตัวเลขโดยใช้วิธีการ input():

to_check = input("Insert a number that you want to check: ")

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

ผู้ใช้ต้องไม่ใส่ตัวเลขที่มีความยาวสามอักขระ เพื่อให้แน่ใจว่าหมายเลขหวยที่ผู้ใช้ใส่ลงในโปรแกรมมีรูปแบบที่ถูกต้อง ให้ใช้ zfill() กระบวนการ. วิธีนี้จะเพิ่มศูนย์ที่จุดเริ่มต้นของตัวเลข

81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้

ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก

เนื่องจากหมายเลขสลากราฟเฟิลมีความยาวสามอักขระ คุณจะต้องใช้ค่า 3 เป็นพารามิเตอร์ด้วยเมธอด zfill()

to_check = to_check.zfill(3)

วิธีนี้จะตรวจสอบให้แน่ใจว่าค่าของ “to_check” มีรูปแบบที่ถูกต้อง ค่า 3 แสดงถึงจำนวนตัวเลขที่ควรอยู่ใน “to_check” ไม่ได้สะท้อนว่าควรเพิ่มค่าศูนย์จำนวนเท่าใด

ถัดไป ใช้คำสั่ง "if" กับตัวดำเนินการ "in" เพื่อตรวจสอบว่าค่าของ "to_check" ปรากฏในรายการหมายเลขสลากที่ชนะหรือไม่:

if to_check in winners:
 	    print("Ticket #{} is a winner.".format(to_check))
else:
	    print("Ticket #{} is not a winner.".format(to_check))

หากสลากตรงกับหมายเลขที่ชนะ if คำสั่งทำงาน; มิฉะนั้น else คำสั่งทำงาน รันโค้ดและดูว่าเกิดอะไรขึ้น:

Insert a number that you want to check: 33
Ticket #033 is a winner.

รหัสของเราระบุได้สำเร็จว่าตั๋ว #033 เป็นผู้ชนะ ดูว่าเกิดอะไรขึ้นหากหมายเลขที่คุณใส่ลงในโปรแกรมไม่ตรงกับสลากที่ชนะ:

Insert a number that you want to check: 182
Ticket #182 is not a winner.

โปรแกรมแจ้งว่าตั๋วไม่ใช่ผู้ชนะ

Python:ปัดค่าศูนย์เป็นตัวเลข

หมายเหตุ:ตัวอย่างด้านล่างใช้ได้เฉพาะใน Python 2.7 และ Python เวอร์ชันที่ใหม่กว่าเท่านั้น

ในตัวอย่างแรก คุณเพิ่มค่าศูนย์เป็นค่าที่เก็บไว้เป็นสตริง หากคุณต้องการใส่เลขศูนย์ให้เป็นตัวเลข มีวิธีอื่นให้ใช้

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

ในการเริ่มต้น ขอให้ผู้ใช้ใส่ตัวเลขที่ควรปรากฏที่จุดเริ่มต้นของรหัสพนักงาน คุณจะต้องขอชื่อพนักงานจากผู้ใช้ด้วย:

id_numbers = int(input("Enter the ID number of the employee: "))
surname = input("Enter the surname of the employee: ")

ถัดไป จัดรูปแบบค่าเหล่านี้เป็นสตริง ใช้เมธอด .format() เพื่อทำสิ่งนี้:

print("The employee identifier for {} is {:03d}{}.".format(surname, id_numbers, surname))

วงเล็บปีกกาแสดงค่าที่จะแทนที่ในสตริงของคุณ

วงเล็บปีกกาชุดแรกจะถูกแทนที่ด้วยนามสกุลของพนักงาน วงเล็บปีกกาชุดที่สองจะถูกแทนที่ด้วยค่าของ “id_numbers” หากตัวเลขที่ผู้ใช้ใส่มีความยาวน้อยกว่าสามตัว ค่าศูนย์จะถูกเพิ่มเข้าไปในค่านี้

วงเล็บปีกกาชุดสุดท้ายแสดงถึงส่วนสุดท้ายของตัวระบุพนักงานซึ่งเป็นนามสกุล เริ่มต้นโปรแกรมของเรา:

Enter the ID number of the employee: 823
Enter the surname of the employee: SMITH
The employee identifier for SMITH is 823SMITH.

โปรแกรมของเราทำงาน ในกรณีนี้ คุณได้ใส่หมายเลขประจำตัวที่มีความยาวสามหลัก มาดูกันว่าจะเกิดอะไรขึ้นหากคุณพยายามใส่หมายเลขประจำตัวที่มีความยาวเพียงสองหลัก:

Enter the ID number of the employee: 78
Enter the surname of the employee: JONES
The employee identifier for JONES is 078JONES.

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

บทสรุป

คุณสามารถใช้ zfill() วิธีการแพดศูนย์ที่ด้านหน้าของสตริง Python คุณสามารถใช้ .format() วิธีการเติมศูนย์ให้เป็นค่าจำนวนเต็ม

ตอนนี้คุณพร้อมที่จะเพิ่มศูนย์ที่จุดเริ่มต้นของค่าใน Python เหมือนกับผู้เชี่ยวชาญ coder!