文字列の比較で疑問(2)
d1 = 'string' d2 = d1 'yes' if d1 == d2 else 'no' # => 'yes' 'yes' if d1 is d2 else 'no' # => 'yes'
おっ?何かが見えてきたような気がする。
[追記]気のせいだった。うーむ。
文字列の比較で疑問(1)
d1 = 'string' d2 = 'string' 'yes' if d1 == d2 else 'no' # => 'yes' 'yes' if d1 is d2 else 'no' # => 'yes'
ふむふむ
d1 = 'str int' d2 = 'str int' 'yes' if d1 == d2 else 'no' # => 'yes' 'yes' if d1 is d2 else 'no' # => 'no'
えっなんで?自分がこれを理解するためには何を知ればいいんだ??
俺的アイドルマスター
女の子をアイドルとして成長させるゲームだと認識してます。
しかしかわいい&歌うまいだけじゃやっていけないこのご時勢。
何が必要か。そう、腕っ節です。
というわけで、こんなアイドルマスターがあったら買うと思ったことをずらずらと。
- 基本的には女の子をかわいいアイドルとして育てる
- 稼いだお金で衣装やグッズを購入する
- スタイルを良くするまたは維持するために筋トレする
- 他のアイドルを蹴落とすためにバトルする(スト4的)
- 負けたアイドルは負傷してペナルティ負う(衣装がボロクソになるとか顔に傷が出来て7日間活動できないとか)
こんなの。
なんというか、筋トレばっかりやってファイターみたいになったムキムキアイドルがセパレートの衣装着たら8つに割れた腹筋が見えてしまって相当ニッチな需要にしか応えられないし老いれば速攻消えてしまうんじゃないかイヤそれはそれでいいんじゃないか。
だからって歌とダンスばっかりやってたらちょっと人気出てきたときに他のアイドルにボコボコにされて表に出れずAVでも拒否されるレベルになってしまうから有る程度格闘もさせないとね。そしてバトルではくにおくんよろしく武器OKで。とかね。
裏でも表でも1位をキープするのは難しいと思うんですよね。そんなゲームないですか?
文字列置換
知らなかった事を恥じたので書く。
a = 'strA' b = 'strB' c = 'strC' text = '1st : %s, 2nd : %s, 3rd : %s' print text % (a, b, c) #=> 1st : strA, 2nd : strB, 3rd : strC tpl = (a, b, c) text = '1st : %s' print text % tpl #=> 1st : strA, 2nd : strB, 3rd : strC text = '1st : %s' print text % (a,) #=> 1st : strA tpl = (a,) text = '1st : %s' print text % tpl #=> 1st : strA text = '1st : %s' print text % a #=> 1st : strA text = '1st : %s' print text % (a) #=> 1st : strA
データの有効期限をdatetime使ってチェックする
よくある、サービスに登録すると登録確認用URLが記載されたメールが送信されて、そのURLへアクセスすると登録完了となるようなもの。で、有効期限を定める部分と有効期間内かどうかをチェックする部分。
from google.appengine.ext import db import datetime class SaveData(db.Model): time_limit = db.DateTimeProperty() auth_element = db.StringProperty() def set_data(self, time_limit, auth_element): if not isinstance(time_limit, datetime.datetime) : return False if not isnstance(auth_element, unicode) : return False self.time_limit = time_limit self.auth_element = auth_element try: self.put() return self.key() except: return False def get_data(self, key): if not isinstance(key, unicode) : return False try: return self.get(key) except: return False class Action : TIME_LIMIT_HOUR = 24 # 有効期限24時間 # 確認URL取得 def get_confirm_url(self): key = self._get_confirm_key() return = self._confirm_url() % key def _confirm_url(self): return 'http://hogehage.com/?key=%s' def _get_confirm_key(self): time_limit = self._create_time_limit(self.TIME_LIMIT_HOUR) auth_element = self._create_auth_element() sd = SaveData() confirm_key = sd.set_data(time_limit, auth_element) return str(confirm_key) def _create_time_limit(self, hour): second_span = 60 * hour # 有効期間(秒) return datetime.datetime.now() + datetime.timedelta(0, second_span) def _create_auth_element(self): # 必要な情報をごにょごにょ return u'' # 有効かの確認 def is_effective(self, requested_key): confirm_data = self._confirm_data(requested_key) if not confirm_data : return False if not self._is_effective_timespan(confirm_data.time_limit) : return False return True def _get_confirm_data(self, requested_key) : sd = SaveData() return sd.get_data() def _is_effective_timespan(self, time_limit) : now = datetime.datetime.now() time_diff = now - time_limit if time_diff > datetime.timedelta(0) : return False else : return True
メモレベル。色々肉付けしなきゃー
ネーミングセンスってどうやって鍛えればいいのかな。
NHK教育の数学番組でやってたカードマジックの答えだけ返すコード書いた
秋山仁さんが好きだ(`・ω・´)
それはおいておいて。答えだけ求めるコード書いた。
def nhalf(dlist, st=0): rlist = dlist[st::2] if len(rlist) == 1 : print rlist[0] else : if dlist[-1] == rlist[-1] : last = 1 else : last = 0 nhalf(rlist, last) def last_one(num): data = range(num+1) data.pop(0) nhalf(data) # 実行 last_one(6) #=> 5 last_one(7) #=> 7 last_one(8) #=> 1
でーきたっ
Djangoのテンプレートエンジン使ってhtmlファイル内でif記述した時に詰まった事
例えばこう
from django.http import HttpResponse from django.template import Context from django.template import loader def index(request): data = [ {'name' : 'David', 'age' : '15', 'alive' : 'true'}, {'namd' : 'Beyonetta', 'age' : '2025', 'alive' : 'false'}, {'name' : 'Mizuki', 'age' : '0x1B', 'alive' :'true'}, ] t = loadeer.get_template('index.html') return HttpResponse(t.render({'data':data}))
テンプレートでは「alive」の値が「true」なら「生きてる」、そうでなければ「生きてるとはいえない」と表示したい
{# ループ開始タグ #} {% for val in data %} {# name 要素の表示 #} Name : {{ val.name }}<br> {# age 要素の表示 #} Age : {{ val.age }}<br> {# 要素判定 #} {% ifequal val.alive 'true' %} 生きてる {% else %} 生きてるとはいえない {% endifequal %} <br> {# ループ終了タグ #} {% endfor %}
ノリで「{% if val.alive == 'true' %}生きてる{% endif %}」って書いたらエラーが出たのでマニュアル見た。
Django テンプレート言語 ― Django v1.0 documentation