1.0 Python 標(biāo)準(zhǔn)輸入與輸出
python 是一種高級(jí)、面向?qū)ο蟆⑼ㄓ玫木幊陶Z(yǔ)言,由Guido van Rossum
發(fā)明,于1991年首次發(fā)布。python 的設(shè)計(jì)哲學(xué)強(qiáng)調(diào)代碼的可讀性和簡(jiǎn)潔性,同時(shí)也非常適合于大型項(xiàng)目的開發(fā)。python 語(yǔ)言被廣泛用于Web開發(fā)、科學(xué)計(jì)算、人工智能、自動(dòng)化測(cè)試、游戲開發(fā)等各個(gè)領(lǐng)域,并且擁有豐富的第三方庫(kù)和工具,使得python成為廣泛應(yīng)用的語(yǔ)言之一。同時(shí),由于其開放性和可移植性,python在跨平臺(tái)應(yīng)用、開源軟件開發(fā)和云計(jì)算等領(lǐng)域也被廣泛使用。
??python語(yǔ)言官網(wǎng):https://www.python.org/

python的安裝非常容易,在Windows平臺(tái)下讀者只需要去python官方下載與之對(duì)應(yīng)的版本即可,目前python的版本為python 3.11.3
如下圖所示讀者可點(diǎn)擊Download python 3.11.3
下載最新版本;

當(dāng)讀者下載好以后,只需要點(diǎn)擊安裝包,依次點(diǎn)擊下一步則可將python安裝到您的電腦中;
python 中的標(biāo)準(zhǔn)輸入和輸出是指用于讀取和寫入數(shù)據(jù)的默認(rèn)流(stream),也稱為 stdin 和 stdout。這些流可以是屏幕輸入和輸出,也可以是文件、管道等。
??標(biāo)準(zhǔn)輸入:通常是用戶控制臺(tái)上的輸入流,用于讀取用戶輸入的數(shù)據(jù)。在python中,可以使用 input() 函數(shù)來(lái)接收標(biāo)準(zhǔn)輸入,默認(rèn)情況下它接收一個(gè)字符串并返回該字符串。
??標(biāo)準(zhǔn)輸出:通常是用戶控制臺(tái)上的輸出流,用于向控制臺(tái)打印數(shù)據(jù)。在python中,可以使用 print() 函數(shù)將數(shù)據(jù)輸出到標(biāo)準(zhǔn)輸出流。默認(rèn)情況下,打印函數(shù)(print() 函數(shù))會(huì)將數(shù)據(jù)以字符串的形式輸出到控制臺(tái)。
1.1 標(biāo)準(zhǔn)輸入功能
任何一門編程語(yǔ)言都具備標(biāo)準(zhǔn)輸入與輸出功能,輸入輸出是任何一門編程語(yǔ)言的最終目的,在python中,輸入數(shù)據(jù)可以使用內(nèi)置的input()
函數(shù)來(lái)實(shí)現(xiàn),該函數(shù)可傳入一個(gè)字符串并在輸入前打印至屏幕中,函數(shù)返回一個(gè)字符串類型讀者可通過一個(gè)變量來(lái)接收函數(shù)的返回值。
name?=?input("請(qǐng)輸入你的名字:")
請(qǐng)輸入你的名字:lyshark
print("Hello?"?+?name)
Hello?lyshark
age?=?input("請(qǐng)輸入你的年齡:")
請(qǐng)輸入你的年齡:22
type(age)
<class?'str'>
#?強(qiáng)制類型轉(zhuǎn)換
age1?=?input("請(qǐng)輸入你的年齡:")
age1?=?int(age1)
type(age1)
<class?'int'>?
讀者需要注意一點(diǎn),標(biāo)準(zhǔn)輸入函數(shù)只能獲取字符串類型的參數(shù),而有時(shí)我們需要使用例如整數(shù)浮點(diǎn)數(shù)等特殊參數(shù),則需要通過強(qiáng)制轉(zhuǎn)換類型的方法來(lái)實(shí)現(xiàn)對(duì)字符串的轉(zhuǎn)換,例如將一個(gè)字符串參數(shù)轉(zhuǎn)換為整數(shù),可以使用int(age1)
來(lái)實(shí)現(xiàn),當(dāng)然除了轉(zhuǎn)換為整數(shù),python還支持如下幾個(gè)強(qiáng)制類型轉(zhuǎn)換函數(shù);
??int(x) 將 x 轉(zhuǎn)換為整數(shù)
??float(x) 將 x 轉(zhuǎn)換為浮點(diǎn)數(shù)
??str(x) 將 x 轉(zhuǎn)換為字符串
??bool(x) 將 x 轉(zhuǎn)換為布爾值
如果嘗試將無(wú)效的表達(dá)式或?qū)ο髲?qiáng)制轉(zhuǎn)換為某種數(shù)據(jù)類型,則可能引發(fā)TypeError
或ValueError
異常。因此,在進(jìn)行強(qiáng)制轉(zhuǎn)換之前,一定要確保輸入的值是有效的,并且可以正確地轉(zhuǎn)換為目標(biāo)數(shù)據(jù)類型。
1.2 標(biāo)準(zhǔn)輸出功能
有標(biāo)準(zhǔn)輸入函數(shù)則必然有標(biāo)準(zhǔn)輸出,在輸出時(shí)讀者可使用print()
函數(shù)實(shí)現(xiàn),該函數(shù)只需要傳入一個(gè)輸入字符串則可以實(shí)現(xiàn)輸出,此外在某些時(shí)候如果我們不希望讓該函數(shù)完成換行,則讀者可在輸入時(shí)增加end=""
的參數(shù)傳遞實(shí)現(xiàn),同時(shí)標(biāo)準(zhǔn)輸入函數(shù)同樣支持對(duì)字符串的動(dòng)態(tài)替換功能。
string?=?"hello?lyshark"
print(string)
hello?lyshark
#?輸出時(shí)不讓其自動(dòng)換行
print(string,)
print('hello',?end?=?"?")
string?=?"the?length?of?(%s)?is?%d"??%("hello?lyshark",len("hello?lyshark"))
print(string)
the?length?of?(hello?lyshark)?is?13
string?=?"hello?{}?-->?age?{}".format("lyshark",22)
print(string)
hello?lyshark?-->?age?22
string?=?"i?am?%(age).2f"?%{"age":22}
print(string)
i?am?22.00
在上述案例中,可以看到當(dāng)我們需要?jiǎng)討B(tài)替換字符串時(shí)可以將字符串中需要變化的位置通過%s(代表字符串)
或者%d(代表整數(shù))
的方式進(jìn)行占位,在該字符串的后面通過%()
的方式對(duì)字符串依次進(jìn)行填充,最終調(diào)用print
輸出替換后的數(shù)據(jù),當(dāng)讓在新版本中讀者可使用{}
進(jìn)行占位符填充,該方法無(wú)需自行執(zhí)行參數(shù)類型,在使用時(shí)更加方便一些。
1.3 格式化的用法
在標(biāo)準(zhǔn)輸出中我們簡(jiǎn)單介紹了一下格式化輸出的一些功能,本次案例中將重點(diǎn)學(xué)習(xí)如何實(shí)現(xiàn)對(duì)格式化輸出的控制,通常來(lái)說使用format
輸出可以實(shí)現(xiàn)很多輸出細(xì)節(jié)的控制,但此方式輸出還是比較麻煩,如下所示將帶大家簡(jiǎn)單理解格式化函數(shù)的一些基本用法,讀者通過此類方法應(yīng)該能更好的掌握格式化輸出的基本技巧與流程。
print("i?am?{0},?age?{1},?really?{0}".format("lyshark",22))
i?am?lyshark,?age?22,?really?lyshark
print("i?am?{name},?age?{age}".format(**{"name":"lyshark","age":"22"}))
i?am?lyshark,?age?22
temp?=?"i?am?{0[0]},?age?{0[1]},?really?{0[2]}".format([1,?2,?3],?[11,?22,?33])
print(temp)
i?am?1,?age?2,?really?3
temp?=?"i?am?{:s},?age?{:d},?money?{:f}".format("lyshark",?18,?8.1)
print(temp)
i?am?lyshark,?age?18,?money?8.100000
temp?=?"%r?%r?%r?%r"
print(temp%(1,2,3,4))
1?2?3?4
print("網(wǎng)站名稱:{name},地址:{url}".format(name="myblog",url="www.lyshark.com"))
網(wǎng)站名稱:myblog,地址:www.lyshark.com
site={"name":"myblog","url":"www.lyshark.com"}
print("網(wǎng)站名稱:{name}?地址:{url}".format(**site))
網(wǎng)站名稱:myblog?地址:www.lyshark.com
my_list?=?['myblog','www.lyshark.com']
print("網(wǎng)站名稱:{0[0]},地址:{0[1]}".format(my_list))
網(wǎng)站名稱:myblog,地址:www.lyshark.com
當(dāng)然上述方法輸出字符串還是有些復(fù)雜,為了解決這個(gè)問題,python語(yǔ)言在3.6
之后的版本中引入了f-string
格式化功能,該方法的引入解決了格式化輸出是繁瑣的初始化工作,在使用時(shí)只需要在字符串的外圍增加f
即可表示需要輸出動(dòng)態(tài)字符串,此時(shí)讀者只需要傳入特定的變量并以{}
包裹,即可實(shí)現(xiàn)動(dòng)態(tài)輸出。
name?=?"lyshark"
age?=?25
number?=?12.456
#?可直接帶入變量調(diào)用
f"hello,?my?name?is?{name}?my?age?{age}"
'hello,?my?name?is?lyshark?my?age?25'
#?調(diào)用是指定函數(shù)
f"my?name?is?{name.upper()}"
'my?name?is?LYSHARK'
#?如需顯示大括號(hào),則需要兩次括號(hào)
f"my?name?is?{{name.upper()}}"
'my?name?is?{name.upper()}'
#?浮點(diǎn)數(shù)保留位數(shù)
f"this?float?is?{number:1.1f}"
'this?float?is?12.5'
#?^符號(hào)居中,寬度10位,十六進(jìn)制整數(shù)(大寫字母),顯示0X前綴
number?=?1234
f'number?is?{number:^#10X}'
'number?is???0X4D2???'
#?<符號(hào)左對(duì)齊,寬度10位,顯示正號(hào)(+)定點(diǎn)數(shù)格式,2位小數(shù)
number?=?1234.5678
f'number?is?{number:<+10.2f}'????
'number?is?+1234.57??'
#?datetime時(shí)間格式輸出
import?datetime
number?=?datetime.datetime.today()
f'the?time?is?{number:%Y-%m-%d?(%a)?%H:%M:%S}'
'the?time?is?2021-07-14?(Sat)?20:46:02'
本文作者: 王瑞 本文鏈接: https://www.lyshark.com/post/533eb8c0.html 版權(quán)聲明: 本博客所有文章除特別聲明外,均采用 BY-NC-SA 許可協(xié)議。轉(zhuǎn)載請(qǐng)注明出處!