Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
37
Help us understand the problem. What is going on with this article?

More than 3 years have passed since last update.

@sesame

Python初歩からの学習メモ2

コメント

コメントは、#から行の末尾まで。
ただし、文字列の中に書かれた#はコメントとしては機能しない。

文字列

文字列を生成するための記述方法(リテラル)

シングルクォーテーション'で囲むか、ダブルクォーテーション"で囲むと、文字列になる。

"sample" # これは文字列

ヒアドキュメント

ダブルクォーテーションを3つ使う。

以下 shiracamus さんに編集リクエストをいただいた内容を
反映しました。

sample = """line1
line2
line3"""

上記記述で、変数sample"line1\nline2\nline3"という文字列が対応づけられる。

文字列の連結

+記号を使う。

sample = "a" + "b"
print(sample) #=> ab

文字列の置換

文字列に対し、replaceメソッドを呼び出す。

sample = "a" + "b"
print(sample) # => ab
sample.replace("b", "c") #=> ac

文字列の分割

文字列に対し、splitメソッドを呼び出す。

sample = "a" + "1" + "b"
print(sample)
a1b
print(sample.split("1")) #=>["a", "b"]

リスト

複数のデータを格納することができる入れ物。
仕切りのある横に長い箱のようなものを考えるとよい。

箱のどこに何が入っているかは、仕切りに対して付けられた0から始まる
昇順の番号によって識別される。

文字列"0"と"1"と"2"が、仕切りの0、1、2に入っているリストは次のように
記述することで作成できる。

["0", "1", "2"]

リスト(箱)は、[]で囲み、カンマで仕切る。
リストの中の構成要素は、そのまま記述すればよい。

文字列の0を入れたい場合は、"0"と書き、数値の0を入れたい場合は、0と書く。

構成要素のうち先頭は、0という番号(index)でアクセスでき、
となりの構成要素は、1、そのとなりは2という番号でアクセスすることができる。

リストを変数aに割り当てた場合のindexによるアクセス例
a = ["0", "1", "2"]

print(a[0]) #=> "0"

a[0] = "a"

print(a[0]) #=> a

リストのような順番にアクセスしたいもの(オブジェクト)に対して、
順番にアクセスする場合、便利な記述方法がある。

a = ["0", "1", "2"]

for i in a:
    print(i)

# 実行結果
# 0
# 1
# 2

まず、aのリスト(オブジェクト)の先頭の要素(index 0)を変数iと対応づけて
print(i)を実行。
次に、aのリストの次の要素(index 1)を変数iと対応づけて
print(i)を実行。
最後に、aのリストの次の要素(index 2)を変数iと対応づけて
pirint(i)を実行する。


変数と定数

変数

値を入れる入れ物につける名札のこと。

入れ物にaという名前を付け、中身という値を入れる。

a = "中身"
print(a) #=> 中身

定数

pythonには、定数は無い。
慣習的には値を変えない変数をすべて大文字で記載し、定数のつもりで書く。

SAMPLE_VALUE = 986
print(SAMPLE_VALUE) # => 986

メソッド

処理に名前を付けて呼び出すことができるもの。

定義方法

defを使用する。

def sample():
    print("hello")

sample() #=> hello

上記は、sampleという名前のメソッドを定義している。
メソッドの中身は、 print("hello")の部分。

Pythonでは、ブロックの始まりと終わりを、行末においた:と次行からのインデント有無で
表現する。

次行のインデントの深さ(Pythonでは、標準は4つのスペースで、1つのインデントを表す)を
基準にして、その基準よりもインデントが浅くなった行が出現した場合に、
その前の行までがブロックであるものとして判断する。
他の言語の場合は、ブロックを表す文字や文字列、表現方法があるが、
Pythonの場合は、インデントの深さでブロックを判別するのがとても特徴的。

違和感を覚えるが、慣れるとまったく気にならなくなるし、
気にならなくなるとこっちの方がすっきりして見やすく感じもする。

なお、Pythonでは、メソッドの定義および呼び出しの際に、
丸括弧をしっかりとつけなければならない。

引数

メソッド名の後の、丸括弧で囲まれた部分に記述するものを
引数という。

メソッド定義の際の引数を仮引数、
メソッド呼び出しの際の引数を実引数と呼ぶ。

仮引数は、メソッドを定義している段階のもの(仮のもの)なので、
具体的な値はわからない(決まっていない)。
仮引数には、変数名を指定しておく。

実引数は、メソッドを呼び出す段階に指定するものなので、
具体的に決まっている実際の値を指定することになる。
※ 間接的に実際の値を取得することができるので変数を指定してもOK。

def sample(string): # stringは仮引数
    print(string) 

sample("hello") # "hello"は実引数

# 実行結果
# hello

戻り値

メソッドからの出力は、戻り値として受け取る。

戻り値は、メソッド内でreturnを使って返す。

def sample(string) :
    return string

a = sample("hello")
print(a) #=> hello

ブロック構造

他の言語では、{}の記号で囲むことでブロックを表す。

def sample() {
  puts "this is sample1"
  puts "this is sample2"
}

pythonでは、ブロック構造をインデントで表す。

def sample() :
    print("this is sample1") # => this is sample1
    print("this is sample2") # => this is sample2

インデント

インデントとは、ソースの左からの距離のこと。

同一ブロックは、ブロック内の行それぞれで、同一数のインデントを行う必要がある。

def sample():
    print("sample1")
        print("sample2") # インデント数が、上の行のインデント数と異なるため間違い
37
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
37
Help us understand the problem. What is going on with this article?