Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonの基礎:文字列の最初の文字を大文字にする

Pythonで文字列を操作する方法はたくさんあります。コードチャレンジでPythonの文字列の最初の文字を大文字にする必要がある場合、どのように行いますか?この記事では、その目的を達成するために文字列を操作する1つの方法について説明します。

プロンプト

Python文字列を指定して、最初の文字を大文字にして返す関数を記述します。

明確な質問をする

このプロンプトは、就職の面接中に出される場合があります。その場合は、面接官に問題を理解していることを確認するように依頼してください。

問題に取り組むときに考える可能性のあるいくつかの質問を次に示します。

  • 質問 :文字列は常に存在しますか? nullまたは空の文字列を処理する必要はありませんか?
  • 回答文字列は常に存在するとは限りません。ただし、これらのエッジケースに注意してください。
  • Q : 最初の文字。これは、文字列自体の最初の文字だけを意味するのでしょうか、それとも文字列内の各単語の最初の文字を意味するのでしょうか。どのように定義しますか?
  • A 文字列自体の最初の文字。
  • Q :最初の文字は常に文字になりますか?文字列の最初の文字が数字である可能性がある場合に対処する必要がありますか?
  • A 良いキャッチ。最初の文字は、必ずしも文字列の最初の文字であるとは限りません。文字列の最初の文字を大文字にしてください。

アプローチ

この問題に取り組むには、いくつかの異なる方法があります。問題を解決する正しい方法は複数あります。別の方法を思いついた場合は、すばらしいです!

エッジケースに対処するように求められた場合は、最初にエッジケースを処理します。

ここでは、文字列がない場合、空の文字列がある場合、または最初の文字が文字ではない場合に何が起こるかを処理する必要があります。今それをコーディングしましょう:

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

ここでは、文字列がNoneになるか、長さが0になるエッジケースを扱いました。大文字で文字列を返すロジックについては、まだ何もしていません。最初に存在することを確認する必要があります。

文字列の最初の文字が文字であるかどうかを確認する方法を見てみましょう。数字または特殊文字の場合は、最初の文字が見つかるまで次の文字に移動する必要があります。文字の場合は、大文字にして、大文字の文字で文字列を返します。文字列の最後に到達し、文字がない場合は、そのように言います。

参加者の81%は、ブートキャンプに参加した後、自分たちの技術的な仕事の見通しについてより自信を持っていると述べました。今日のブートキャンプにマッチしましょう。

平均的なブートキャンプの卒業生は、ブートキャンプの開始から最初の仕事を見つけるまで、キャリアの移行に6か月も費やしませんでした。

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に存在する文字列メソッドの1つは、isalpha()です。 。文字がアルファベットの一部であることを確認します。そうでない場合は、次の文字に移動します。最初の文字に到達すると、文字列の左側、大文字、および文字列の残りの部分の連結が返されます。

Pythonのcapitalize()があります 最初の文字を大文字に変換するために機能する関数ですが、最初の文字が文字でない場合のエッジケースは処理できません。これが、whileループを使用してループし、文字を最初に見つけたときに意図的にwhileループを中断する理由です。

結論

これは、このコードの課題を克服するための1つの方法にすぎません。ここで説明した方法と同じくらい良い方法は他にもたくさんあると思います。目標は、プロンプトが明確でない場合に質問をすることと、エッジケースについて考えることを学ぶことです。それができれば、ほとんど問題なくコードチャレンジを通過させることができます。頑張ってください!


  1. 文字列内の文字がPythonの文字であるかどうかを確認するにはどうすればよいですか?

    文字列クラスのisalpha()メソッドを使用できます。文字列がアルファベットのみで構成されているかどうかをチェックします。また、文字がアルファベットかどうかを確認するためにも使用できます。たとえば、5番目のインデックスの文字が文字かどうかを確認する場合は >>> s = "Hello people" >>> s[4].isalpha() True 文字列がアルファベットかどうかを確認することもできます。たとえば、 >>> s = "Hello people" >>> s.isal

  2. Pythonで文字列を大文字にする方法は?

    文字列の最初の単語の最初の文字を大文字にするだけの場合は、文字列クラスのcapitalizeメソッドを使用できます。 例 >>> s = "my name" >>> s.capitalize() 'My name' 文字列のスライスによって手動でこれを実現することもできます。 例 >>> s = "my name" >>> s = s[:1].upper() + s[1:] 'My name' 文字列の各単語を大文字にする場合は、文字列クラスのti