pythonで線形探索のサンプルプログラムを書いてみた


はじめに


pythonで線形探索のサンプルプログラムを書いてみました。

備忘録もかねて記載します!


サンプルコード

#!/usr/bin/python
# -*- Coding: utf-8 -*-
def linearSearch(arr,index):
    cnt = 0
    for i in range(len(arr)):
        if arr[cnt] == index:
            return 'Found!'
        elif arr[cnt] != index:
            cnt += 1
    return 'NotFound'
arr = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
index = 30
print linearSearch(arr,index)


割と簡単にかけました!


配列の番号を+1していくだけなので、比較的簡単かと思います!


それでは(/・ω・)/

LINE Botで温泉検索しよう!Ver3

はじめに

ちょっとずつ改修をしている温泉BOTがまた新しくなったので、そのご報告です!

背景


当初は、入力された地名の温泉情報をグーグル検索などのようにスマートに返すという方向性で作っていました。

しかし、そもそもLINE BOT を使うユーザーの方は、BOTをチャット感覚で使うので、それってBOTに雑談力というか、キャラクター性というか、馴染み安さみたいなものが必要なのではないのかなぁと思いまして、少しキャラクター性を出してみようと思いました。


仕上がり

Before

f:id:kokiiii:20180219143333p:plain

After


簡単なプログラムを追加しただけですけど、ユーザー体験的にこういう方が馴染みやすかったりしそうですね('ω')


今後個人でサービスを開発していくときにUX的な視点も大事になってくると思うので、技術的な勉強の合間に少しずつUXの勉強もしていこうと思いました。


以上、簡単ではありますが、温泉BOTの進捗報告でした!


f:id:kokiiii:20180215185304p:plain

pythonでシーザー暗号作成プログラムを作ってみた

はじめに

pythonでシーザー暗号作成プログラムを作ってみました。

背景

最近、CTFやプロコンなどに出場していこうと思い、勉強がてらにいろいろ調べていたら、シーザー暗号の問題を見つけました。 そこで、どんなもんかなと、実装してみようとおもった次第であります。

シーザー暗号とは

古代ローマ時代に使われた暗号技術だそうで、だいぶ古いそうです。
どういう暗号かといいますと、
とある文章で使われているアルファベットやひらがななどを、一定の文字数だけ「ずらす」ことによってつくられた暗号です。
例えば、与えられた文字列の文字を、三文字ずつずらしていくとなると

hatena (変換前の文字列)
kdwhqd (変換後の文字列)

という感じになります。

ちなみに、三文字ずらすことに限定されている訳ではなく、四文字ずらすこともあれば、五文字ずらすこともあります。

実装

以下が実装コードになります。

今回は三文字ずらすことを想定して実装しています。

#!/usr/bin/python
# -*- Coding: utf-8 -*-

inputStr = 'hatena'

def getConverseCodes(args):
    converseCodes = ''
    for s in args:
        #アスキーコードに変換
        s = ord(s)
        if 65 <= s and s<= 90:
            s = s + 3
        elif 97 <= s and s <= 122:
            s = s + 3
       #アスキーコードから文字を取得
        s = chr(s)
        converseCodes += s
    return converseCodes

print getConverseCodes(inputStr)

ちゃんと期待された値が返ってきてるので、大丈夫そうです!

kdwhqd


もう少し厳密にやらないといけないと思うんですけど、
今回は割愛します!


興味がある方は、ご自分でも実装してみてください!


そして何かコードに不備があればコメント欄にてぜひ教えてください。


それでは('ω')ノ

LINE Botで温泉検索しよう! Ver2

こんにちは!

最近インフルエンザが流行っているということで、

毎年かかっている私は、いつかかるのかと肝を冷やしています。

 

さて、本日は温泉を検索できるLINE BOT (通称:温泉さがしたろう)を少し改修しましたので、そのご報告でございます!

 

以前だと・・・

f:id:kokiiii:20180217221820j:plain

 

見ていただければわかると思うのですが、

変な数字が入ってしまったり、同じ文字列が複数あったりしてしまっていたと思うのですが、

 

 

20180219143333

少しコードを付けくわえて、

数字をなくしたのと、同じ文字列が表示されないようにしました。

 

早速ご登録いただいたユーザーさんからスーパー銭湯の情報も欲しいという声をいただいたので、今後はそのプログラムを追加していけるようにします!

 

以上進捗報告となりますが、

ぜひ興味のあるかたはご登録いただければとおもいます!

 

それでは('ω')

f:id:kokiiii:20180215185304p:plain

 

 

 

LINE Botで温泉検索しよう!

はじめに

地名で温泉を探せるLINE BOT作りました!

麻布、札幌、いわき、箱根etcの地名でそのエリアの温泉情報が取得できます。

検索処理が甘いところがあり、まだまだ実装の余地があるので、時間を見つけ開発していきたいと思います。

 

作った背景:

自分が温泉好きで色々なところにいって回ってるので、こんなものあれば便利かも!?と思い作りました。

 

開発について:

Google App Engine(以下GAE)を使い、pythonで作りました。フレームワークにflaskを使用しています。GAEは既にflaskなどの環境が用意されていたため、開発に専念できました。また、自前でデータを用意するのは時間的に厳しいな~と思ったので、じゃらんAPIを使いました。

Google Cloud Platform公式サイト

Flask公式サイト

じゃらんWebサービス - じゃらんnet

所感:

GAEが初めてだったため、導入に手間取りました。また、スーパー銭湯などといった小規模の温泉・銭湯についてのデータがなく、今のところは割かし有名な温泉のみを教えてくれるBotになっております。そこも踏まえ今後実装していければなと思います。

f:id:kokiiii:20180217221758j:plain

 

 

f:id:kokiiii:20180217221820j:plain

 

f:id:kokiiii:20180215185304p:plain

onsenbot

参考記事
LINE developers APIリファレンス
LINE Messaging API と Google App Engine でボットを作ってみた話
GoogleAppEngine/pyでLINE bot作る。シンプル全裸バージョン