SST Lab Dokuwiki Header
内容へ移動
@surface
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
トレース:
seminar:python簡単ガイド
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== Python for beginners ====== **Pythonチュートリアル Level0** ここではGoogle Colaboratory上でちょっとした計算ができる程度の知識とスキルを手っ取り早く身につけるために必要な事項を紹介します。 ===== 説明のための説明 ===== サンプルプログラムを理解するのに必要な「コメント」と''%%print%%''関数の簡単な使い方を覚えましょう。また、変数とか値とかいう言葉はひとまずc言語と同様に考えてください。 * 「#」(ハッシュ記号)が出てきたらそれより右はコメントです。 * 等号 ''%%=%%'' は変数に値を代入するときに使います * ''%%print%%''関数は括弧の中に書いた文字列や数値、変数、計算結果などを画面に出力します。 <code python> # この行はコメントです value = 1 # value という名前の変数に整数値1を代入しています # この位置にコメントを書くこともできます text = "# これはコメントではありません" # ここからコメントです print(text) print("Value = ", value) # コンマで区切ると二つ以上のものも1行に出力できます。 </code> <code> # これはコメントではありません Value = 1 </code> ===== 文字列 ===== 既に上記の例でも使用していますが、 文字列は単引用符 (''%%'%%'') で囲むか、もしくは二重引用符 (''%%"%%'') で囲みます。どちらでもかまいません。 <code python> print('Hello, World.') # 引用符 </code> <code> Hello, World. </code> ''%%+%%'' で文字列を連結する (くっつけて一つにする) ことができます <code python> a = "Hello, " b = 'World.' # 単引用符 ' でも二重引用符 " でもどちらでもかまいません。 print(a + b) </code> <code> Hello, World. </code> ===== 数 ===== 整数や実数の計算について、''%%+, -, *, / ,(,)%%''はc言語と同じように動作します。 ''%%print%%''関数の中に直接式を書いてもいいし、変数を使って計算することもできます。変数は宣言する必要はなく、代入するたびに新しく生成されます。代入をせずにその変数を使おうとするとにエラーになります。 <code python> minute = 60 # 1 minute = 60 seconds hour = 60*minute day = 24*hour year = 365*day print("1 yesr =", year, "seconds") </code> <code> 1 yesr = 31536000 seconds </code> * 除算 (''%%/%%'') は常に実数を返します。 ''%%//%%'' 演算子は 小数部を切り捨てた整数を返します。 * 剰余は、''%%%%%'' で求めます。 * 冪乗は ''%%**%%'' をつかいます。実数冪も使用できて ''%%3**0.5%%''$=\sqrt{3}$となります。 * 数式中に整数と実数が混ざっていると自動的に実数に変換して計算を行います。 <code python> print(2 + 2) print(50 - 5*6) print( (50 - 5*6) / 4 ) print(17 / 3) # 除算は浮動小数点数を返す print(17 // 3) # 整数除算は小数部を切り捨てた整数を返す print(17 % 3) # % 演算子は剰余を返す print(2 ** 7) # 2の7乗 print(3 ** 0.5) # ルート3 print(4 * 3.75 - 1) # 整数と実数が混ざっていると自動的に実数に変換して計算 </code> <code> 4 20 5.0 5.666666666666667 5 2 128 1.7320508075688772 14.0 </code> ===== リスト型 (list) ===== コンマ区切りの値 (要素) の並びを角括弧''%%[%%'', ''%%]%%''で囲んだものはリスト (list)と呼ばれます。 リストの個々の要素に対する操作、はc言語の配列のように ''%%リストの名前[要素の番号]%%''で行います。要素の番号は0から始まります <code python> squares = [1, 4, 8, 16, 25] print(squares) print(squares[2]) squares[2] = 9 print(squares) </code> <code> [1, 4, 8, 16, 25] 8 [1, 4, 9, 16, 25] </code> リストは''%%+%%''で連結できます。 <code python> squares = [1, 4, 9] squares = squares + [16, 25] print(squares) </code> <code> [1, 4, 9, 16, 25] </code> ''%%リスト名.append(付け加える要素)%%''とすることで要素を付け加えることができます。 <code python> squares = [1, 4, 9, 16, 25] squares.append(36) print(squares) </code> <code> [1, 4, 9, 16, 25, 36] </code> 組込み関数 len() をつかうとリストの要素数が得られます。 <code python> squares = [1, 4, 9, 16, 25, 36] print(len(squares)) </code> <code> 6 </code> リストを入れ子にできます。これはc言語の2次元配列のように使えます。 <code python> a1 = [1.1, 1.2, 1.3] a2 = [3.1, 3.2, 3.3] x = [a1, a2] print("x = ", x) print("x[0] = ", x[0]) print("x[0][1] = ", x[0][1]) </code> <code> x = [[1.1, 1.2, 1.3], [3.1, 3.2, 3.3]] x[0] = [1.1, 1.2, 1.3] x[0][1] = 1.2 </code> ===== if文 ===== <code> if 条件: 条件成立時の処理 else: 条件不成立時の処理 </code> でc言語のifと同様のことができます。コロン(''%%:%%'')を忘れないようにしてください。いくつかの命令をまとめるときはc言語では括弧''%%{}%%''を使いますが、pythonでは字下げが同じ行はひとつのまとまり(ブロック)と扱われます。 ''%%else%%''のブロックは省略することもできます。 > pythonでは字下げに常に注意してください。 c言語で一番多い間違いはセミコロンのつけ忘れですが、 pythonで一番多い間違いは字下げの間違いです。 条件にはc言語と同様に、 ''%%<%%'' (より小さい)、 ''%%>%%'' (より大きい)、 ''%%==%%'' (等しい)、 ''%%<=%%'' (より小さいか等しい)、 ''%%>=%%'' (より大きいか等しい)、および ''%%!=%%'' (等しくない)、が使えます。 <code python> # flagの値を変更して実行してみてください flag = 0 if flag > 0: print("この行はifの中です") print("この行もifの中です") else: print("この行はelseの中です") print("この行もelseの中です") print("この行はif-elseの外です") </code> <code> この行はelseの中です この行もelseの中です この行はif-elseの外です </code> 条件の中で、''%%==%%'' (等しい)は実数に対しては使ってはいけません。 <code python> if 0.1*0.1 == 0.01: print("0.1*0.1 == 0.01") else: print("0.1*0.1 != 0.01") </code> <code> 0.1*0.1 != 0.01 </code> ===== for 文 ===== Python の ''%%for%%'' 文は、c言語の for 文とは全く違いますが、同じような場面でつかわれます。Python の ''%%for%%'' 文は、リストの各要素に対して反復処理を行います。反復の順番はリスト中に要素が現れる順番です。 使い方は、 <code> for 変数 in リスト: 反復処理 反復処理が複数あるときは字下げを同じにする </code> のように書くと「リスト」の要素が順番に「変数」に代入されて、リストの要素の数すなわち''%%len(リスト)%%''の回数だけ反復処理が行われます。 <code python> xdata = [0, 1, 2, 3, 4, 5] for x in xdata: print(x*x) print("この行はforの中です") print("この行はforの外です") </code> <code> 0 この行はforの中です 1 この行はforの中です 4 この行はforの中です 9 この行はforの中です 16 この行はforの中です 25 この行はforの中です この行はforの外です </code> ==== range() 関数 ==== 数列に対して反復を行う必要がある場合、組み込み関数 ''%%range()%%'' が便利です。この関数を ''%%range(n)%%''のように呼び出すと''%%[0, 1, 2, ..., n - 1]%%''のような''%%0%%''から''%%n - 1%%''までの''%%n%%''個の要素をもった「リストのように使える数列」を作り出します。 <code python> for x in range(6): print(x*x) </code> <code> 0 1 4 9 16 25 </code> ==== break 文 ==== ''%%break%%'' 文は、C 言語と同じく、最も内側の ''%%for%%'' ループを中断します。 <code python> for x in range(10): print(x) if x == 5: break </code> <code> 0 1 2 3 4 5 </code> ===== ユーザ定義関数 ===== 関数は''%%def%%''を使って <code> def 関数名(仮引数): 仮引数を使った戻り値の計算 字下げを揃える return 戻り値 </code> のように定義します。 やはりここでもコロンと字下げを忘れずに。 <code python> def square(x): y = x**2 return y def cube(x): y = x**3 return y print(square(3)) print(cube(2)) </code> <code> 9 8 </code> ===== 主な組み込み関数 ===== 既に * ''%%print%%'': 画面に文字を出力する * ''%%len%%'': リストの要素数を返す * ''%%range%%'': リストのような数の並びを生成する などを使ってきました。 これ以外にもpythonには多くの組み込み関数が用意されています。ここでは特によく使うものだけ紹介します。 * ''%%abs%%'': 整数や実数の絶対値を計算する * ''%%max%%'': リストの要素もしくは引数の最大値を返す * ''%%min%%'': リストの要素もしくは引数の最小値を返す * ''%%sum%%'': リストの要素もしくは引数の合計を返す <code python> print(abs(-1)) x = range(11) print(len(x)) print(max(x)) print(min(x)) print(sum(x)) </code> <code> 1 11 10 0 55 </code> ===== 標準数学関数 ===== 三角関数や指数関数などの初等関数を使用するときは標準数学モジュールを読み込みます。 関数を使用する前に <code> from math import * </code> を実行することで * 三角関数:''%%sin%%'', ''%%cos%%'', ''%%tan%%'' * 逆三角関数:''%%atan%%'' (逆正接)等 * 指数関数:''%%exp%%'' * 対数関数:''%%log%%'' (自然対数) * 平方根:''%%sqrt%%'' などを使えるようになります。 また、''%%pi%%''という名前の変数に円周率の値が代入されています。 <code python> from math import * x = pi/3 print(sin(x)**2 + cos(x)**2) print(4*atan(1)) print(exp(1)) x = exp(1.234) print(log(x)) print(sqrt(2)) </code> <code> 1.0 3.141592653589793 2.718281828459045 1.234 1.4142135623730951 </code> ===== クラスメソッド ===== <code> list_name.append(element_to_add) </code> のようにして''%%list_name%%''というリストに''%%element_to_add%%''という要素を付け加えることができました。このように変数にピリオドをつけて関数名を書くような使い方をするものをクラスメソッドと呼びます。リストデータ型には、他にもいくつかメソッドがありますが、ここではひとつだけ紹介しておきます。 <code python> squares = [1, 4, 9, 16, 25] squares.reverse() print(squares) </code> <code> [25, 16, 9, 4, 1] </code> ''%%.reverse()%%''をリストにつけるとリストの要素の並びを逆にします。元のリストの中身自体が変わってしまうので注意が必要です。 ===== 少し高度な使い方 ===== ==== range関数(再) ==== ''%%range%%''関数の完全な仕様は <code> ranng( 初期値 , 上限 , 増分 ) </code> です。''%%初期値%%''と''%%増分%%''を省略すると''%%初期値 = 0%%'', ''%%増分 = 1%%'' が、''%%増分%%''を省略したときは''%%増分 = 1%%''が設定されます。生成される数列は''%%上限%%''に一致することも超えることもはありません。得られた数列をリストとして表示するときは''%%list%%''関数を使います。 <code python> print(list(range(10))) print(list(range(1, 10))) print(list(range(1, 10, 2))) </code> <code> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 3, 5, 7, 9] </code> ==== リストの内包表記 ==== ''%%for%%''文を使って整数の自乗を順にならべた <code> squares = [0, 1, 4, 9, 16] </code> のようなリストをつくることを考えます。これまでの知識を使って書くと以下のようになります。 <code python> squares = [] for x in range(5): squares.append(x**2) print(squares) </code> <code> [0, 1, 4, 9, 16] </code> これと同じことを以下のようにして実現できます。 <code python> squares = [x**2 for x in range(5)] print(squares) </code> <code> [0, 1, 4, 9, 16] </code> このような機能を「リストの内包表記」といいますが、プログラムが簡潔になるのと以下のような副作用がないので非常によく使います。 <code python> x = 100 squares = [] for x in range(5): squares.append(x**2) print(squares) print(x) # 変数xにはfor文の最後の値が代入されたまま残っている。 x = 100 squares = [x**2 for x in range(5)] print(squares) print(x) # リストの内包表記の中の変数は同じ名前の別の場所の変数に影響しない </code> <code> [0, 1, 4, 9, 16] 4 [0, 1, 4, 9, 16] 100 </code> ==== フォーマット済み文字列リテラル ==== 文字列の頭に f か F を付けたものをフォーマット済み文字リテラル (短く f-string とも)呼びます。f-stringの中では、変数や数式を''%%{...}%%''の中に書くことで、そこに変数に代入されている値や計算結果を埋め込むことができます。 <code python> value = 3 print("Value =", value) print(f"Value = {value}") print(f"Value = {value ** 2}") </code> <code> Value = 3 Value = 3 Value = 9 </code>
seminar/python簡単ガイド.txt
· 最終更新: 2024/07/19 09:24 by
kimi
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
文書の先頭へ