プログラ生活

プログラム初学者のためのポイントを書いていこうと思います。たまに脇道それた記事もありますが、息抜きだとおもって気長にお付き合いください。

【Python連載】リストのコピー -011-

www.pon-x.jp

今回は前回のリストの変更に続き、リストをハンドリングする方法として、リストをコピーする方法を紹介します。

リストのコピー

作成したリストは、単純に別の変数に代入しようとすると失敗します。
例を紹介します。

まずは、以下を実行してみましょう。

o = ["さ", "し", "す", "せ", "そ"]

p = o

p.append("た")

p

oをpに代入して、pに「た」を加えたので、以下のように表示されます。
f:id:hanabusa-snow:20210520100557p:plain

次に、oを表示してみます。

o

以下のようになります。
f:id:hanabusa-snow:20210520100652p:plain
!!!なんとpに追加したはずの「た」がoにも追加されてしまうのです。

参照渡し

実は、pにoを代入するとき、参照渡しという方法で値を渡しています。
つまり、pはoを参照するショートカットのようなオブジェクトが生成されているのです。

ちなみに、変数にはそれぞれにユニークなIDが湯よされているのですが、id()というものを用いると、確認ができます。

print(id(p))

print(id(o))

pとoのIDが同じということがわかります。
f:id:hanabusa-snow:20210520101203p:plain

つまり、pはoを参照していたので、pに追加しようと思った要素は実はoに追加されていたということなのです。
これを値の参照渡しと呼びます。

コピー

では、リストはコピーができないのかということなのですが、ちゃんとできますのでご安心を!!
copy()というもので、それが実現できます。

o = ["さ", "し", "す", "せ", "そ"]

p = o.copy()

p.append("た")

print(p)

print(o)

このようにpに「た」を加えても、oに影響がないことが確認できます。
f:id:hanabusa-snow:20210521083700p:plain


以上今回はここまでです。

■告知 Pythonプログラミングを学ぶ基礎講座を開設しています。
興味がある方は、ぜひこちらから。
無料相談もやっております。

pumpkin-labo.com

【Python連載】リストの変更 -010-

www.pon-x.jp

前回からリストを紹介していますが、今回もリストです。
今回は、リストの要素を変更してみたいと思います。

リストの要素の変更

リストの要素を変更するときは、インデックス番号で指定して、変更したい値を代入するだけです。

n = ["あ", "い", "う", "え", "お"]
n[4]="か"
n

こんなかんじに、「え」が「か」にかわります。
f:id:hanabusa-snow:20210519083355p:plain

要素の追加

今度は、リストの末尾に要素を追加してみます。

n = ["あ", "い", "う", "え", "お"]
n.append("か")
n

こんなかんじに、末尾に「か」が追加されました。
f:id:hanabusa-snow:20210519083521p:plain

要素を間に挿入

appendは末尾に追加でしたが、要素の間に挿入することもできます。
このとき、insertを使うのですが、挿入する要素をどのインデックスとして挿入するかを指定します。

n = ["あ", "い", "う", "え", "お"]
n.insert(1, "か")
n

インデックス1に挿入したので、左から2番目に「か」がはいりました。
f:id:hanabusa-snow:20210519083725p:plain

ちなみに、インデックスをマイナスの値で指定すると、リストの後ろから数えて挿入してくれます。

n = ["あ", "い", "う", "え", "お"]
n.insert(-1, "か")
n

-1を指定すると、後ろから2番目に挿入されます。
1番後だとappendとおなじなので、-1で後ろから2番目に入るということになります。
f:id:hanabusa-snow:20210519083916p:plain

要素を削除する。

要素を削除する場合は、popでインデックス番号を指定します。

n = ["あ", "い", "う", "え", "お"]
n.pop(1)
n

「い」が削除されました。
f:id:hanabusa-snow:20210519084058p:plain

マイナスを使えば、後ろから指定することもできます。

n = ["あ", "い", "う", "え", "お"]
n.pop(-2)
n

「え」が削除されます。
f:id:hanabusa-snow:20210519084215p:plain

リストの結合

2つのリストを結合します。

s = ["か", "き", "く", "け", "こ"]
m = ["さ", "し", "す", "せ", "そ"]
s + m

ひとつのリストになります。
f:id:hanabusa-snow:20210519084325p:plain


以上、今回はリストをハンドリングする方法を紹介しました。

■告知 Pythonプログラミングを学ぶ基礎講座を開設しています。
興味がある方は、ぜひこちらから。
無料相談もやっております。

pumpkin-labo.com

【Python連載】リスト -009-

www.pon-x.jp

前回の続き

今回はリストについて紹介します。

リスト

リストは、データ型のひとつで複数のデータをひとつにまとめて扱えます。
また、変数にいれて活用することが多いものです。

こんな感じに使います。

n = ["あ", "い", "う", "え", "お"]
n

f:id:hanabusa-snow:20210507083829p:plain

nというリストには、あ~おまで5つのデータが入っています。

リストの要素の取り出し

リストは左から、順番に番号(インデックス)がつけられ、これは0から始まります。
なので、「あ」を取り出すには以下のようにします。

n[0]

f:id:hanabusa-snow:20210507084026p:plain


複数まとめて取り出すこともできます。
い~えを取り出します。

n[1:4]

f:id:hanabusa-snow:20210507084129p:plain
ここで注意するのは、[1:4]というのは、インデックス1以上4未満までの要素を取り出すということなので、この場合はインデックス1,2,3が取り出されています。
以上、未満なので注意してください。


最初から、もしくは最後までとする場合には空白にすると指定ができます。
例えば、最初から「う」まで取り出してみます。

n[:3]

f:id:hanabusa-snow:20210507084313p:plain


次は特殊なものですが、インデックスが1以上5未満で、2刻みで取り出してみます。

n[0:5:2]

f:id:hanabusa-snow:20210507084552p:plain

以上、今回はここまで。 リストを作成して、要素を取り出す例を紹介しました。

■告知 Pythonプログラミングを学ぶ基礎講座を開設しています。
興味がある方は、ぜひこちらから。
無料相談もやっております。

pumpkin-labo.com

【Python連載】print関数 -008-

www.pon-x.jp

前回の続きです。

今回はこれまも何気なく出てきていた、print()について説明します。

print

print()は、かっこの中身を表示する関数ですが、様々な使い方があります。

まずはスタンダードにただ表示するの使い方。

print("python")

f:id:hanabusa-snow:20210506085843p:plain

カンマ区切り

カンマ区切りで入力をすると、文字列を連結してくれます。

print("あ", "い", "う", "え", "お")

こんなかんじです。
f:id:hanabusa-snow:20210506085927p:plain

上記は、文字間にスペースが入っていますが、以下のようにするとスペースを削除できます。

print("あ", "い", "う", "え", "お", sep="")

f:id:hanabusa-snow:20210506090029p:plain

sepは空文字だとスペースを消しますが、文字を指定するとその文字で区切ってくれます。

print("あ", "い", "う", "え", "お", sep="-")

f:id:hanabusa-snow:20210506090139p:plain

% を使ったprint

%を使うと、文字列に変数を代入することができます。
ちなみに、データ型によって使い分けが必要です。
・整数 :%d ・小数 :%f ・文字列:%s

以下使用例です。

name = "太郎"
age = 20

print("%sの年齢は%d歳です。" %(name , age))

f:id:hanabusa-snow:20210506090434p:plain

formatを使ったprint

%はデータ型を指定するのに対して、formatはそれを考えなくてもよくなります。
処理速度は%のほうの記述のほうが速いらしいです。

name = "太郎"
age = 20

print("{}の年齢は{}歳です。".format(name , age))

f:id:hanabusa-snow:20210506090612p:plain

上記は、出現する順番に応じて変数を代入していますが、順番を指定することもできます。

name = "太郎"
age = 20

print("{1}の年齢は{0}歳です。".format(age , name))

以下の通りです。
f:id:hanabusa-snow:20210506090732p:plain

以上、今回はここまでです。
printは実用的に使用してきますので、よく覚えておくとよいでしょう!!

■告知 Pythonプログラミングを学ぶ基礎講座を開設しています。
興味がある方は、ぜひこちらから。
無料相談もやっております。

pumpkin-labo.com

【Python連載】データ型 -007-

www.pon-x.jp

前回の続きです。

今回はデータ型の話です。

データ型

データには「型」というものがあって、さらに世の中には動的型付言語と静的型付言語があり、Pythonは動的型付言語になります。
動的型付言語とは、勝手にデータの型をプログラムが判断してくれるというものです。 静的片付言語は、変数を作るときにデータ型を指定しなくてはならないので、動的片付言語はその点については記述量が減って楽になるという側面もあります。

int型(整数型)

まずはじめは整数型です。
その名の通り、整数を表現するデータ型です。
type()でデータ型が確認できますのでやってみましょう。

#5のデータ型
print(5)
print(type(5))

以下の通り、5が整数型とわかります。
f:id:hanabusa-snow:20210430091517p:plain

float型(小数型)

少数型です。

#3.14のデータ型
print(3.14)
print(type(3.14))

3.14は少数型ということがわかります。
f:id:hanabusa-snow:20210430091638p:plain

bool型 (真偽)

bool型は2通りで、TrueかFalseです。

#3は5より小さい
print(3 < 5)
type(3 < 5)

f:id:hanabusa-snow:20210430091816p:plain

str型 (文字型)

文字型はクォーテーションでかこってあるデータの型です。

#TESTのデータ型
print('TEST')
type('TEST')

TESTは文字型になります。
f:id:hanabusa-snow:20210430092035p:plain


以上、代表的なデータ型を紹介しました。
次回以降にも新しい内容の中では、別のデータ型が登場することもありますので、追ってご紹介いたします。

■告知 Pythonプログラミングを学ぶ基礎講座を開設しています。
興味がある方は、ぜひこちらから。
無料相談もやっております。

pumpkin-labo.com

【Python連載】変数 -006-

www.pon-x.jp

前回の続きです。

今回は、変数の扱い方について説明します。

変数

変数とは、あらかじめ決められない数を設定しておくものです。
英数記号で設定しますが、数字始まりとはできないルールになっています。

では、例を出してみます。

#x+5のxに2を代入する
#イコールの左に変数を、イコールの右に代入したい数をかく
x = 2

x + 5

xに2を代入して、xと5を足します。
こんな感じの結果です。
f:id:hanabusa-snow:20210427085003p:plain


こんな使い方もできます。

#xにx+2を代入する。
x = 5

x = x + 2

x

xに5を代入して、x+5の結果をxに代入して、xを表示する。
数学的な視点で見ると数式が矛盾しますが、イコールは代入するというように理解しましょう。
f:id:hanabusa-snow:20210427085232p:plain


以下は上記と違って、xに2を加えるという意味で、単純な記述になります。

#xに2を足す。
x = 5

x += 2

x

こんなかんじです。
f:id:hanabusa-snow:20210427085400p:plain


減算もできます。

#xに2を引く。
x = 5

x -= 2

x

こんなかんじです。

f:id:hanabusa-snow:20210427085458p:plain


以上、今回はここまでです。

■告知 Pythonプログラミングを学ぶ基礎講座を開設しています。
興味がある方は、ぜひこちらから。
無料相談もやっております。

pumpkin-labo.com

【Python連載】演算子 -005-

www.pon-x.jp

前回の続きです。

今回は演算子について扱っていきます。

演算子

演算子はそのままのとおり、数値の演算を行うことに利用します。

さっそく、各種計算を試してみましょう。

# 足し算
print(12 + 34)

# 引き算
print(34 - 12)

# かけ算
print(10 * 30)

# わり算
print(50 / 20)

# 累乗
print(5 ** 3)

# 商
print(50 // 20)

# 余り
print(50 % 20)

f:id:hanabusa-snow:20210426084631p:plain
代表的な計算はこんなかんじです。
余りだけなんて求めるのに使うのか!?と思われる方もいるかもしれませんが、これが結構使うのです。
詳しくはまた必要な時に紹介します。

文字列と演算子

文字列を演算子で扱う目的は、文字列どうしを結合したり、一部を切り出したりすることを目的とします。

ではためしてみましょう。

#文字列と文字列を連結する。
print('abc' + 'def')

# 文字列をn回繰り返す。
print('abc' * 5)

#文字列のn番目の文字を取り出す。
print('abcde'[3])

# 文字列からn番目以降m番目(の手前)までの文字列を取り出す。
print('abcde'[2:4])

# 文字列からn番目以降の文字列を取り出す。
print('abcde'[2:])

# 文字列からm番目(の手前)までの文字列を取り出す。
print('abcde'[:4])

こんなかんじです。
f:id:hanabusa-snow:20210426084952p:plain
こんなこと必要なの!?とおもいますが、これもやはり実用することがあるんです。

比較演算子

比較演算子はその名の通り、比較を行います。
それらが、正しければTrue、正しくなければFalseの結果になります。

試してみます。

# 3と3は等しいか?
print(3 == 3)

# 3と4は等しいか?
print(3 == 4)

#3と4は等しくないか?
print(3 != 4)

#3は4より大きいか?
print(3 > 4)

#文字列'py'と文字列'thon'は同じか?
print('py' == 'thon')

こんなかんじです。
f:id:hanabusa-snow:20210426085256p:plain
次回以降紹介する、条件分岐や繰り返しでは多用するのでよく覚えておいてください。

以上、今回はここまで。

■告知 Pythonプログラミングを学ぶ基礎講座を開設しています。
興味がある方は、ぜひこちらから。
無料相談もやっております。

pumpkin-labo.com