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

ความรู้พื้นฐานเกี่ยวกับงูหลาม:ใช้อักษรตัวแรกของสตริงเป็นตัวพิมพ์ใหญ่

มีหลายวิธีในการจัดการสตริงใน 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 โดยเจตนาในอินสแตนซ์แรกของการค้นหาตัวอักษร

บทสรุป

นี่เป็นเพียงวิธีหนึ่งในการพิชิตความท้าทายโค้ดนี้! ฉันแน่ใจว่ามีวิธีอื่นๆ อีกมากมายที่ดีพอๆ กับที่กล่าวถึงในที่นี้ (ถ้าไม่ดีกว่า) เป้าหมายคือการเรียนรู้ที่จะถามคำถามหากคุณไม่ชัดเจนในทันทีและคิดเกี่ยวกับกรณีที่ได้เปรียบ! หากคุณทำได้ คุณจะสามารถผ่านรหัสที่ท้าทายได้โดยไม่มีปัญหาใดๆ ขอให้โชคดี!