へたっぴpythonista

ド素人pythonistaとして、日々の学習成果や気づいたことについて書きます。

python

ソースコードの色づけ

前回更新が9月半ばだから、もう2か月ほど放置していたことになりますね。受験勉強しなくちゃいけないからプログラミングがおざなり状態だったせいです。でも、いい加減受験勉強も飽きたので、ちょっとずつプログラミングの勉強も再開しようかな。ということ…

" ".join(iterable)はrosalindに必須か

rosalindを解いていると、たまに解答の形式としてカンマを用いずに空白で要素を区切ることが要求されます。つまり「A,B,C,D」ではなく「A B C D」としなくてはならないのです。カンマが入っていようものなら答えが正しくても不正解扱いです。 そこで[A,B,C,D]…

ProjectEuler22をpythonで解く

最近Rosalindばかり解いていて放置気味のEuler。パッと見て解けそうだったので久々に挑戦しました。 Problem22 Using names.txt (right click and 'Save Link/Target As...'), a 46K text file containing over five-thousand first names, begin by sorting…

改行のある文字列ファイルをリストに変換する方法

rosalindに解答する際に以下のような文字列ファイルをリストに変換する必要があり、手こずったので記事にしておこうと思います。 test_rosa.txt >Rosalind_6404CCTGCGGAAGATCGGCACTAGAATAGCCAGAACCGTTTCTCTGAGGCTTCCGGCCTTCCCTCCCACTAATAATTCTGAGG>Rosalind_…

プロセッサ処理時間を測定するtime.clock()

プログラムのコストについて勉強するに当たり避けては通れない、プロセッサ処理時間の測定の話です。 処理時間の測り方 import time start_time=time.clock() ----------------------------------- 測りたいコード ----------------------------------- end_…

Project Euler56 をpythonで解く

問題 A googol (10^100) is a massive number: one followed by one-hundred zeros; 100^100 is almost unimaginably large: one followed by two-hundred zeros. Despite their size, the sum of the digits in each number is only 1.Considering natural …

Project Euler 55をpythonで解く

問題 If we take 47, reverse and add, 47 + 74 = 121, which is palindromic.Not all numbers produce palindromes so quickly. For example,349 + 943 = 1292, 1292 + 2921 = 4213 4213 + 3124 = 7337That is, 349 took three iterations to arrive at a p…

ProjectEuler42 をpythonで解く

最近ご無沙汰だったProjectEuler。なんとなく解けそうだったので挑戦してみました。 Problem42 The nth term of the sequence of triangle numbers is given by, tn = ½n(n+1); so the first ten triangle numbers are:1, 3, 6, 10, 15, 21, 28, 36, 45, 55,…

アルファベットのリストを作る in python

アルファベットのリストを手打ちするのが面倒だったので、瞬時にリストを作成する方法を探してみました。 Pythonでシンプルにアルファベットのリストを作るを参考にしました。というかこのコードをpython3系用にいじっただけです。 コード # upper-case A-Z[…

処理の順番の重要性を考える。

コードを書く時、僕は思いついた順にコードを書き連ねていきます。大抵はそれで上手くいっていたんですが、今日とあるコードを書いていた際、分岐の順番の違いからくるエラーに直面したので、記録に残しておこうと思います。 例えば def func(List): if List…

そろばん in python

数値とリストのインデックス値を組み合わせる練習でそろばんを作ってみました。 そろばん def print_abacus(value): a=len(str(value)) num=['|00000***** |','|00000**** *|','|00000*** **|','|00000** ***|', '|00000* ****|','|00000 *****|','|0000 0**…

returnステートメントのある関数、ない関数をprintすると

関数をprint文で呼び出す際に、不必要なNoneが求めている返り値と一緒に返されるのが気になったので調べてみました。 Random 'None' output from basic python function - Stack Overflowを参考にしました。 結論から言えばreturnステートメントの有無が問題…

一行で書ける回文判定 in Python

Pythonを用いて一行で回文判定をします。 ①素直に比べる def palindrome(string): return 0 if string==string[::-1] else 1 元の文と、逆から読んだ文が一致するか否かを比べる、特に説明する必要のないコード。シンプルイズザベストですね。 ②find関数を利…

ProjectEuler28をpythonで解く

寝る前に解いたら1時間近くかかってしまいました(笑) Problem28 Starting with the number 1 and moving to the right in a clockwise direction a 5 by 5 spiral is formed as follows: 21 22 23 24 25 20 7 8 9 10 19 6 1 2 11 18 5 4 3 12 17 16 15 14 …

ProjectEuler18 をpythonで

久しぶりにEulerです。 Maximum path sum I By starting at the top of the triangle below and moving to adjacent numbers on the row below, the maximum total from top to bottom is 23. 3 7 4 2 4 6 8 5 9 3That is, 3 + 7 + 4 + 9 = 23.Find the maxi…

Eclipseでpygameを使う

pygameをEclipseで使うには前回導入したインタープリタのライブラリにpygameを追加する必要があるようです。追加は前回インタープリタを設定した時と同じく、ウィンドウ⇒設定⇒インタープリタ-pythonで行います。使用するインタープリタを選択して、そのライ…

Eclipse+Pydevの導入

今までIDLEしか使ったことが無かったけど、今後のことを考えるとEclipseが欲しいかなと思ったので導入してみます。 本体導入⇒日本語化⇒pydev導入の順でやろうと思ったら、日本語化・pydev導入済みのありがたいパッケージを発見したので利用させてもらいます…

アイテムを動かす

前回は画面にアイテムを表示するまでを勉強したので、今回は表示したアイテムを動かして簡単なアニメーションをつくります。 アイテムを動かすためにいじるのは、アイテムの描画位置(x、y)の部分です。 前回のコードで言うとpygame.draw.rectの第三引数にあた…

メインループの概要と注意点

久々にpygame 今回はメインループの作り方と、ウィンドウを閉じさせる方法について。 メインループ 前回のループではwhile True:を利用してループを作りましたが、上のようにFalseを基準としてループを制御することもできます。 本文にはまず、EVENT1として…

projectEuler32をpythonで

Problem32「パンデジタル積」 すべての桁に 1 から n が一度だけ使われている数をn桁の数がパンデジタル (pandigital) であるということにしよう: 例えば5桁の数 15234 は1から5のパンデジタルである.7254 は面白い性質を持っている. 39 × 186 = 7254 と書け…

flip()とupdate()

前々回の最後に「display.flip() かdisplay.update()を使う」と書いていたのが、曖昧に思ったので調べてみました。 flip()はDisplay surface全体を更新するメソッドです。それ以前のコードによって画面上に変化があってもなくても、画面全体を完全に更新しま…

Surfaceって何だ?

今日はSurfaceについて学習しました。 Surface こちらのサイトを参考にしました。→初心者のためのpygame まとめると Surfaceは実際のゲーム画面にあたるDisplay surfaceと、その他のSurfaceに分けられる。 Surfaceは白紙の紙切れにあたり、その上にテキスト…

pygameを使ってみよう

インストールしたっきり触っていなかったので今日はpygameをいじってみる。 ウィンドウを作る まずpygame全体をimportして、その中ローカル属性からトップレベル全体を取り出す。 次いでpygame.imit()でpygame全体を初期化する。多分複数のモジュールによっ…

ProjectEuler11をpythonで解く

ProjectEulerを20番台まで解き進め、そろそろ未解答の問題が目立ってきたので片づけよう。 手始めにProblem11。 Project11 上の 20×20 の格子のうち, 対角線に沿って4つの数字が赤くマークされている.08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77…

ProjectEuler21で解く

problem21 d(n) を n の真の約数の和と定義する. (真の約数とは n 以外の約数のことである. ) もし, d(a) = b かつ d(b) = a (a ≠ b のとき) を満たすとき, a と b は友愛数(親和数)であるという.例えば, 220 の約数は 1, 2, 4, 5, 10, 11, 20, 22, 44, 55, …

pygameをインストール

「初めてのpython」を読み終え、最新のpythonチュートリアルで復習+初pyからの変更点確認も済んだので、早速pythonを使って何か始めよう。 ざっと検索したところpythonでゲーム制作ができるそうな。よし、これにしよう。 というわけでこちらのサイトを参考…