Image

PythonとC言語の入出力の違いを押さえよう!サンプルコードを用いて解説!

PythonとC言語の入出力の違いについて解説しました。PythonとC言語の入出力の違いについて学びましょう。入出力はプログラミングにおける基本的な動作を行うためのものです。しかしPythonとC言語の入出力にそこまで差はなかったりします。

PythonとC言語の違いって何だろう?

今回はPythonとC言語の違いを押さえるの3回目ということで、画面への出力キーボードからの入力を学びます。

かなり基本的な内容になってしまいますが、基本は最も重要なので、ぜひ今一度確認なさって下さい



目次   

01. PythonとC言語の基礎 画面への出力

02. PythonとC言語の基礎 キーボードからの入力

03. まとめ


01. PythonとC言語の基礎 画面への出力


C言語から押さえていきましょう。



#include <stdio.h>

main() {
putchar("n");
}
gcc n.c
./a.out
n


putcharは直接文字列として与えれた一文字を出力します。

gccでC言語のファイルをコンパイルして./a.outでコンパイルしたファイルを実行します。

コンパイルとはコンピュータが読みやすい形にすることでCファイルの実行では必要な工程になります。

コマンドで上から順に実行すればコマンド上でnが出力されるはずです。



putchar(式);


出力する公式は上記のようになります。式には文字列1つを要素として持つ変数も代入することができます。

putcharは1文字を出力すると覚えておけば大丈夫です。

次はもう少し長い文章を出力してみましょう。



char * name = "Hiiro"
int age = 19
printf("My name is %s. I'm %d years old.\n", name, age)


My name is Hiiro. I'm 19 years old.

というように。コンパイルして実行すればコマンドに出力されるはずです。



printf("出力の書式", 変数や算術式の並び);


出力の書式の中にある%s%dは前回のデータの型に関する記事で触れたデータ型を指定しています。

PythonとC言語のデータ型について違いを押さえる

変数や、算術式の並びは代入したい順に並べます



%c // 文字(例: 'a')
%s // 文字列(例: "abc")
%d // 符号付き整数(例: -123)
%u // 符号無し整数(例: 123)
%o // 8進数(例: 0755)
%x // 16進数(例: 0x89ab)
%f // 浮動小数点数(非指数表示)(例: 123.4)
%e // 浮動小数点数(指数表示)(例: 1.234e+2)
%g // 浮動小数点数(% fか%eを自動選択)(例: 123.4)
% % // % 自体を表示



¥¥ // ¥を出力
¥' // 'を出力
¥" // "を出力
¥% // %を出力
¥n // 改行
¥t // 水平タブ
¥0 // ヌル
¥v // 垂直タブ
¥b // 後退
¥r // 復帰
¥f // 改ページ
¥a // 警告音


エスケープシーケンスは出力の制御を行います。

もちろん、これらの一覧全てを覚える必要はありません。今回大事なのは書式指定の仕方についてです。



%s // 出力例 abc // 説明 通常の出力で左詰めで出力
%10s // 出力例 ▲▲▲abc // 説明 10文字の出力幅を指定して右詰めで出力
%-10s // 出力例 abc▲▲▲ // 説明 10文字の出力幅を指定して左詰め

%d // 出力例 12 // 説明 通常の出力で左詰め
%3d // 出力例 ▲12 // 説明 3桁分の出力幅を指定する
%03d // 出力例 012 // 説明 3桁の出力幅を指定して空白を0で埋める

%f // 出力例 12.000000 // 説明 通常の出力で小数点以下第6位まで出力
%.2f // 出力例 12.00 // 説明 小数点第2位以下まで出力
%7.2f // 出力例 ▲▲12.00 // 説明 7桁の出力幅を指定して第2位以下まで出力
%10.2e // 出力例 ▲▲0.12e+02 // 説明 指数部付きで出力する


上記のようにしてprintf()で出力を制御することができます。

次にPythonを押さえましょう。



print("Hello Python")


Hello Python

というように実行すれば表示されると思います。



print("出力したい文字列")
print("%s" % i) // C言語と同じようにすることで変数を代入することができます。
print("I") // 変数Iがあったとして左のようにするとIと表示されるだけで変数の中身は表示されません。


とてもシンプルですね。

どこで使うの? っておもう方もいらっしゃるかも知れませんが、どのプログラムでもみると思います。

エラーが発生した時にユーザーに伝えたり、いつ実行されたのか知るために時刻を表示させたりと陰ながら支えてくれます。


02. PythonとC言語の基礎 キーボードからの入力


C言語のキーボートからの入力について触れていきます。



#include <stdio.h>

main(void) {
int c
printf("1文字入力 -->")
c = getchar()
putchar(c)
return 0
}
変数 = getchar()


getcharはユーザーからのキーボード入力を変数に代入します。

その変数をputcharで出力するという簡単なプログラムです。

上に書いたように変数 = getchar();の形で定義します。

入力された文字を変数に代入するというイメージを持ちましょう。 

でもやっぱりgetcharだけじゃ受け付けられる入力文字数が少なすぎる。

ということで。



#include <stdio.h>

main(void) {
int a
printf("aに入力して下さい")
scanf("%d", & a)
printf("%d", a)
}


scanfでユーザーからの入力を受け付けてprintfで出力するコードです。

scanfはgetcharとは違って入力を受け付けることができる文字数が1文字ではありません。



scanf("入力の書式", 変数アドレスの並び);


変数のアドレスとは何なのかというと、変数を人だとするならその人の住所がアドレスのイメージです。

住所を指定して、ユーザーから入力された荷物をその住所に届けます。

そんな感じのイメージで大丈夫だと思います。

&aのように



&変数名


でその変数のアドレスを指定して変数に入力された値を与えることができます。

さて最後にPythonを見てみましょう。



name = input("お名前は?")
print("%s" % name)


これでnameにユーザーが入力した値が代入されます。

そしてprintでnameを出力しています。

基本はC言語ですがより簡略化されていることが分かると思います。


03. まとめ


お疲れ様でした。

ここまで読んでいただきありがとうございます。

PythonとC言語、それぞれの入出力の基本はこれで押さえることができていると思います。