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

การจัดข้อความในกรอบสี่เหลี่ยมด้วย Python

ภาพรวม

บทความนี้แสดงวิธีการจัดรายการคำให้อยู่ในกรอบสี่เหลี่ยมผืนผ้า โดยแต่ละคำจะอยู่บรรทัดละหนึ่งคำ และมีขอบดอกจัน (*) ล้อมรอบ ความกว้างของกรอบจะขึ้นอยู่กับคำที่ยาวที่สุดในรายการ

ตัวอย่าง

อินพุต: ['hello', 'world', 'python', 'programming', 'nice']

เอาต์พุต:

***************
* hello     *
* world     *
* python    *
* programming *
* nice      *
***************

ขั้นตอนการแก้ปัญหา

  1. หาความยาวของคำที่ยาวที่สุด (l)
  2. สร้างเส้นขอบบนด้วยดอกจัน จำนวน l + 4 ตัว
  3. วนลูปผ่านแต่ละคำ:
    • เพิ่ม * + คำ + ช่องว่างให้เต็มความกว้าง (l - len(คำ) + 1) + *
  4. เพิ่มเส้นขอบล่างเหมือนขอบบน
  5. คืนค่าสตริงที่จัดรูปแบบแล้ว

โค้ด Python

class Solution:
    def solve(self, words):
        l = max(len(x) for x in words)
        st = '*' * (l + 4) + '\n'
        for i in words:
            st += '* ' + i + ' ' * (l - len(i) + 1) + '*' + '\n'
        return st + '*' * (l + 4)

ob = Solution()
words = ['hello', 'world', 'python', 'programming', 'nice']
print(ob.solve(words))

การทำงาน

  • max(len(x) for x in words) หาความยาวสูงสุด (คำว่า "programming" ยาว 11 ตัวอักษร)
  • ขอบบน/ล่าง: 11 + 4 = 15 ดอกจัน
  • แต่ละบรรทัด: * + คำ + ช่องว่างปรับขนาด + *

ผลลัพธ์

***************
* hello     *
* world     *
* python    *
* programming *
* nice      *
***************