Python中標準輸入(stdin)、標準輸出(stdout)、標準錯誤(stdout)的用法

来源:https://www.cnblogs.com/xxpythonxx/archive/2023/07/06/17533266.html
-Advertisement-
Play Games

哈嘍大家好,我是鹹魚 當我們說 Python 時,通常指的是官方實現的 CPython 但還有很多比如 Pypy、Jython、MicroPython、Brython、RustPython 等 “python” 許多小伙伴看到這些帶 “python” 的概念可能一頭霧水,心想這跟我平時接觸到的 py ...


1.標準輸入

input()、raw_input()

Python 3.x 中 input() 函數可以實現提示輸入,python 2.x 中要使用 raw_input(),例如:

foo = input("Enter: ")  # python 2.x 要用 raw_input()
print("You input: [%s]" % (foo))

# 測試執行
Enter: abc de
You input: [abc de]     # 讀取一行(不含換行符)

sys.stdin

使用 sys.stdin 可以獲取標準輸入的文件句柄對象,例如:

import sys

print("Enter a line: ")
line = sys.stdin.readline()     # 讀取一行(包括換行符)
print("Line: [%s]\n%s" % (line, "-"*20))

print("Enter a character: ")
char = sys.stdin.read(1)        # 讀取一個位元組
print("Char: [%s]\n%s" % (char, "-"*20))

print("Enter a multi-lines: ")
lines = sys.stdin.read()        # 讀取到文件尾
print("Lines: [%s]" % (lines))


# 測試執行
Enter a line:
This is a single line   <======== 輸入了一行,然後回車
Line: [This is a single line
]                       <======== 輸出有換行符
--------------------
Enter a character:
abc                     <======== 輸入了三個位元組
Char: [a]               <======== 只讀取了一個位元組
--------------------
Enter a multi-lines:
first line
second line
last line               <======== 輸入三行(換行)後,windows 下按 Ctrl+Z,linux 下按 Ctrl + D 結束輸入
Lines: [bc              <======== 上一次未讀完的三個位元組(兩個字元 + 一個換行符)
first line
second line
last line
]                       <======== 最後一行也有換行符

2.標準輸出

print

print 可以自動換行,例如:

print("%s is %0.2f, %d is a integer" % ("PI", 3.14, 123))   # 格式同 C 語言中的 printf()
print("{0} is {1}, {2} is a integer".format("PI", 3.14, 123))
print("{foo} is {bar}, {qux} is a integer".format(foo="PI", bar=3.14, qux=123))
#Python小白學習交流群:711312441
# 測試執行
PI is 3.14, 123 is a integer
PI is 3.14, 123 is a integer
PI is 3.14, 123 is a integer

sys.stdout

使用 sys.stdout 可以獲取標準輸出的文件句柄對象,例如:

import sys
sys.stdout.write("%s is %0.2f, %d is a integer\n" % ("PI", 3.14, 123))   # 格式同 C 語言中的 printf()
sys.stdout.write("{0} is {1}, {2} is a integer\n".format("PI", 3.14, 123))
sys.stdout.write("{foo} is {bar}, {qux} is a integer\n".format(foo="PI", bar=3.14, qux=123))

執行結果與 print 的示例一樣。(註:write()不會自動換行,這裡加了換行符)

3.標準錯誤

sys.stdout

使用 sys.stderr 可以獲取標準錯誤的文件句柄對象,示例略(將 sys.stdout 中示例中的 stdout 替換為 stderr 即可)。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 大促備戰,最大的隱患項之一就是慢sql,帶來的破壞性最大,也是日常工作中經常帶來整個應用抖動的最大隱患,而且對sql好壞的評估有一定的技術要求,有一些缺乏經驗或者因為不夠仔細造成一個壞的sql成功走到了線上,等發現的時候要麼是造成了線上影響、報警、或者後置的慢sql採集發現,這時候一般無法快速止損,... ...
  • 摘要:2023可信資料庫發展大會上,華為雲資料庫服務產品部總經理蘇光牛圍繞華為雲GaussDB的產品能力和實踐進行了分享 本文分享自華為雲社區《華為雲GaussDB亮相2023可信資料庫發展大會,榮獲三項評測證書!》,作者: GaussDB 資料庫。 近日,由中國信息通信研究院、中國通信標準化協會指 ...
  • ![](https://img2023.cnblogs.com/blog/3076680/202307/3076680-20230704144741811-1382373830.png) # 1. 術語的定義 ## 1.1. 服務 ### 1.1.1. 指共同協作、以單元的形式對外提供功能的跨機器進 ...
  • 一般發生在程式開始部分: `from pymodbus.client.sync import ModbusSerialClient` `from pymodbus.payload import BinaryPayloadDecoder` `from pymodbus.constants import ...
  • # Java 構造器 # 1. 構造器 ## 構造器也叫構造方法,是用來完成對象的初始化。 ## 構造器的定義: > ## 構造器的定義:[訪問修飾符] 方法名(形參),構造器與方法不同,並沒有返回值,也不能寫void,訪問修飾符可以是不同的,方法名要與本類的類名相同 > > ## 構造器的調用是由 ...
  • ### 1 .讓自己習慣C++ #### 條款01 視C++為一個語言聯邦 * `C` * `Object-Oriented C++` * `Template C++` * `STL` * `C++`高效編程守則視情況而變化,取決於你使用`C++`的哪一部分。 #### 條款02 儘量與const, ...
  • **startswith()方法** startswith() 方法用於檢索字元串是否以指定字元串開頭,如果是返回 True;反之返回 False。 **endswith()方法** endswith() 方法用於檢索字元串是否以指定字元串結尾,如果是則返回 True;反之則返回 False ``` ...
  • ### 1.os.system() os.system() 是對 C 語言中 system() 系統函數的封裝,允許執行一條命令,並返回退出碼(exit code),命令輸出的內容會直接列印到屏幕上,無法直接獲取。 示例: ```python # test.py import os os.syste ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...