第1〜3週に受けた質問のまとめ

第1〜3週に受けた質問をまとめました。

Q: 現在Visual Studio Code をダウンロードしましたたが、実際にそこでプログラミングする場合に、他のextentions(pythonsなど)をインストールする必要がありますでしょうか?

皆さんが普段研究などで利用する場合には Python 向けの拡張をインストールして使う方が便利なため一般的ですので、入れて使ってください。ただし、他のエディターを使っている人も居ますので、Python 向けの拡張が無いと学習を進められない、というわけではありません。

Q: lib/libstdc++3.so は相対パスか?絶対パスか?という問題で / から始まっていないファイルは全て相対パスなのですか?

その通りです。頭に / がついていたら絶対パス、ついていなければ相対パスです。

Q: shell ですが、bashとzshはどちらを使うべきなのですか? 初心者なのでよくわかっていません。WSL2で使っています。

どちらでも構いません。必要な場面で切り替えて使うこともできます。(bash のプロンプトで zsh を起動する、など。) Linux では bash が標準的で macOS では zsh が標準的です。シェルスクリプトを自分で書き始めるまでは、あまり大きな差はないのではないでしょうか。

Q: Anaconda などのソフトとVSCのテキストエディタとの関係について紹介していただいていてもよろしいでしょうか。

Anaconda と VSC はジャンルが違うので比べることはできません(野球のバットと自転車ぐらいジャンルが違います。)し、関係もありません。Anaconda はソフトウェアをインストールすることを支援してくれるソフトウェアで、VSC はテキストエディタです。組み合わせて使うことも、別々に使うこともできます。

I found that IDLE seems to be only so called in China. IDLE and IDE are the same thing.

Nope. IDLE is an IDE, and is called IDLE in Japan as well. I'd say IDLE is an inferior version of more sophisticated IDEs like Visual Studio Code or PyCharm, so it's okay for you to use it, but generally there is a better option. If you stick to lightweight programs, IPython (Interactive Python) might be a choice for you.

Q: WSL2でUbuntuを使っています。anaconda3をUbuntuにinstallしたのですが、home/[user名]/anaconda3に入っています。anacondaの話を聞く前に、自分でPython3をinstallしてしまっていました。そのpython3が/usr/bin/に入っています。コマンドラインから python 〇〇と打ってプログラムを実行すると、anacondaのPython3ではなく、自前でinstallしたpythonが走ってしまいます。 defaultでanacondaのPythonが優先的に走るようにしたいのですが、どうしたらよいですか?

回答1「一般的な回答としては、コマンドラインから python 〇〇と打った時に起動する python は、環境変数 PATH に設定したディレクトリのうち python を含む最も最初のディレクトリとなりますので、環境変数PATHの中に設定されているディレクトリの順序を入れ替えてください。」

回答2「Anaconda を利用している場合には、環境変数PATHは Anaconda が書き換えて、現在利用中のconda環境の中にインストールされているソフトウェアを優先して起動します。例えば、Anaconda をインストールすると作られるデフォルトの conda 環境である "base" 環境を利用する場合には "conda activate base" (最後の base は conda 環境名を指定する。base の時のみ省略可能。)とコマンドラインでタイプすると "base" 環境にインストールされたソフトウェアが優先されるように環境変数PATHが書き換えられます。ですから、"conda activate" を実行すれば自分でPATHを書き換える必要はありません。また、一般的には、Anaconda のインストール時に、ログイン時に"conda activate base" を自動で実行するよう設定されます。」

Q: プロンプトが、(base)〇〇〇% となっている場合はanacondaの環境に入っているという意味なのですか?

プロンプトの文字列は任意に設定可能です(例えばコマンドプロンプトから export PS1=abc と入力してみてください。プロンプト文字列は abc になります。)ので、 一般的な話をするとプロンプトの文字列の意味は設定した人にしかわかりません。 conda activate コマンドを実行すると PS1 環境変数に "(conda環境名 )" を付加するので、特に設定をいじっていない Ubuntu にデフォルト設定で Anaconda をインストールするとおっしゃる意味になろうかと思います。

Q: JSON/XML/YAML などのシリアライズフォーマット: 初級テストの問題なんですが、「以下の XML ファイルで、「Pythonスタートブック」の著者は誰か。 複数の著者が居る場合にはアイウエオ順に連結して答えよ。」のアイウエオ順の連結方がわかりません

現在の e-learning のシステム制約上、複数の単語を答えとして入力させることができません。このため、複数の単語を答えさせるときには単語を連結して入力してもらっています。 このとき、単語を連結する順序が違うと誤答として判定されてしまいます。例えば『信号の3色は何?連結して答えよ。』に対して『赤黄青』は答えだが『青黄赤』は誤答、というようなことが起こります。 このため、複数の単語を答えさせるときには順序が一意になるように指定を加えています。将来的にはシステムを改修して順序を入れ替えて入力しても正答と判定されるようにします。 外国人の方であいうえお順が分からない、という可能性を考慮してあいうえお順についても説明します。 あいうえお順は五十音順とも呼ばれ、ひらがなを習うときに必ず出てくるひらがなの表に載っている順番「あいうえおかきくけこさしすせそ・・・」の順序です。 日本語の辞書ではこの順序で単語がソートされています。