yuki_tsumi’s blog

主に備忘録&備忘録

くっそサボった。

いやサボったって言うレベルでは・・・

まあ色々とありましてサボってしまいました。

富士急ハイランド行ったり・東京で飲んだり・就活したり)

(10月から就職が決まった)

1週間くらいはPCがない環境で生活していました。。。

その間PyQじゃなくてネットワークスペシャリストの勉強していました。

電車の中でマスタリングTCP/IP読んだりネスペシリーズの本を読んだり過去問をやったりしていました。

お陰でで午前Ⅱは問題文の先頭5文字で解答が出てくるようになりました(何か違う)

f:id:yuki_tsumi:20170805010058j:plain

 

 

これから

 

ネスペ試験まで後70日位なのでそちらをメインに勉強しようと思います。

でもお金ももったいないので1ヶ月経ったらPyQは解約しようと思っています。

(それまでにはなんとか全部ヤりきりたい)

 

が・ん・ば・る・ぞ!

PyQ 5日目

備忘録

・タプルのアンパック

display_size = (360, 640)

width, height = display_size

widthが360,heightが640になる

 

・.format(*タプルorリスト名)と指定すると、要素を一つづつ書いたのと同じになる。

d('a', 'b', 'c')があったとすると

.format(a, b, c)

.format(d[0],d[1],d[2])

.format(*d)

全て同じ

 

・.join()は結合。

','.join(変数とか)と書くと','を基準に結合する

 

・先頭から始まる文字の検索

row.startswith('文字')

row[:2] == '文字'

row.find('文字') == 0

全て同じ

 

今日出したエラー

その1.

  File "reservation_2.py", line 5
    if row.startswith('山田'):
    ^
IndentationError: expected an indented block

 インデントおかしいですよお兄さん。的なやつ

f:id:yuki_tsumi:20170724013920j:plain

言われた通りに5行目を見るとif文の位置が微妙におかしいですね(´・ω・`)

f:id:yuki_tsumi:20170724014049j:plain

と言う訳で修正。

 

 

本日の進捗状況

f:id:yuki_tsumi:20170724032249j:plain

Score

f:id:yuki_tsumi:20170724032323j:plain

PyQ 4日目終了

本日のハマった所

 

1.時刻の比較演算がわからなかった

f:id:yuki_tsumi:20170722162254j:plain

↑の7行目。

if 6 <= now.hour <14:

どうやって比較するのかわからず初めて解答をチラ見。

now.hourを使う事が出て来ないでdatetime.now()で比較してみたり、

datetime.time()で自分で時刻生成しようとしてみたりしたり、、、

 

 

 2.ファイル書き込み後の改行

問題的にはこんな感じ。

f:id:yuki_tsumi:20170722164857j:plain

 ほんで初期画面がこんな感じ。

f:id:yuki_tsumi:20170722164837j:plain

 それでとりあえずこんな感じに書き換え。

f:id:yuki_tsumi:20170722165106j:plain

これでオッケーだろ・・・と思って判定したらNG(´・ω・`)

output/working_days.logを見たら下の様になっており、改行されていない。

2016-07-112016-07-122016-07-132016-07-142016-07-15

f.write()って改行されないんだーなんて思いつつ下記のように修正したらエラー(´・ω・`)

f:id:yuki_tsumi:20170722165921j:plain

 エラー内容

File "working_days.py", line 8
f.write(work'\n')
                      ^
SyntaxError: invalid syntax

 あぁ・・・構文エラーね。

間違えて本当にすいませんでした。氏ね

と思いつつ変更してOKを貰いました。

f:id:yuki_tsumi:20170722170217j:plain

 

因みにPyQさんの解答は

f.write(work)

f.write()

 

 見たいな形でf.write()で改行していました(´・ω・`)どっちが良いのかな?

 

3.ファイルの書き込み

これは1時間位ハマった。。。

input/books.csvは1,500行程度。

正解のoutput/book_python.csvは189行。

問題

f:id:yuki_tsumi:20170722200350j:plain

 自分の解答

f:id:yuki_tsumi:20170722201323j:plain

 一見良さそうだけどこれが厄介でした・・・

初回だとこれでもオッケーなのだけど1行目に何か別のデータが有るとこれじゃダメ。

出力ファイルを見て「あーでもないこーでもない」自室で迷うこと1時間程。

とりあえずファイルを消そうということに落ち着いた()

それで出来たのが↓のコード。

f:id:yuki_tsumi:20170722201650j:plain

 はい。

我ながらksコードだと思います(´・ω・`)ww

 

因みに最初のコードを初見で入力し判定するとOKになります

(何回コードを実行してもOKです)

つまり'output/book_python.csv'が永遠と増えていく。

正答判定をしているっぽいコードを見たらどうやら188行以上だったらOKにするみたいです。

f:id:yuki_tsumi:20170722202515j:plain

 ちなみに模範

f:id:yuki_tsumi:20170722203546j:plain

 

リストに追加してそれを一つづつ取り出して書き込んでますね(´・ω・`)w

 

 

備忘録

・with open()のモード

r: 読み込み専用。省略可能(これまでのopen()はすべて読み込み専用です)

w: 書き込みするときに指定。ファイルが存在しない場合、新しいファイルが作られる。

x: ファイルが存在しない場合のみ、ファイルを作成し、書き込む。ファイルが存在する場合は何もしない。

a: 末尾に書き込み。ファイルが存在しない場合はファイルを作成し、書き込む。

・ファイル書き込み時は.write()で改行出来る

・コードの読みやすさ

自分の書いたコード。(実行速度0.35秒くらい)

f:id:yuki_tsumi:20170722220931j:plain

 模範解答コード。(実行速度0.15秒くらい)

f:id:yuki_tsumi:20170722221036j:plain

 毎度毎度.strftimeと.strptimeで変換している分遅くなっているのかなー?

模範解答の方が圧倒的に読みやすいな。。。

なるべくコメント入れて(自分でも)読みやすいコードになるように心がけよう。

 

 

気になった点

その1

出力が短いと動作の速度が気にならなかったけど、

出力が長いコードを試すと遅い。。。(処理に10数秒位かかる時も有り。)

動作を確認したい時にprintとかするとキツイ時がある。(breakで抜ければ良いんだけど)

 

その2

総合演習でいきなり知らないものが出てきたww

print("{}: {}".format(key, value)

.formatって何だよ(´・ω・`)ww

ちょっとコードの雰囲気が違うから別の人が作ったのかな?(´・ω・`)

 

 

 本日の進捗状況

 

f:id:yuki_tsumi:20170723034727j:plain

 

祝!Pythonはじめの一歩終了(・∀・)

4日目にして終了。

 

Score

f:id:yuki_tsumi:20170723035054j:plain

 

PyQ 3日目終了

あなた二日間サボりましたね??

はい。

その通りです。

本当に心から反省しています。

全国の皆さん申し訳ございません(2017/07/21現在アクセス解析だと自分しかアクセスしていない)

少し言い訳をさせてもらいますと、昨日面接を受けに東京まで行ったのですが、

その準備に大分時間が掛かってしまったのです・・・お陰で2次面接に行けることになりました。

 

 

というわけで2日ぶりのPyQやりますよ!

やりますよ!は良いのですが、早速軽くハマりました(・∀・)ww

f:id:yuki_tsumi:20170721201729j:plain

 

 

 

 

1.下記のエラーが出た。

SyntaxError: unexpected EOF while parsing

まあ普通にググれば出てくるのですが単純に17行目で閉じ括弧を忘れました。

 

2.直してこれは勝つる!と思って再度実行したら下記のエラーが・・・

Traceback (most recent call last):
File "3.py", line 14, in <module>
day = datetime.strptime(row, '%Y-%m-%d')
File "/usr/lib/python3.6/_strptime.py", line 565, in _strptime_datetime
tt, fraction = _strptime(data_string, format)
File "/usr/lib/python3.6/_strptime.py", line 365, in _strptime
data_string[found.end():])
ValueError: unconverted data remains:

未変換のデータがある??

まあ14行目でPythonさん怒っているみたいなのでとりあえず

14行目で一度dayをprintしてみることに。。。

そうしたらご丁寧に改行してあるじゃないですが。

そりゃPythonさんも怒りますよ(´・ω・`)

ということでrowに.rstrip()をつけて綺麗にしてあげたら意図した通りに動いてくれました。

 

 

 

全然進んでいないけど寝るお( ^ω^)

正直今日も朝から電車で3時間かけて帰ってきてから色々な所を回って申請とかしていたので疲れています。

今日たくさん寝て明日はたくさんやりますので・・・お許しを~

本日の成果↓

f:id:yuki_tsumi:20170721205419j:plain

 

Score

f:id:yuki_tsumi:20170721205441j:plain

 

PyQ 2日目終了

2日目にしてダレて来た(笑)

 

今日は辞書・集計・ファイル読み込み・文字操作をやったお。

f:id:yuki_tsumi:20170718222513j:plain

 

 

 

 

新しい発見

Scoreが表示されることを発見。

1つクリアする毎に1upしていく仕様らしい。

 

とりあえず今のScoreをup

f:id:yuki_tsumi:20170718222236j:plain

 

 

 

明日の学習予定

Pythonはじめの一歩を終わらせてPython初級に入る。

Python初級のデータ型までやれればおk

f:id:yuki_tsumi:20170718222703j:plain

 

 

追記

そう言えば今日エラーが出て結構悩んだ。(結局原因は全角スペースだった)

できればスペースも可視化していただけると助かるな。

PyQマラソンを完走したら運営にまとめて要望出してみるか(´・ω・`)

 

 

 

PyQ 1日目終了

とりあえず写経してみた

 

PyQのスタイルとしてとりあえず「写経→学習」見たいな感じ。

レイアウト的には↓のような感じ。

f:id:yuki_tsumi:20170718052710j:plain

 

↑画面が左と右に分割されていて真ん中にカーソルを合わせると自由に大きさがかえられる。↑

 

↓右上の実行ボタンを押すと画面右に入力されたコードの出力が下に表示される。↓

f:id:yuki_tsumi:20170718053148j:plain

 

 

 

実際に使ってみて

 

とりあえず今のところは特に困ったことは無い。

分からないことがあっても「http://docs.pyq.jp/index.html」を見れば大体の問題は解決するし、

まず出てきたことを組み合わせれば出来るので。。。(今のところ)

 

あえて上げるとするならエラーが発生した際にプラスアルファーで解説が入ると嬉しいかも。(まあググれば大抵解決する)

 

 

 

どんだけ進んだ?

 

f:id:yuki_tsumi:20170718055418j:plain

 

Pythonはじめの一歩

・print()、変数

・計算、if文

・list、for文

以上の3つのセクションと辞書の途中まで。

(終わると右上に旗が立つのがGood!)

 

「90日でプログラマーに」という見出しに釣られて

変な人のブログを見ていたらこんなサービスを紹介していた。

 

pyq.jp

 

ちょうど無職でIT関係の職を探していたのだけど未経験だし就職先どうしようかな~

なんて悩んでいた夏の暑い日に見つけてしまったのだ。

 

さ・ら・に

 

「90日間でプログラマーに」なんて見出しが!!!

 

f:id:yuki_tsumi:20170717203854j:plain

 

 

 

このタイトルを見た瞬間に私は思った。

くぁwせdrftgyふじこlp;@:「」

えっと・・・80+20+30+20=ひゃくごじゅうかな?

 

 

つまり150時間勉強すればプログラマーになれる!!!!(勝利確実)

無職だし1日10時間やれば15日♪(おんぷっぷ)

(自分でも天才的なひらめきをしたと思う)

 

 

というわけで勢いだけでPyQやろうと決意

 

しかも乞食体質の私としては2,980円/月のサービスだが下記の文言が・・・

f:id:yuki_tsumi:20170717204938j:plain

 

 

つまり、15日で全部終了させると50%OFFの1,490円!

言い換えるならば、半額・반값・5折!!!!

全世界の皆さまが大好きな言葉だと思います。

 

総括

がんばるぞ(小並感)