Python学習チャンネル by PyQ

Pythonのオンライン学習プラットフォームPyQのオフィシャルブログです

Pythonの文字列は型が変わる?変わらない?

f:id:kenken0326:20210118180040p:plain

こんにちはPyQチームのtsutomuです。
今回はPythonの文字列についてお話します。

Pythonの文字列

みなさんは、Pythonの文字列の型について考えたことはありますか?

たとえばJava※では、文字列はString型ですが、文字はchar型で型が違います。String型の変数にchar型の文字を代入できません。
※ Javaは世界的に多くのシステム開発に用いられているプログラミング言語です(Java - Wikipedia

Java 世界的に多くのシステム開発に用いられているプログラミング言語です。現在Oracle社が中心となって管理しており、大規模開発で利用するエンタープライズ(企業)向けの機能が充実しています。
URL:https://java.com/ja/about/whatis_java.jsp

それでは、Pythonでは文字と文字列はどのように扱うのでしょうか?
以下のサンプルコードを実行してみてください。

サンプルコード

s = "あいうえお"
print(s, type(s))  # あいうえお <class 'str'>
print(s[0], type(s))  # あ <class 'str'>

Pythonでの、文字1文字の時の型

変数sは文字列です。
サンプルコードのtype(s) は変数sの型を出力してくれます。
<class 'str'>と出力されていることから、str型であることがわかりました。

変数s[0]はsの最初の文字です。
type(s[0])で変数sの最初の文字を出力してみます。
こちらも<class 'str'>と出力されていることから、str型であることがわかりました。

解説

JavaやC++などを学習した人にとっては、Pythonの文字の型と文字列の型が同じになるのは、混乱しやすいところですね。慣れるまでは気になるかもしれませんが、徐々に慣れていけるといいですね。

文字列・文字を区別するプログラミング言語とPythonの違い

f:id:kenken0326:20201120182806j:plain

  • Pythonでは、文字列も「文字列から取得した1文字」も、どちらもstr型になります。
  • C++やJavaでは、文字列と「文字列から取得した1文字」の型は異なります。

関連するクエスト

このお悩み解決はPyQのクエスト「31-1: Pythonをはじめよう」の補足情報として作成しています。PyQユーザーで興味がある方はぜひ解いてみてください。

pyq.jp

Copyright ©2017- BeProud Inc. All rights reserved.