見出し画像

print("Hello, world")

昔からの習わし

プログラミングを始めようとするときには、
Brian W. Kernighan, Dennis M, Ritchie共著「プログラミング言語C
」(K&R本)
の時から、

”Hello,world”を出力する。

から始めるのが習わしとなっている。
K&R本(ANSI規格準拠版)では、

#include <stdio.h>
int main(void)
{
    printf("Hello, world\n");
    return 0
}

Python3では、以下の一行。

print("Hello,world")

Python2でも一行であるが、print関数ではなくprint文。

print "Hello,world"

printにまつわる思い出


以前、まだPythonを知らない時、
何かのシステムトラブルで

「これからPythonスクリプトを送るので実行してください」

とベンダーさんに言われ、
大急ぎでPython3の環境を作ったら、
Python2のコードを送り付けられて、
すごくハマったことを思い出す。

Web開発において、PerlやPHPなどで、
バージョンアップで非互換性が生じ、
プログラム改修が必要になることがある、とは
知識としてなんとなく知っていたが

バージョンアップでprint文がprint関数になったなんて、聞いてねぇよ!

やはり、当事者にならないとわからないってことはあるものだよなぁ。

どっちが親切?

  • ANSI Cのprintf("Hello,world¥n")

  • Python3のprint("Hello,world")

あなたはどちらを推しますか?

わざわざ改行文字を入れる必要がないPython3の方が親切に見える。
こちらの意見が大半だろう。

では、print()関数で2の倍数を横並びに印字したい場合はどうしたら良い?

i=0
while i<=10:
  print(i)
  i+=2

などと書いても改行されてしまう。

基本的なPython3の知識。
3行目を print(i,end=" ")と直さねばならない。

それでは逆に、Cではどうなるだろう?

#include <stdio.h>
int main(void)
{
    for (int i=0:i<=10;i+=2)
    {
        printf(i);
        printf(" ")
    }
    return 0
}

コンパイラ言語特有の煩しさはあるものの、Pythonのprint()の第2引数何だっけ?問題に悩まずに済む。





この記事が気に入ったらサポートをしてみませんか?