1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

C#er向けPython覚え書き

Last updated at Posted at 2023-11-11

C#erがpythonを書くにあたっての覚え書きです。正確性を欠いている可能性あるので詳細は公式を参照してください。

所々で公式のリファレンスマニュアルへのリンクを貼っていますが、まずは公式のチュートリアルのほうを見たほうがとっつきやすいです。

機能関連

ファイル操作

やりたいこと コード 説明・リンク等
テキストモードで開く(読み取り専用) open(path, 'r') 1
UTF-8と見なして開く(読み取り専用) open(path, 'r', 'utf-8') エンコード指定
Shift_JISと見なして開く(読み取り専用) open(path, 'r', 'shift_jis')
テキストモードで開く(書き込み専用) open(path, 'w')1
バイナリモードで開く(読み取り専用) open(path, 'rb')
バイナリモードで開く(書き込み専用) open(path, 'wb')

open() 関数が返す file object の型はモードに依存します。

型変換

やりたいこと コード 説明・リンク等
小数や文字列を整数型に変換する int(...)
浮動小数点数に変換する float(...)
文字列に変換する str(...)

バイナリと型との変換

pack, unpack

コンソール出力

やりたいこと コード 説明・リンク等
コンソールに出力する(改行つき) print(...) カンマで区切って複数指定可能。print(..., end='')のようにすると改行をなくせる

コマンドライン引数

import sys
for s in sys.argv:
    print(s)

argv[0] はスクリプトの名前となりますが、フルパス名かどうかは、OSによって異なります。コマンドライン引数に -c を付けて Pythonを起動した場合、 argv[0] は文字列 '-c' となります。スクリプト名なしでPythonを起動した場合、 argv[0] は空文字列になります。

文法関連

コーディングスタイル

インデントが構造と対応します。(インデントが崩れると構文解析エラー(?)になったり、意図しないプログラムになる恐れがあります。)

関数


def 関数名(引数,...):
    ...
    return 戻り値

return は無くてもよい。

制御構文

行末のコロンを忘れずに。

C# Python 補足
条件分岐 if(条件式) if 条件式: else ifはPythonではelif
要素列挙してループ foreach(型名 変数 in リスト) for 変数 in リスト:
整数を0,1,...,n-1 for(i=0;i<n;i++) for i inrange(n): 要素数を得るには len(対象)
繰り返し while(条件式) while 条件式: do whileにあたるものは無さそう

forwhileの中などで処理をしたくないときは、passが使える。

# 無限ループの例
while True:
    pass

例外処理構文

C# Python 補足
try try
catch except
finally finally
(なし) else 例外が発生しなかったときに実行される
try:
    ~~~
except ValueError:
    ~~~
else:
    ~~~
finally:
    ~~~

https://docs.python.org/ja/3/library/exceptions.html
https://docs.python.org/ja/3/tutorial/errors.html

定数

C# Python 補足
null null None
true True
false False

演算子

C# Python 補足
整数除算 整数/整数 整数//整数
論理積 a&&b a and b
論理和 a||b a or b
論理否定 !a not a

比較演算子を a<x&&x<b の代わりに a<x<b と書くことができる

グローバル変数の使用

JavaScriptのノリで書くと、思った動きにならないので注意。C#erどこいった

ざっくり:
関数内から外側の変数にアクセスしたい場合は、関数内でglobalを付けて変数宣言する必要がある。付けないとローカル変数扱いになるよう。

ただ、割とややこしい挙動をするらしい・・

予約語

キーワード - docs.python.org

組み込み関数名 - docs.python.orgや、よく使うライブラリの名称も避けたほうが無難。

  1. (公式より抜粋): デフォルトエンコーディングはプラットフォーム依存 (locale.getencoding() が返すもの) です 2

1
1
1

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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?