面白いものがあったので…
http://gigazine.net/index.php?/news/comments/20081021_headwaters/
最後のほうに乗っている質問をPython使って解いてみる。
確認環境はpython2.5。
取り合えず第一問…それにしても俺のコード汚いなぁ。
ageMultiply = 36
result =
print '3人の年齢を掛けた数値:' + str(ageMultiply)
for n1 in xrange(ageMultiply):
if n1 and ageMultiply % n1 == 0 :
ageDivision1 = ageMultiply / n1
for n2 in xrange(ageMultiply):
if n1 <= n2 and ageDivision1 % n2 == 0 :
ageDivision2 = ageDivision1 / n2
if n2 <= ageDivision2 :
tempList =
tempList.append(str(n1))
tempList.append(str(n2))
tempList.append(str(ageDivision2))
tempList.sort()
result.append(tempList)
for anser in result:
print anser
結果
3人の年齢を掛けた数値:36 ['1', '1', '36'] ['1', '18', '2'] ['1', '12', '3'] ['1', '4', '9'] ['1', '6', '6'] ['2', '2', '9'] ['2', '3', '6'] ['3', '3', '4']
年下の二人がお古を着まわせて番地の数字になりそうな年齢の組み合わせは…
['2', '3', '6']
['1', '4', '9']
辺りかな?
追記の補足と蛇足
補足
ところで、私が答えをみつけたように見える件。わたしは「なるほどー」と言っていたように、人の話を聞いて気がついただけです。しょぼくてすみません。
と言っていたので此方にも転記。
書き方悪くてすみませんorz
蛇足
['1', '6', '6']が候補に入らない理由は上の二人が同じ年齢だと「下の二人がお古を着まわせる」条件に合わないから。
と言うのを加味して最終版?
最初のに追加するといい感じに最終候補の二つまで絞れた。
# 「私には問題文から番地はわからないが、サムは分かってるはず」を前提に、合計が重複する組み合わせをチョイス
sumList =
dual =
for anser in result:
sumAnser = 0
for addInt in anser:
sumAnser += int(addInt)
for chk in sumList:
if sumAnser in chk:
dual.append(chk)
dual.append([sumAnser, anser])
sumList.append([sumAnser,anser])
print '合計\t3人の年齢'
for printDual in dual:
print printDual
#idほにゃららって書くと自動トラバだったのか…なんて罠だ。
Access使ってみる
こんな感じらしい。
ちなみに対象mdbがロックされているとOpenでエラーになる。
ソース
#! C:\Python\python # coding: sjis import win32com.client adoCnt = win32com.client.Dispatch("ADODB.Connection") dsn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:/PythonSample/sample.mdb" adoCnt.Open(dsn) adoRst = win32com.client.Dispatch("ADODB.Recordset") # metaタグデータ取得 sql = "select * from META" adoRst.Open(sql, adoCnt, 1, 3) while(adoRst.EOF == False): print adoRst.Fields("id").Value print adoRst.Fields("name").Value print adoRst.Fields("content").Value adoRst.MoveNext() adoRst.Close() adoCnt.Close()
高校からの友人に恋愛感について激しくDisられた件。
少し前から彼女とウチの親に挨拶しに我が地元に行くって話をしとりました。
で、その地元の友人が近所に旅行に来ていたので会って観光やら付き合ってた時に。
「地元に行ってる間、夜に友達とご飯食べて友達の家泊まるね」
と言われた。
親に会う云々のスケジュールはまだ決めていない時点での話。
そんな話する場じゃねーだろうってのと、目的がまるで友達に会いに行っているような言い方だったので
「え、その友達に俺は会えないの?」とか「んじゃあ俺は(地元には)行かないから1人でいっといで」
と伝えたところ。
旅行に来ていた友人から「幾らなんでも束縛しすぎだろう」と言われた。
まさかそんな事言われると思わなかったので、つい話に関係無いそいつの身体的特徴をDisってしまった。
子供か俺は。
つーか幾ら勝手の知った土地に行くにしても、一緒に旅行している彼氏を放置して友達に会うのって普通なの?
feedparserでよくわからないエラーが出た。
parseしたデータからentrie.categoriesすると出た。
Traceback (most recent call last): File "test.py", line 66, in ? print category["None"] TypeError: tuple indices must be integers
タプルとは※Wikipediaより
Pythonにおけるタプルとは、いくつかの値 (数値型、文字列型など)をひとつにまとめて、あたかもひとつの値のように扱う機能である。 カッコで複数の値をまとめるという見た目が似ているのでよくリストや配列と混同されるが、タプルは目的が異なっており、リストや配列が同質の (同じ型をもつ) オブジェクトをまとめるのに対し、タプルは用途や型が異なるオブジェクトをひとつにまとめるために使われる。 このためタプルの働きは、むしろC言語の構造体に似ているといえる。構造体には通常異なる型や名前をもった値がまとめて格納される。 これによって、本来ならばひとつの値しか扱えない箇所(関数の返り値や、変数への代入、配列の各要素など) で複数の値を同時に扱うことが可能になる。 Python のタプルはこの構造体を匿名にしたようなものと考えることができる。 たとえば ('A', 1) という 2つの要素 (文字列および整数) からなるタプルを考えてみよう。 タプルは、ひとつの「かたまり」として変数に代入できる。
…リスト?かと思いきやimmutableらしい。
list()関数とtuple関数で行き来できるようなのでsortする時はlistに変換か。
何で最初からlistじゃないのか教えてえろいひと!