@ゲー単走部

ローグライク雑記。変愚蛮怒、DCSSなど。

Python

Java clone()メソッドによる深いコピーの方法

Javaでclone()メソッドの挙動を調べていたがかなり面倒くさいことがわかった。 スクリプト言語なら一行書いて終わりだぞ・・・↓ import copy class Person: def __init__(self, name): self.name = name class Members: def __init__(self, name): self.pers…

逆ポーランド記法

逆ポーランド記法ってなんやねんって感じだったが(括弧なしではどうやって読めばいいのかわからず困惑していた)、 要するに数を順番にスタックに積んでいって、演算子がスタックに入ったら後に入れたほうから計算していくっていうだけのことなんやな。 難…

じゃんけんプログラムと演算子オーバーロード

複数人でじゃんけんを続け、勝敗を記録するプログラムを作ってみた。練習用のプログラムでよくあるやつっすな。 実用性ねぇ その際、グー、チョキ、パーとその勝敗をどう表そうか若干悩む。 C言語の列挙体みたいなのを使えればわかりやすそうだが、Pythonだ…

オブジェクトIDと関数への引数渡し

import java.util.List; import java.util.ArrayList; public class Main { public static void func(List<Integer> array) { array.set(0, 10); } public static void func2(List<Integer> array) { array = new ArrayList<Integer>(); array.add(10); array.add(2); } public static v</integer></integer></integer>…

素数の列を返すプログラム、素数かどうか判定するプログラム

素数の列を返すプログラムを書いてみる。 def prime(n): # nまでの素数のリストを返す if n == 2: return [2] elif n > 2: array = [2] # 素数を集める for i in range(3, n + 1): # 3~nが素数かどうか for p in array: if i % p == 0: # 素数で割り切れた…

Iteratorパターン

イテレータ、イテレータってよく聞くけど、要するにこんな感じなんだろう。 class MyList: def __init__(self, mylist): # 引数mylistは通常のリストを想定 self.mylist = mylist def getsize(self): return len(self.mylist) def __getitem__(self, index):…

Python3で引っかかるところ~print関数~

リスト内包表記の中にprint書けたりするの気持ち悪すぎでしょ。 純粋関数型言語でない以上、戻り値なしで副作用しかない関数も通常の関数として扱えるわけで、 その意味でprintを文としておくのは一貫性がないということで関数にしたんだろうけど。 >>>p = […

Python3で引っかかるところ~リストとイテレータ~

mapやzipがリストではなくイテレータを返すようになったので、挙動がややこしい。 >>>a = [10, 20, 30] >>>b = [1, 2, 3] >>>z = zip(a, b) >>>list(z) [(10, 1), (20, 2), (30, 3)] >>>list(z) [] >>>list(z) [] zip(a, b)がリストではなくイテレータオブジ…

Python 勉強 ~5桁の数字を漢数字に変換してみる~

つくってみた。5桁なのは、6桁以上だと規則性が変わってむずそうだから。 というか桁数なんて際限がないしとりあえず5桁で。 # 1-99999 の5桁の数字を漢数字に直す def char_number(number): if not 1 <= number <= 99999: return "Error" answer = "" d…

単方向連結リストの実装

あー疲れたー。 プログラミング・アルゴリズムの勉強がてら、連結リストを試しに実装してみたが、色々引っかかって数時間があっという間に飛んでいってしまった。 だがまあ、こうやって苦労してこそ理解も深まるというもの。決して無駄ではなかったと思いた…