Python雑談

只是因为在帮人看python所以顺手记录一些神奇的地方

値渡し&参照渡し

参考:

  • Python に参照渡しは存在しない話
  • Pythonは「値渡し」です!「参照渡し」という誤解はなぜ生じるのか?
  • Offcial Doc

関数を呼び出す際の実際の引数 (実引数) は、関数が呼び出されるときに関数のローカルなシンボルテーブル内に取り込まれます。そうすることで、実引数は 値渡し (call by value) で関数に渡されることになります (ここでの 値 (value) とは常にオブジェクトへの 参照(reference) をいい、オブジェクトの値そのものではありません) 。
在调用函数时会将实际参数(实参)引入到被调用函数的局部符号表中;因此,实参是使用按值调用来传递的(其中的始终是对象的引用而不是对象的值)。

对于 mutable 类型(list 、dict 、set、bytearray)要考虑使用 copy/deepcopy。

デフォルトの引数値

デフォルト値は1度だけしか評価されません。
默认值只计算一次。

(比如默认值写了=something+1即使再次调用时something的值变化此处的默认值也不会重新计算,不知道为什么要这么设计= =)

精度

浮点数默认 17 位精度,高精度需要使用 decimal 模块

paiza【シミュレーション 4】位置情報システム

算法-Permutation(全排列)

https://www.youtube.com/watch?v=Nabbpl7y4Lo