1. 程式人生 > 其它 >Python入門示例系列17 輸入與輸出

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'

字串格式。這是字串的預設型別,可以省略。

可用的整數表示型別是:

型別

含意

'b'

二進位制格式。 輸出以 2 為基數的數字。

'c'

字元。在列印之前將整數轉換為相應的unicode字元。

'd'

十進位制整數。 輸出以 10 為基數的數字。

'o'

八進位制格式。 輸出以 8 為基數的數字。

'x'

十六進位制格式。 輸出以 16 為基數的數字,使用小寫字母表示 9 以上的數碼。

'X'

十六進位制格式。 輸出以 16 為基數的數字,使用大寫字母表示 9 以上的數碼。 在指定 '#' 的情況下,字首 '0x' 也將被轉為大寫形式 '0X'

floatDecimal 值的可用表示型別有:

型別

含意

'e'

科學計數法。 對於一個給定的精度 p,將數字格式化為以字母 'e' 分隔係數和指數的科學計數法形式。 係數在小數點之前有一位,之後有 p 位,總計 p + 1 個有效數位。 如未指定精度,則會對 float 採用小數點之後 6 位精度,而對 Decimal 則顯示所有係數位。 如果小數點之後沒有數位,則小數點也會被略去,除非使用了 # 選項。

'E'

科學計數法。 與 'e' 相似,不同之處在於它使用大寫字母 'E' 作為分隔字元。

'f'

定點表示法。 對於一個給定的精度 p,將數字格式化為在小數點之後恰好有 p 位的小數形式。 如未指定精度,則會對 float 採用小數點之後 6 位精度,而對 Decimal 則使用大到足夠顯示所有係數位的精度。 如果小數點之後沒有數位,則小數點也會被略去,除非使用了 # 選項。

'F'

定點表示。 與 'f' 相似,但會將 nan 轉為 NAN 並將 inf 轉為 INF

'%'

百分比。 將數字乘以 100 並顯示為定點 ('f') 格式,後面帶一個百分號。

格式示例
按位置訪問引數:

>>> '{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