LoginSignup
68
78

More than 5 years have passed since last update.

Python基礎講座(4 数値型・文字列型)

Last updated at Posted at 2015-01-04

変数

プログラミング未経験者の人に「変数」を説明すると、文字通り”変わる値”を格納するための「箱」です。

変数名 = 値

で変数を作成することが出来ます。

var1 = 1
var1 = var1 + 1

変数には定数(数値、文字列)だけでなく、変数の値を格納することを可能です。
この場合最終的にvar1の値は2になります。
変数という名前ですが、変わらない値(定数)も格納することが出来ます。
(一度値を格納した後、変更しなければそれは定数といえます)

TAX = 0.08

Pythonでは、定数を作成した場合は変数の名前を大文字にする共通ルールがあります。
大文字にしなくてもプログラムは動作しますが、他の人があなたのプログラムを見た時に、
「この変数は定数なのだな」とすぐに分かるよう共通ルールに従いましょう。
また、Pythonは変数名の大文字と小文字を区別します。"tax"と"TAX"は別の変数となることに注意してください。

変数には数値や文字列、それらのリストなど、様々な形のデータを格納することが出来ます。
Pythonは他のプログラミング言語であるC言語やJavaと異なり、変数を宣言する際に、
データの型を明記する必要がありません。

◆C言語の場合
int a
a = 1

◆Javaの場合
double b
b = 3.14
String c
c = "text"

◆Pythonの場合
a = 1
b = 3.14
c = "text"

Pythonは変数の型が数値なのか、文字列なのかを自動で判定します(動的型付け)。

次に、Pythonの基本的なデータ型である数値型と文字列型を紹介します。

数値型

a = 1
b = 3.14
c = 2 + 3j

整数、小数、複素数が使用可能です。
数値型のデータの算術演算は電卓の +, -, *, /, %(剰余)が使用可能です。
"//"を使用することで、小数以下を切り捨てた除算が可能です。
"**"を使用することで、数字のN乗を結果として返します。

display_number.py
print(1 + 2.5)
print(5 / 2)
print(5 // 2)
print(5 % 2)
print(3**2)

実行すると以下のような結果が出力されます。

3.5
2.5
2
1
9

文字列型

文字列型は" "または' 'で括った文字を格納します。

text = "this is string"
text2 = '1'

text2は数値の1ではなく文字の'1'であることに注意してください。

"""または'''で括ると、改行を含む文字列を変数に格納できます。

text3 = """1行目
2行目"""

シーケンス

シーケンスとは「順番に並んでいるもの。順番に処理をすること」という意味があります。
リスト(次の章で説明します)は典型的なシーケンスですが、Pythonでは文字列型も「文字」のシーケンスとして扱われます。
Pythonではシーケンスのデータに対して共通した処理を行うことが出来、
文字列型のデータにもその操作を行うことが出来ます。
以下のプログラムを記述して実行し、出力結果を確認してください。

string_func.py
text1 = "abc"
a_in_text = "a" in text1
b_in_text = "d" in text1
print("in_text_a {0}".format(a_in_text))
print("in_text_d {0}".format(b_in_text))
text2 = "abc" + "def"
print("abc + def {0}".format(text2))
print("abc * 3 {0}".format("abc" * 3))
print("text2[3] {0}".format(text2[3]))
print("text2[-1] {0}".format(text2[-1]))
print("text2[1:4] {0}".format(text2[1:4]))
print("text2[0:6:2] {0}".format(text2[0:6:2]))
print("len(text2) {0}".format(len(text2)))
print("min(text2) {0}".format(min(text2)))
print("max(text2) {0}".format(max(text2)))

a in xxx

文字aが文字列型変数xxxに含まれるか判定します。
含まれる場合はTrue(真)、含まれない場合はFalse(偽)を返します。

str1 + str2

文字列を結合します。
注意して欲しいのは、数値も" "または' 'で括れば文字列になるということです。

10 + 20

は30を返し、

"10" + '20'

は"1020"を返します。それでは、

10 + "20"

は何を返すのでしょうか?実験してみましょう。

TypeError: unsupported operand type(s) for +: 'int' and 'str'

このようなエラーメッセージが表示されます。
数値型と文字列型を+で結合することは出来ません。
数値を文字列に、文字列を数値に変換したい場合、以下のように記述します。

convert_explain.py
str1 = str(10) + '20'
int1 = 10 + int("20")
print("{0}".format(str1))
print("{0}".format(int1))

str(数値)で数値型の値を文字列型の値に変換できます。
同様に、int(文字列)で数値型に変換できる文字列型の値を数値型の値に変換できます。
"abc"など数値に変換できない文字列をint()で変換しようとした場合はエラーが発生します。

str * x

数値型に対しては乗算を行う「*」ですが、文字列型に対しては「その文字列をx回繰り返す」
という処理を実行します。

str[x]

文字列strのx番目の文字を返します。
このxは0番目から始まる点に注意してください。
xがマイナスの場合は最後尾からx番目の文字を返します。

str[x:y]

文字列strのx番目からy-1番目の文字列を返します。

str[x:y:z]

文字列strのx番目からy-1番目の文字列を、z文字間隔で返します。

len(str)

文字列strの文字列長を返します。

min(str) / max(str)

min(str)は、文字列strを構成する文字の中から最小の文字を返します。
文字列が"54321"の場合は"1"を、"abcde"の場合は"a"を返します。

max(str)は、文字列strを構成する文字の中から最大の文字を返します。
文字列が"54321"の場合は"5"を、"abcde"の場合は"e"を返します。

数値や文字列が混合している場合は、以下の順序の中で最大/最小を判定します。
<小> 0 1 2 ・・・ 8 9 A B ・・・Y Z a b ・・・y z <大>

次: Python基礎講座(5 リスト・タプル)

68
78
9

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
68
78