Pythonの基本の基本メモ

メモです。

 

x = 18

x + 15

x ** 3

y = 54

x + y

 

g = input(“数字を入力してください:”)

print(g)

g + 32

g ** 3

 

モジュール

import math

PyCharm

math.floor(18.7)

math.pi

math.sqrt(81)

doraemon = math.sqrt

doraemon(81)

 

Pythonのコードをファイルとして保存、実行

hogehoge.py

python hogehoge.py

プログラミングとは?

プログラミングとは本当に簡単に言うと「コンピューターに対してああしろ、こうしろと命令できる道具」です。プログラミング言語にはたくさんの種類がありますが、どれも根本は同じです。じゃあ何ができるの?ということですが、本当にたくさんあってそれをここであげると、圧倒されてしまいそうなのでひかえることにしましょう。

よく入門で見られるのは、例えばPythonというプログラミング言語だとしたら…

print(“Hello World”)

これはどういうことかというと「ねえ、Pythonさん。printというPythonさんが持っている関数を使うので、コンピューター(OS)さんにHello Worldという文字を画面に表示してくださいという命令をしてくださいな。」ということをいっているのです。

プログラミングは料理に大変よく似ています。料理をするときには、スーパーから食材を買ってきてそれを加熱したり、調味料を加えたり、煮たり、焼いたりします。料理の特に初心者はレシピを見てそれにしたがって見よう見まねでひとつの料理を作っていきますが、プログラミングも全く同じです。プログラミングもそれぞれの言語に用意されている食材(モジュール、クラス、ライブラリなど)を使って、いろいろコンピューターに命令をしていきます。

コンピューターにああしろ、こうしろと命令できるのですから、ここで紹介したprintというのは命令する言葉なのです。当然他にも命令する言葉がたくさんありますので、それを少しずつ学んでいきましょう。

中学生のためのプログラミング

ある学校で数学を教えていて、授業でちょっとだけプログラミングを紹介するととても興味を持つ子供たちがいるのをここ数年肌で感じている。もしかして、中にはちょっと背中を押してあげることですごいことを成し遂げてしまう子供たちがいるのではないか?と希望的想像をしてしまう。

ネットを探ってみると大人ならなんとかなるが、中学生向けのようなプログラミング入門のサイトはない。何かできないかなあと考えているのだが…

.NETコミュニティ

.NETの初期には自分も非常にウキウキして.NETのコミュニティに参加していたのだが、今はそれがほとんどなくなってしまった。興味を失ったということでもないのだが、フォーラムには全然参加していない。

.NETの初期の頃は創成期ということもあり、自分もそんな時代に参加できて嬉しいと思っていたが、.NETが誕生してからもうすぐ10年ということもあり、なんとなく成熟してしまったような感じがする。フレームワークが成熟したので、Win32のAPIを使ってゴリゴリ書くこともほぼない。

PythonやRubyをちょっとかじってみたが、やっぱり.NETやPowerShellの便利さには負けるような気がする。だからこそこの素晴らしさを伝えるためにとは思うが、以前のようにウキウキ感がない。コア部分がオープンソース化したのは大変興味深いが…

.NETのオープンソース化

.NETのオープンソース化は予想してなかった。全く意外と言うしかない。Microsoftの主な収入源はWindowsとOffice。特にOSであるWindowsは会社として押していかなければ、会社の存続問題になってしまうはず。それなのに、他のプラットフォームにも移植可能にしてしまい、しかもそれをオープンソース化してしまったことに、非常に驚いている。

最近は、自分の興味の対象が仕事で使用する以外はMicrosoftから結構離れてしまっていたので、昨夜はむさぼるようにそれに関する情報を見聞きしていた。仕事ではWindows、プライベートではMac使いの自分としては大変興味深く面白い動きで、Microsoftの動向に注目したいと思うのだ。

そもそも、Microsoftがこういう戦略に出たのはどうしてだろうか。今年はCEOが変わったが、この動きは絶対に今年に始まったことではないだろう。このようなプロジェクトは何年も時間がかかるはずだ。スティーブ・バルマー時代にすでにそういう動きはあったのだろう。この動きに関してもう少しリサーチしてみることにしよう。

TeamCityのbuild counterをC#でリセットなど

拾い物でメモしておきたいので書いておきます。

public class TeamCityVersionIncrementer { private readonly string _buildCounterUri; private readonly NetworkCredential _credentials; public TeamCityVersionIncrementer() { _buildCounterUri = “http://[server]/httpAuth/app/rest/buildTypes/bt5/settings/buildNumberCounter”; _credentials = new NetworkCredential(“[user]“, “[pass]“); } public int Increment() { int originalCounter = GetBuildCounterFromTeamCity(); UpdateCounter(originalCounter + 1); int counterAfterIncrement = GetBuildCounterFromTeamCity(); if (counterAfterIncrement != originalCounter + 1) { throw new ApplicationException(“Expected build to be incremented to ” + (originalCounter + 1) + “but was ” + counterAfterIncrement); } return counterAfterIncrement; } private int GetBuildCounterFromTeamCity() { WebRequest webrequest = WebRequest.Create(_buildCounterUri); webrequest.Credentials = _credentials; webrequest.Method = “GET”; WebResponse webResponse = webrequest.GetResponse(); using (var reader = new StreamReader(webResponse.GetResponseStream())) { string readToEnd = reader.ReadToEnd(); return int.Parse(readToEnd); } } private void UpdateCounter(int number) { byte[] arr = Encoding.UTF8.GetBytes(number.ToString()); var request = (HttpWebRequest)WebRequest.Create(_buildCounterUri); request.Method = “PUT”; request.ContentType = “text/xml”; request.ContentLength = arr.Length; request.Credentials = _credentials; Stream dataStream = request.GetRequestStream(); dataStream.Write(arr, 0, arr.Length); dataStream.Close(); var response = (HttpWebResponse)request.GetResponse(); if (response.StatusCode != HttpStatusCode.NoContent) throw new ApplicationException(“Unexepected status code: ” + response.StatusCode); } }

Windows PowerShell ISE

PowerShellスクリプトの編集サポートをしてくれるWindows PowerShell ISE。本当に素晴らしい。以前はサードパーティーがいろいろエディタを出してたんだけど、PowerShell ISEさえあればPowerShellのスクリプティングには何も要りません。

image

IISのアプリケーションをすべて消す方法

IISに何十個ものウェブアプリケーションがあり、それがらもうすでに使われていない場合、IISマネージャーからだととてもじゃないけどすべてを消すには厳しいものがある。やっぱりそこでPowerShellの登場だ。プロダクション環境では気をつけて…

Import-Module WebAdministration
pushd
cd IIS:
cd 'Sites\Default Web Site'
dir | where {$_.NodeType –eq “application”} | foreach {Remove-WebApplication $_.Name}
popd

Windows Server 2008 R2におけるPowerShellでのIIS管理

仕事で使っているOSがWindows Server 2008 R2で、IIS:と入力してもIISの管理ができなかったので、ちょっとググってみたら

Import-Module WebAdministration

を実行するとできるようになりました。$profileのファイルに入れてあげると毎回入力する必要がなくなって良いかなと。