ChatGPTでプログラミングを学ぼう 第3回 「Pythonのprint関数」
こんにちは、kurumi-bioです。
ChatGPTと会話しながらPythonを学んでいきます。
前回は、Pythonのインストールと簡単なプログラムで動作確認を行いました。
簡単なプログラムでは、print関数を使ってHello, World!を標準出力に出力しました。
今回は、print関数をChatGTPから学びます。
環境
Pythonのprint関数の構文は?
print関数の構文をChatGPTに聞いてみたら、
構文とサンプルプログラムの回答がありました。
至れり尽くせりです。
◆テストコード
print("Hello, world!") print("Hello", "world", sep=", ", end="!\n") print("Hello, world!", end="") print("Hello", "world!")
◆実行結果
標準出力以外の出力先は?
先ほどのテストコードで、print関数のvalue
,sep
,end
パラメータの使い方がわかりました。
では、file
パラメータに何が指定できるのかChatGPTに聞いてみました。
◆テストコード
with open("output.txt", "w") as f: print("Hello, world!", file=f)
◆実行結果
文字列型の出力方法は?
先ほどの質問で、文字列へ出力する方法はわかりましたが、
文字列を出力する方法が記載されていなかったので、ChatGPTに聞いてみました。
◆テストコード
import io; buf=io.StringIO(); print("Hello, world!", file=buf); s = buf.getvalue() print (s)
◆実行結果
広告の下に続きます。
標準エラー出力は?
標準出力があるのですから、標準エラー出力もあると思いますので、ChatGPTに聞いてみました。
◆テストコード
import sys print("Error: something went wrong", file=sys.stderr)
◆実行結果
Go言語からPythonを実行する方法は?
標準エラー出力に出力する方法がわかりましたが、本当に標準エラー出力に出力されたか確認したいのでGo言語からPythonを実行する方法をChatGPTに聞いてみました。
ChatGPTから2種類の回答が得られましたが、2つ目はGo言語の中で実行しているため、 本ブログの主旨から外れてしまいます。ですので、今回は1つ目の方法で試します。
◆テストコード
Go言語
package main import ( "fmt" "os/exec" ) func main() { cmd := exec.Command("python3", "hello.py") out, err := cmd.Output() if err != nil { fmt.Println("Error:", err) } fmt.Println(string(out)) }
◆実行結果
◆テストコード
import sys print("Hello, world!", file=sys.stdout) print("Error: something went wrong", file=sys.stderr)
Go言語
package main import ( "fmt" "os/exec" "strings" ) func main() { var sout, serr strings.Builder c := exec.Command("python3", "test5.py") c.Stdout = &sout c.Stderr = &serr e := c.Run() if e != nil { fmt.Println("Error:", e) } fmt.Printf("stdout=%s", sout.String()) fmt.Printf("stderr=%s", serr.String()) }
◆実行結果
宿題
今回の学習で次の疑問が発生しましたので、いつか学習したいと思います。
- open関数の構文と使い方
- ":"と";"の意味
最後までご覧いただきありがとうございます