最近のトラックバック

最近のコメント

2017年1月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
無料ブログはココログ

« 2016年9月 | トップページ | 2017年1月 »

2016年12月

2016年12月22日 (木)

Visual Studio Codeのアップデート

ver1.8.1がリリースされたのでアップデート。

インストーラーを使ってインストールしていたら、VS Codeを開いたタイミングでアップデートの通知してくれて、自動的にアップデートを行うことができるけど、zipファイルをダウンロードして解凍したものを使ってる場合は通知機能/アップデートをチェックする機能がついてない(なぜ?)。
なので手動でアップデート。
アップデートの仕方は、
  1. zipファイルをダウンロード
  2. zipファイルの解凍(今回だと"VSCode-win32-1.8.1"フォルダが作成されてその配下にファイルが展開される)
  3. 解凍したファイル("VSCode-win32-1.8.1"フォルダ配下のすべてのファイル・フォルダ)を、自分が使用しているVS Codeが存在するフォルダに丸ごと上書きコピー
こんだけ。

2016年12月20日 (火)

リスト内包とif

リスト内容表記で、if文を書くときはforの後ろに書くけど、elseを追加するとforの前に書かないといけないというのもヘンだなぁ。

>>> [a for a in range(3)]
[0, 1, 2]

# ifを前に書くとエラー
>>> [a if a > 0 for a in range(3)]
SyntaxError: invalid syntax

# elseを追加するとOK
>>> [a if a > 0 else '' for a in range(3)]
['', 1, 2]

# elifはNG
>>> [a if a > 0 elif a < 0  '' for a in range(3)]
SyntaxError: invalid syntax

# 後ろに書くとOK
>>> [a for a in range(3) if a > 0]
[1, 2]
>>>

二次元配列のコピー(解決というか確認)

>>> id(a)
804835952200
>>> id(b)
804835950728


# 以下のようにやるとOK
>>> import copy
>>> b=copy.deepcopy(b)
>>> b
[[6, 2, 3], [4, 5, 6]]
>>> a
[[6, 2, 3], [4, 5, 6]]
>>> a[0][0]=9
>>> a
[[9, 2, 3], [4, 5, 6]]
>>> b
[[6, 2, 3], [4, 5, 6]]
>>>

2016年12月19日 (月)

二次元配列のコピーで、あれ?

# 言わずもがなの例
>>> a=[1,2,3]
>>> b=a
>>> a[0]=2
>>> b
[2, 2, 3]
>>> b=a[:]
>>> a[0]=4
>>> b
[2, 2, 3]
# だけど、試しに二次元配列にして
>>> a=[[1,2,3],[4,5,6]]
>>> a
[[1, 2, 3], [4, 5, 6]]
>>> b=a
>>> b
[[1, 2, 3], [4, 5, 6]]
>>> a[0][0]=2
>>> a
[[2, 2, 3], [4, 5, 6]]
>>> b
[[2, 2, 3], [4, 5, 6]]
# これは当然
# んで、
>>> b=a[:]
>>> b
[[2, 2, 3], [4, 5, 6]]
>>> a
[[2, 2, 3], [4, 5, 6]]
>>> a[0][0]=4
>>> a
[[4, 2, 3], [4, 5, 6]]
>>> b
[[4, 2, 3], [4, 5, 6]]
# あれ?
# じゃ、試しに
>>> b=a[:][:]
>>> a[0][0]=6
>>> a
[[6, 2, 3], [4, 5, 6]]
>>> b
[[6, 2, 3], [4, 5, 6]]
# これもだめ

もしかすると
ただし、リストの中身が辞書のような参照先のあるオブジェクトである場合は、上記の方法でリストのコピーができても、中身の辞書は参照先が渡されるためコピーできません。

に該当するのかな。

続きを読む "二次元配列のコピーで、あれ?" »

2016年12月17日 (土)

リスト(シーケンス、文字列)を一文字毎の配列に変換

備忘のためにメモ。

リストを一文字づつの配列に
>>> d="abcd"
>>> list(d)
['a', 'b', 'c', 'd']

以下は残骸。最初はsplitでできないか試した残骸。
>>> d.split()
['abcd']
>>> d.split("")
Traceback (most recent call last):
  File "<pyshell#26>", line 1, in <module>
    d.split("")
ValueError: empty separator
>>> d.split('')
Traceback (most recent call last):
  File "<pyshell#27>", line 1, in <module>
    d.split('')
ValueError: empty separator

2016年12月11日 (日)

Pythonインストール

Windowsパソコンにインストールしようとする。

ただしPCの制約から、インストーラーではなくzipファイルから解凍してPythonをインストールすることを選択。

要はUAC画面を表示させたくないし(UACを無効にする気もないし)、管理者権限が必要なインストールはしたくなかったと。

その時点ではWinPythonの存在を知らず、色んなブログで取り上げられてたAnacondaは、別のPCで試しにやったらUAC画面が出てきたので、Python.orgからWindows x86-64 embeddable zip fileをダウンロードして解凍することに。
解凍して、いくつか環境変数(PYTHONPATH/PYTHONHOME)を定義し、パスに追加設定した状態でコマンドプロンプトを開いて、Python.exeを実行すると問題なく動作したのを確認。
通常のインストーラーを利用してインストールしたPCと比較すると、libとかScriptsとかのフォルダが存在しない。
とりあず、libとScriptsフォルダを作成し、環境変数PYTHONPATHとPATHに両方とも追加。まぁ、何もないけど。
解凍したこの状態では、ランチャーのpyもないし、pipも存在しない。

2016年12月10日 (土)

WinPythonのWinPython Powershell Prompt.exeを起動するとエラーがでる

Python.orgからダウンロードしたPythonとは別に、追加でWinPythonをダウンロードしてインストール。

試しにWinPythonに含まれているPowerShell(WinPython Powershell Prompt.exe)を起動してみた。 すると、

"WindowSize" の設定中に例外が発生しました: "ウィンドウの幅は 192 を上回ることができません

というエラーが表示される。
WinPython_PS_Prompt.ps1というスクリプトでエラーが表示されるので中を確認すると、ウィンドウサイズを指定する箇所が問題らしい。
Set-WindowSize 210 40 6000
Set-WindowSize内で
$size = New-Object System.Management.Automation.Host.Size($x,$y)
$host.ui.rawui.WindowSize = $size 
という風に指定している。
なので、210としている箇所を192よりも小さい値に変更。
するとエラーは表示されなくなった。

« 2016年9月 | トップページ | 2017年1月 »