PyQオフィシャルブログ

Pythonのオンライン学習プラットフォームPyQのオフィシャルブログです

ついに、PyQのエディターに入力補完機能とショートカット機能がリリースされました

f:id:hirokiky:20171204145318p:plain

id:hirokiky です。とても長い間、待ちに待った機能をやっとリリースできました。 PyQ (https://pyq.jp/) に、 入力補完機能とキーボードショートカット機能をリリースしました!

pyq.jp

入力補完機能のリリース

PyQのエディター上で、入力補完ができるようになりました。 とてもたくさんご要望いただいていた機能です。ご要望いただいた皆さまありがとうございました。

エディター上で 文字の入力中にTabキーを押すと入力補完が使えます

  • 何度も入力する importopen などが補完されますので、 繰り返しタイプするストレスから開放されます
  • 変数名の補完が効きますので、 打ち間違いによるストレスやミスがなくなります
  • 「入力補完があると便利」というメタな知識の勉強になります

入力補完できる範囲

PyQのエディターで対応した入力補完は以下の範囲です。

  • Pythonのキーワード(import など)と組み込み関数(enumerate など)
  • 直近入力した変数や単語

一般的なエディターで対応されている範囲に対応しています。

Pythonの変数の中身を解釈するような動的な入力補完には対応しておりません。 プログラミングの学習プラットフォームとして、ストレスなく学習に集中できるようエディターも便利に作っていければと思います。

キーボードショートカット機能のリリース

エディターで入力中に キーボードショートカットを使って「プログラムの実行」や「判定」を行えるようにしました。 逐次、「実行」や「判定」のボタンをクリックしにいかずにエディターから実行できるようになりましたので、プログラムのトライアンドエラーを素早く繰り返せるようになりました。

また、 入力のやり直しプログラムの先頭に移動 などの、プログラミングでよく使うショートカットにも対応しています。

f:id:hirokiky:20171204150444p:plain

ショートカットの一覧はいつでも確認できます。

f:id:hirokiky:20171204154244p:plain

このキーボードショートカットを使いたい人は今後、よりストレスなくPyQで学習いただけると思います。

また、これまで使ったことの無い方、知らなかった方はPyQを通して「 入力補完やキーボードショートカットを使えばもっとプログラミングは便利になるんだ 」ということを知ってもらえれば良いなと思います。

実際にPyQ以外でプログラミングをする場合にも、入力の補完やキーボードショートカットでプログラミングのやりやすさは格段に向上します。

まとめ

PyQは今、よりストレスなく・挫折なく集中して学べるようにシステムや問題を改善しています。 プログラミングは苦痛、同じ文字の入力ばかりでつらいとならず、エディターを通してもプログラミングの魅力を伝えていきたいと思います。 より多くの人がプログラミング・Pythonの魅力と深みを知ってもらえるよう今後も開発してまいります。

せっかくのクリスマスと年末年始、このリリースがPyQからのクリスマスプレゼント(の一つ)になれば嬉しいです。

pyq.jp

PyQの使いやすさ向上と問題点を修正するリリースをしました。

id:hirokiky です。

今日は PyQ https://pyq.jp/ へのリリースのお知らせです。 学習するうえで小さなストレスとなっていた問題を改善しました。

現在PyQは学習するうえでの障壁やストレスをなくそうと積極的に開発しています。 大きな新機能やコンテンツのリリース、大型の販促やキャンペーンなどはありませんが、今お使いいただいているユーザーの方々が確実に満足いただけるような製品を目指しています。

PyQでより ストレスなく挫折なく 、集中してプログラミング・Pythonを学んでいただけるように取り組んでいます。

pyq.jp

リリースの内容

1 コースの「次のクエスト」を改善しました

「次のクエスト」で、直近に学習したクエストを考慮して「その次のクリアしていないクエスト」をオススメするよう変更しました。 クエストを飛ばして学習したときなども、そのさらに「次のクエスト」として考慮するようになりました。

f:id:hirokiky:20171128141209p:plain

2 「ターミナル」でスクロールできるように修正しました

Flake8のクエストなどで、ターミナルからflake8コマンドを実行したときに全文が見えない問題がありました

f:id:hirokiky:20171128141222p:plain

3 クエストのリセットをしたときに、問題のクリア状況もリセットするように修正しました

クエストをリセットしたときにプログラムはリセットされてましたが、クリア状況がリセットされていなかったのを修正しました。 復習の状況もどこまで復習したかが分かりやすくなりました。

f:id:hirokiky:20171128141238p:plain

4 フラッシュメッセージをクリックで削除できるように修正しました

「〜を保存しました」などのフラッシュメッセージの下にあるリンクを、消えるまでの数秒クリックできない問題を修正しました。

f:id:hirokiky:20171128141350p:plain

5 フォントサイズやデザインを調整して、より見やすく学習に集中しやすい画面に改善しました

フォントサイズを大きくしてプログラムを読みやすいように変更しました。 他にも細かな画面の幅や、一覧での表示をまとめるなどの改善をしました。

f:id:hirokiky:20171128142003p:plain

今後も ストレスなく挫折なく 、集中してプログラミング・Pythonを学んでいただけるように取り組んでいます。

pyq.jp

辞書のキーの長さを取るにはどうすれば良いですか?への回答とlenの解説

id:hirokiky です。 今日はPythonの便利な len 関数について、 PyQサポート で回答したことから抜粋してお伝えします。

Python公式ドキュメントlen関数: https://docs.python.jp/3/library/functions.html#len

ご質問と回答

辞書から d.keys() で dict_keys(['年齢', '身長', '体重', '視力', '名前']) を取り出せました。 このkeyがいくつあるかを取得することはできますか?どうすればよいですか? (この例では5)

はい。可能です! len という関数を使うことで、キーの数を取得できます。

d = {"年齢": 25, "身長": 165, "体重": 45, "視力": 0.1, "名前": "清原"}
keys = d.keys()

# 長さを取得して、表示する
key_length = len(keys)
print(key_length)

また、辞書のキーの数は辞書の要素数と同じ意味になります。 以下のように直接 len(d) としても同じ値が取得できます。

len(d)

len関数は他にも使えます

len(長さや数を測りたいもの) とすることで値が取れます。 他にも複数の値を持つものであれば len が使えます。

# リスト
l = ["A", "B", "C"]
len(l)  # リスト l の長さ 3 になります

# 文字列
s = "清原弘貴"
len(s)  # 文字列 s の長さ 4 になります

# 辞書
d = {"年齢": 25, "身長": 165, "体重": 45, "視力": 0.1, "名前": "清原"}
len(d)  # 辞書 d の要素の数 5 になります

keys = d.keys()
len(keys)  # 辞書 d のキーの数 5 になります(要素の数と同じです)

# 集合
s = {"a", "b"}
len(s)  # 集合 s の要素の数 2 になります

ですが、数値などには長さがありませんのでエラーになります。 「TypeError(型の間違いのエラー): int の型は len が無いよ」というエラーです。

>>> len(8)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: object of type 'int' has no len()

ちょっと踏み込んで:lenってどういう仕組みなの?

少し難しい内容になるかもしれませんが、Pythonの深い部分のお話です。 len はPythonの色々な型(辞書、リストや集合)に対して使えますが、どういった仕組みで動作しているんでしょう。

清水川さん の「Pythonはどうやってlen関数で長さを手にいれているの?」というPyConJP2017年の発表が参考になります (初級から順に説明されているので、少し覗いてみるだけでも面白いです)。

以上です。

len はPythonのプログラム中でもよく使われる関数です。 ぜひ使い方を身につけておきましょう。

PyQのサポートでは「プログラムが動かない」という質問だけでなく「これって何なの?」や「意味の解説をしてほしい」などのご質問も受け付けています。 ぜひ、Pythonやプログラミングの疑問を解決して効果的にプログラミングを身に着けられるようになりましょう。

pyq.jp

「Pythonはじめの一歩」で「判定」結果を分かりやすくして挫折しにくい問題に改善しました

こんにちは、かめちゃんです。 ご要望の多かった「判定」の出力を改善したお知らせです。「Pythonはじめの一歩」部分のみですが、判定結果の表示を改善しました。

修正前

f:id:kamekokamekame:20171109112245p:plain

修正後

f:id:kamekokamekame:20171109112304p:plain

特に写経通りに書けずに判定がNGになっていた場合にどの場所が原因で判定がNGになっているか表示するようにしました。

f:id:kamekokamekame:20171109112315p:plain

合格時も「OK」と出ていただけのものを「実行結果」も表示されるようになりました。

修正前

f:id:kamekokamekame:20171109112241p:plain

修正後

f:id:kamekokamekame:20171109112319p:plain

PyQを開始してすぐに進めなくなり挫折してしまうと、学びたかったことが学べなくなってしまうので対応しました。 学習している内容のレベルに応じて「判定」の説明の丁寧さを調整しています。 最終的には実際のプログラミングの現場と同じようなエラー、テスト結果を読めることを目標としています。

今回のリリースで入った他の変更については、更新履歴 2017-11-14を御覧ください。

PyQ開発チームでは改善内容を決める時に皆様のフィードバック、ご要望にもお答えできるように常に議論しています。これからも良いことも悪いこともフィードバックください。皆様の学びがストレス無く、スムーズに行えるように今後もPyQは改善を続けて行きます!

pyq.jp

PyQに「学習履歴のリセット」機能をリリースしました。

id:hirokiky です。

ご要望をたくさんいただいていた、「学習履歴のリセット」機能をリリースしました。

とにかく全てリセットして全部復習したい!という方、少し期間が空いてしまったので初めから学びたい方にオススメです。

記憶は時間とともに忘れられていくので、適切なタイミングで復習をして記憶を強化するのがオススメです。 完全に忘れてしまう前に復習することで覚え直す時間を節約できますし、プログラミングをスキルとして「身についた」状態にできます。

忘却曲線 - Wikipedia

リセットの方法

1.画面右上の「設定」ボタンをクリック。

f:id:hirokiky:20171026113245p:plain

2. サイドバーの「学習履歴のリセット」をクリック。

f:id:hirokiky:20171026113338p:plain

3.「学習履歴をリセットする」ボタンをクリック

「学習履歴をリセットする」ボタンをクリックすると、全ての学習履歴がリセットされます。

  • 問題を「クリア」したという進捗の履歴
  • 問題中に書いたプログラム

f:id:hirokiky:20171026113409p:plain

ただし、投稿した回答やコメント、ユーザーアカウントは消されません。

また1からPyQで学び直したいというときに、ぜひご活用ください。