Computer >> Máy Tính >  >> Lập trình >> Python

Nguyên tắc cơ bản của Python:Viết hoa chữ cái đầu tiên của chuỗi

Có nhiều phương pháp để thao tác với chuỗi trong Python. Nếu bạn phải viết hoa chữ cái đầu tiên của một chuỗi bằng Python trong một thử thách viết mã, bạn sẽ làm như thế nào? Bài viết này nói về một cách bạn có thể thao tác các chuỗi để đáp ứng mục tiêu đó.

Lời nhắc

Với một chuỗi Python, hãy viết một hàm sẽ viết hoa chữ cái đầu tiên và trả về nó.

Đặt câu hỏi làm rõ

Lời nhắc này có thể được đưa ra trong một cuộc phỏng vấn việc làm. Trong trường hợp đó, hãy yêu cầu người phỏng vấn làm rõ để chắc chắn rằng bạn hiểu vấn đề.

Dưới đây là một số câu hỏi bạn có thể nghĩ đến khi chúng tôi tiếp cận vấn đề:

  • Câu hỏi :Chuỗi sẽ luôn tồn tại? Tôi sẽ không bao giờ phải đối phó với một chuỗi rỗng hoặc rỗng?
  • Trả lời : Chuỗi sẽ không phải lúc nào cũng có mặt. Mặc dù vậy, bạn nên chú ý đến những trường hợp phức tạp đó!
  • Q :Chữ cái đầu tiên. Điều này có nghĩa là chỉ ký tự đầu tiên của chính chuỗi hay ký tự đầu tiên của mỗi từ trong chuỗi? Bạn muốn tôi định nghĩa nó như thế nào?
  • Đ : Chữ cái đầu tiên của chính chuỗi.
  • Q :Ký tự đầu tiên sẽ luôn là một chữ cái? Tôi có phải đối phó với bất kỳ trường hợp nào mà ký tự đầu tiên trong một chuỗi có thể là một số không?
  • Đ : Bắt tốt. Chữ cái đầu tiên có thể không phải lúc nào cũng là ký tự đầu tiên trong một chuỗi. Tôi muốn bạn viết hoa chữ cái đầu tiên của chuỗi.

Phương pháp tiếp cận

Có một số cách khác nhau để tiếp cận vấn đề này. Có nhiều hơn một cách đúng để giải quyết vấn đề. Nếu bạn nghĩ ra một cách khác, thật tuyệt!

Xử lý các trường hợp cạnh trước nếu được yêu cầu xử lý chúng.

Ở đây, chúng ta cần xử lý những gì sẽ xảy ra khi gặp trường hợp không có chuỗi, chuỗi rỗng hoặc ký tự đầu tiên không phải là chữ cái. Hãy viết mã đó ngay bây giờ:

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")

Ở đây, chúng tôi đã xử lý các trường hợp cạnh trong đó chuỗi sẽ là Không hoặc sẽ có độ dài bằng 0. Chúng tôi vẫn chưa thực hiện bất kỳ điều gì với logic để trả về chuỗi có chữ cái viết hoa. Chúng ta cần đảm bảo rằng nó tồn tại trước.

Hãy xem cách kiểm tra xem ký tự đầu tiên trong chuỗi có phải là một chữ cái hay không. Nếu đó là một số hoặc ký tự đặc biệt, chúng tôi cần chuyển sang ký tự tiếp theo cho đến khi chúng tôi tìm thấy chữ cái đầu tiên. Nếu đó là một chữ cái, chúng tôi viết hoa nó và trả về chuỗi có chữ cái viết hoa. Nếu chúng ta đến cuối chuỗi và không có chữ cái nào, hãy nói như vậy.

81% người tham gia cho biết họ cảm thấy tự tin hơn về triển vọng công việc công nghệ của mình sau khi tham gia một cuộc thi đào tạo. Kết hợp với bootcamp ngay hôm nay.

Sinh viên tốt nghiệp bootcamp trung bình đã dành ít hơn sáu tháng để chuyển đổi nghề nghiệp, từ khi bắt đầu bootcamp đến khi tìm được công việc đầu tiên của họ.

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"))

Một trong những phương thức chuỗi tồn tại trong Python là isalpha() . Nó kiểm tra để chắc chắn rằng một ký tự là một phần của bảng chữ cái. Nếu không, nó sẽ chuyển sang chữ cái tiếp theo. Khi đến ký tự chữ cái đầu tiên, chúng ta sẽ trả về phần nối bên trái của chuỗi, ký tự hoa và phần còn lại của chuỗi.

capitalize() trong Python hàm hoạt động vì nó chuyển đổi ký tự đầu tiên thành chữ hoa, nhưng nó không thể xử lý trường hợp cạnh mà ký tự đầu tiên không phải là một chữ cái. Đây là lý do tại sao chúng tôi lặp lại bằng cách sử dụng vòng lặp while và sau đó cố ý phá vỡ vòng lặp while trong lần tìm kiếm một chữ cái đầu tiên.

Kết luận

Đây chỉ là một cách để chinh phục thử thách mã này! Tôi chắc chắn rằng có rất nhiều cách khác cũng tốt (nếu không phải là tốt hơn) so với cách được đề cập ở đây. Mục tiêu là học cách đặt câu hỏi nếu bạn không hiểu rõ về lời nhắc và suy nghĩ về các trường hợp khó! Nếu bạn có thể làm được điều đó, bạn sẽ có thể vượt qua các thử thách mã mà hầu như không gặp bất kỳ sự cố nào. Chúc bạn thành công!