มีหลายวิธีในการจัดการสตริงใน Python หากคุณต้องใช้อักษรตัวแรกของสตริงใน Python เป็นตัวพิมพ์ใหญ่ในการท้าทายโค้ด คุณจะทำอย่างไร? บทความนี้กล่าวถึงวิธีหนึ่งที่คุณสามารถจัดการกับสตริงเพื่อให้เป็นไปตามวัตถุประสงค์นั้น
พร้อมรับคำ
กำหนดสตริง Python ให้เขียนฟังก์ชันที่จะทำให้ตัวอักษรตัวแรกเป็นตัวพิมพ์ใหญ่แล้วส่งคืน
ถามคำถามเพื่อความกระจ่าง
อาจมีข้อความแจ้งนี้ในระหว่างการสัมภาษณ์งาน ในกรณีนั้น ขอให้ผู้สัมภาษณ์ชี้แจงเพื่อให้แน่ใจว่าคุณเข้าใจปัญหา
ต่อไปนี้คือคำถามบางข้อที่คุณอาจนึกถึงเมื่อเราแก้ไขปัญหา:
- คำถาม :สตริงจะมีอยู่เสมอหรือไม่? ฉันจะไม่ต้องจัดการกับค่า null หรือสตริงว่าง?
- ตอบ :สตริงจะไม่ปรากฏตลอดเวลา ดีที่จะคอยระวังเคสขอบเหล่านั้น!
- ถาม :จดหมายฉบับแรก. นี่หมายถึงเฉพาะอักษรตัวแรกของสตริงเองหรืออักษรตัวแรกของแต่ละคำในสตริงหรือไม่ คุณต้องการให้ฉันกำหนดมันอย่างไร
- ก :อักษรตัวแรกของสตริงเอง
- ถาม :อักขระตัวแรกจะเป็นตัวอักษรเสมอหรือไม่? ฉันต้องจัดการกับกรณีที่อักขระตัวแรกในสตริงอาจเป็นตัวเลขหรือไม่?
- ก :จับได้ดี. อักษรตัวแรกอาจไม่ใช่อักขระตัวแรกในสตริงเสมอไป ฉันอยากให้คุณพิมพ์อักษรตัวแรกของสตริงให้เป็นตัวพิมพ์ใหญ่
แนวทาง
มีหลายวิธีในการแก้ไขปัญหานี้ มีวิธีแก้ปัญหาที่ถูกต้องมากกว่าหนึ่งวิธี หากคุณคิดวิธีที่แตกต่างออกไป เยี่ยมเลย!
จัดการเคส Edge ก่อนถ้าถูกขอให้จัดการกับมัน
ในที่นี้ เราต้องจัดการกับสิ่งที่เกิดขึ้นเมื่อเรามีกรณีที่ไม่มีสตริง สตริงว่าง หรืออักขระตัวแรกไม่ใช่ตัวอักษร มาโค้ดกันตอนนี้เลย:
def capitalize_str(str): if str == None: # if str is None return "NoneType is not a string" elif len(str) > 0: #if str exists # what type of char is first character? If number, move to next letter, if letter, capitalize it. return str #this is temporary -- we'll change this in next step. else: #if str is empty return "undefined string" capitalize_str("hello")
ที่นี่ เราได้จัดการกับกรณีขอบที่สตริงจะเป็น ไม่มี หรือจะมีความยาวเป็น 0 เรายังไม่ได้ดำเนินการใดๆ กับตรรกะในการส่งคืนสตริงด้วยตัวอักษรพิมพ์ใหญ่ เราต้องแน่ใจว่ามีอยู่ก่อน
มาดูวิธีการตรวจสอบว่าอักขระตัวแรกในสตริงเป็นตัวอักษรหรือไม่ ถ้าเป็นตัวเลขหรืออักขระพิเศษ เราต้องย้ายไปยังอักขระถัดไปจนกว่าจะพบอักษรตัวแรก หากเป็นตัวอักษร เราใช้ตัวพิมพ์ใหญ่และส่งกลับสตริงด้วยตัวอักษรพิมพ์ใหญ่ ถ้าเราไปถึงจุดสิ้นสุดของสตริงและไม่มีตัวอักษรให้พูดอย่างนั้น
81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้
ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก
def capitalize_str(str): if str == None: # if str is None return "NoneType is not a string" elif len(str) > 0: #if str exists # what type of char is first character? If number, move to next letter, if letter, capitalize it. i = 0 while i < len(str): if str[i].isalpha(): return str[0:i] + str[i].upper() + str[i + 1:] else: i += 1 return "string does not have letters" else: #if str is empty return "undefined string" print(capitalize_str("christina"))
หนึ่งในเมธอดสตริงที่มีอยู่ใน Python คือ isalpha()
. จะตรวจสอบเพื่อให้แน่ใจว่าอักขระเป็นส่วนหนึ่งของตัวอักษร หากไม่เป็นเช่นนั้น จะย้ายไปที่ตัวอักษรถัดไป เมื่อเราไปถึงอักขระตัวแรก เราจะคืนค่าการต่อกันของด้านซ้ายของสตริง อักษรตัวพิมพ์ใหญ่ และส่วนที่เหลือของสตริง
มี Python capitalize()
ฟังก์ชั่นที่ใช้งานได้เพราะมันแปลงอักขระตัวแรกเป็นตัวพิมพ์ใหญ่ แต่ไม่สามารถจัดการกับตัวพิมพ์ใหญ่ที่อักขระตัวแรกไม่ใช่ตัวอักษร นี่คือเหตุผลที่เราวนซ้ำโดยใช้ while loop จากนั้นจึงทำลาย while loop โดยเจตนาในอินสแตนซ์แรกของการค้นหาตัวอักษร
บทสรุป
นี่เป็นเพียงวิธีหนึ่งในการพิชิตความท้าทายโค้ดนี้! ฉันแน่ใจว่ามีวิธีอื่นๆ อีกมากมายที่ดีพอๆ กับที่กล่าวถึงในที่นี้ (ถ้าไม่ดีกว่า) เป้าหมายคือการเรียนรู้ที่จะถามคำถามหากคุณไม่ชัดเจนในทันทีและคิดเกี่ยวกับกรณีที่ได้เปรียบ! หากคุณทำได้ คุณจะสามารถผ่านรหัสที่ท้าทายได้โดยไม่มีปัญหาใดๆ ขอให้โชคดี!