Python入門示例系列17 輸入與輸出
Python入門示例系列17 輸入與輸出
讀取鍵盤輸入
Python 提供了 input() 內建函式從標準輸入讀入一行文字,預設的標準輸入是鍵盤。
>>> str = input("請輸入:"); 請輸入:123 >>> print(str) 123
輸出
只想快速顯示變數進行除錯,可以用 repr()
或 str()
函式把值轉化為字串。
f' '
使用 格式化字串字面值 ,要在字串開頭的引號/三引號前新增 f 或 F 。在這種字串中,可以在 { 和 } 字元之間輸入引用的變數,或字面值的 Python 表示式。
>>> name="Sam" >>> age=20 >>> f'{name} is {age} yeas old.' 'Sam is 20 yeas old.'
str.format()
字串的 str.format() 方法需要更多手動操作。該方法也用 { 和 } 標記替換變數的位置,雖然這種方法支援詳細的格式化指令,但需要提供格式化資訊。
標準格式說明符 的一般形式如下:
format_spec ::= [[fill]align][sign][#][0][width][grouping_option][.precision][type] fill ::= <any character> align ::= "<" | ">" | "=" | "^" sign ::= "+" | "-" | " " width ::= digit+ grouping_option ::= "_" | "," precision ::= digit+ type ::= "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"
各種對齊選項的含義如下:
選項 |
含意 |
---|---|
|
強制欄位在可用空間內左對齊(這是大多數物件的預設值)。 |
|
強制欄位在可用空間內右對齊(這是數字的預設值)。 |
|
強制欄位在可用空間內居中。 |
sign 選項僅對數字型別有效,可以是以下之一:
選項 |
含意 |
---|---|
|
表示標誌應該用於正數和負數。 |
|
表示標誌應僅用於負數(這是預設行為)。 |
width 是一個定義最小總欄位寬度的十進位制整數,包括任何字首、分隔符和其他格式化字元。 如果未指定,則欄位寬度將由內容確定。
precision 是一個十進位制數字,表示對於以 'f'
and 'F'
格式化的浮點數值要在小數點後顯示多少個數位,或者對於以 'g'
或 'G'
格式化的浮點數值要在小數點前後共顯示多少個數位。
type 確定了資料應如何呈現。
可用的字串表示型別是:
型別
含意
's'
字串格式。這是字串的預設型別,可以省略。
可用的整數表示型別是:
型別 |
含意 |
---|---|
|
二進位制格式。 輸出以 2 為基數的數字。 |
|
字元。在列印之前將整數轉換為相應的unicode字元。 |
|
十進位制整數。 輸出以 10 為基數的數字。 |
|
八進位制格式。 輸出以 8 為基數的數字。 |
|
十六進位制格式。 輸出以 16 為基數的數字,使用小寫字母表示 9 以上的數碼。 |
|
十六進位制格式。 輸出以 16 為基數的數字,使用大寫字母表示 9 以上的數碼。 在指定 |
型別 |
含意 |
---|---|
|
科學計數法。 對於一個給定的精度 |
|
科學計數法。 與 |
|
定點表示法。 對於一個給定的精度 |
|
定點表示。 與 |
|
百分比。 將數字乘以 100 並顯示為定點 ( |
格式示例
按位置訪問引數:
>>> '{0}, {1}, {2}'.format('a', 'b', 'c') 'a, b, c' >>> '{}, {}, {}'.format('a', 'b', 'c') # 3.1+ only 'a, b, c' >>> '{2}, {1}, {0}'.format('a', 'b', 'c') 'c, b, a' >>> '{2}, {1}, {0}'.format(*'abc') # unpacking argument sequence 'c, b, a' >>> '{0}{1}{0}'.format('abra', 'cad') # arguments' indices can be repeated 'abracadabra'
按名稱訪問引數:
>>> 'Coordinates: {latitude}, {longitude}'.format(latitude='37.24N', longitude='-115.81W') 'Coordinates: 37.24N, -115.81W' >>> coord = {'latitude': '37.24N', 'longitude': '-115.81W'} >>> 'Coordinates: {latitude}, {longitude}'.format(**coord) 'Coordinates: 37.24N, -115.81W'
訪問引數的項:
>>> coord = (3, 5) >>> 'X: {0[0]}; Y: {0[1]}'.format(coord) 'X: 3; Y: 5'
對齊文字以及指定寬度:
>>> '{:<30}'.format('left aligned') 'left aligned ' >>> '{:>30}'.format('right aligned') ' right aligned' >>> '{:^30}'.format('centered') ' centered '
替代 %x 和 %o 以及轉換基於不同進位制的值:
>>> # format also supports binary numbers >>> "int: {0:d}; hex: {0:x}; oct: {0:o}; bin: {0:b}".format(42) 'int: 42; hex: 2a; oct: 52; bin: 101010'
使用逗號作為千位分隔符:
>>> '{:,}'.format(1234567890) '1,234,567,890'
表示為百分數:
>>> points = 19 >>> total = 22 >>> 'Correct answers: {:.2%}'.format(points/total) 'Correct answers: 86.36%'
使用特定型別的專屬格式化:
>>> import datetime >>> d = datetime.datetime(2010, 7, 4, 12, 15, 58) >>> '{:%Y-%m-%d %H:%M:%S}'.format(d) '2010-07-04 12:15:58'
REF
https://docs.python.org/zh-cn/3/tutorial/inputoutput.html
https://docs.python.org/zh-cn/3/library/string.html#formatspec
https://www.runoob.com/python3/python3-inputoutput.html