python 输入字符串_输入输出,字符串如影随形 | Python基础连载(五)
更好的排版閱讀體驗(yàn),請(qǐng)移步 微信端
開篇
前面兩期詳細(xì)的介紹了字符串及其相關(guān)操作,在今后的編程中,你將經(jīng)常和字符串打交道。一個(gè)比較常見的場(chǎng)景就是輸入輸出,所以本期將結(jié)合字符串,講述最基本同時(shí)也是最常用的輸入輸出語法(input和print),并且會(huì)在文章最后補(bǔ)充一些之前沒有講到的字符串的內(nèi)容。
input()用于接收用戶的輸入
input()用于接受用戶的輸入。
>>> input()
當(dāng)你寫入以上代碼,并按下回車鍵后,你會(huì)發(fā)現(xiàn)光標(biāo)在閃動(dòng),這是在提示你要輸入一些東西。
當(dāng)輸入完成后,再按一次回車,你所輸入的東西便會(huì)打印出來顯示在屏幕上,就像下面這樣:
圖中,黑色的字是我輸入的,藍(lán)色的字是打印輸出在屏幕上的。
那如果不想打印輸出在屏幕上,而是想將輸入的內(nèi)容保存起來,又應(yīng)該怎么做呢?
簡(jiǎn)單!只要用一個(gè)變量接收input()的輸入內(nèi)容就搞定啦!
這樣,輸入的內(nèi)容就被保存在變量x中了。
細(xì)心的你或許已經(jīng)發(fā)現(xiàn)了,藍(lán)色的字被一對(duì)''包裹著,這不正是之前學(xué)習(xí)的字符串類型嗎?
沒錯(cuò)!事實(shí)上,你輸入input()中的任何類型的數(shù)據(jù),都會(huì)變成字符串類型。
你可能不太信,因?yàn)樯厦娴睦踝又?#xff0c;我輸入的內(nèi)容我將在南極找尋你本身就是個(gè)字符串類型的,所以輸出的自然也是字符串咯。為了證明我說的是對(duì)的,咱們可以試著輸入一個(gè)數(shù)字,看看出來的是不是還是數(shù)字類型。
看吧,輸入的數(shù)字2333也變成了字符串str類型。
以上就是input()的基本用法。
那你可能又會(huì)想:在提示輸入時(shí)只有一個(gè)光標(biāo)閃動(dòng)會(huì)不會(huì)太不明顯了?能不能加一些提示信息呢?
可以!input()中的()里面可以添加提示信息,看這個(gè)栗子:
藍(lán)色的字是打印的提示信息,22是我的輸入,它被保存在了變量age中。
學(xué)會(huì)使用print()
大家應(yīng)該對(duì)print()不陌生了,之前的幾期內(nèi)容中也提到過它,今天就對(duì)它的常見用法做一個(gè)總結(jié)。
最基本的,就是將目標(biāo)內(nèi)容輸出顯示到屏幕上:
看起來有些單調(diào),所以可以添加一些描述性的語句,這些語句是字符串類型,所以需要包裹到一對(duì)引號(hào)內(nèi),看下面的栗子:
這樣看起來就清晰很多,不至于只有一個(gè)數(shù)字22而無任何其他信息。
但是對(duì)于稍稍有些強(qiáng)迫癥的我來說,這還不夠完美,因?yàn)樵谳敵龅狡聊簧系膬?nèi)容中,'我的年齡是'和22之間有一個(gè)空格,我想要讓他們之間無縫對(duì)接,那應(yīng)該怎么做呢?
其實(shí)也不難。print()提供了一個(gè)seq的參數(shù),可以使你自己設(shè)置被逗號(hào)分隔的兩段內(nèi)容(這里就是'我的年齡'和age)在輸出時(shí)用什么符號(hào)連接,如果不設(shè)置,也就是什么都不寫,那么默認(rèn)就是用空格連接起來。
所以,我們只要將seq設(shè)置為空就可以了,就像下面這樣:
當(dāng)然,你也可以設(shè)置為:,*,+以及其他你能想到的字符。
現(xiàn)在考慮這么一個(gè)問題:
已知兩個(gè)人的年齡,要求你將兩個(gè)人的年齡輸出到屏幕上(不限格式)。
可以創(chuàng)建一個(gè)腳本文件,內(nèi)容如下:
age1=22
age2=23
print('第一個(gè)人的年齡是',age1)
print('第二個(gè)人的年齡是',age2)
你將在屏幕上看到以下輸出結(jié)果:
這時(shí)候,題目增加了一個(gè)要求:兩個(gè)print()語句輸出的內(nèi)容必須顯示在同一行。
這應(yīng)該如何實(shí)現(xiàn)呢?
其實(shí),print()語句默認(rèn)在運(yùn)行結(jié)束后打印一個(gè)換行符,我們可以通過end參數(shù)來修改,比如end='*'表示在運(yùn)行結(jié)束后打印一個(gè)*而不是換行符。
所以,問題解決了,在第一個(gè)print()語句中指明end為空格即可:
age1=22
age2=23
print('第一個(gè)人的年齡是',age1,end=' ')
print('第二個(gè)人的年齡是',age2)
輸出:
第一個(gè)人的年齡是 22 第二個(gè)人的年齡是 23
總結(jié)一下:
end用于指明在執(zhí)行完print()語句之后附帶著打印的符號(hào),若不指明,則使用默認(rèn)的換行符
sep用于指名在同一個(gè)print()中,用逗號(hào)分隔的每個(gè)部分之間連接的符號(hào),若不指明,則使用默認(rèn)的空格
print()的格式化輸出
方法1.類似C語言的方法
如果你沒有學(xué)習(xí)過C或者早已忘記了C也不影響閱讀,因?yàn)橄旅嬉v的跟C本身并無直接關(guān)系。
在Python的print()中,可以使用以%開頭的東西來占位置,所以形象的稱之為占位符。主要有3種,分別是%d,%f,%s,分別對(duì)應(yīng)了整數(shù),浮點(diǎn)數(shù)(小數(shù))和字符串。
看下面這個(gè)栗子:
>>> age1=22
>>> age2=23
>>> print('第一個(gè)人的年齡是%d,第二個(gè)人的年齡是%d'%(age1,age2))
第一個(gè)人的年齡是22,第二個(gè)人的年齡是23
注意,后面的%(age1,age2)中變量的順序要與前面的占位符的順序一一對(duì)應(yīng)
再上個(gè)栗子,自己跟著敲一下,基本就掌握了。
>>> name='小明'
>>> age=18
>>> favorate_number=3.1415926
>>> print('%s今年%d歲了,他最喜歡的數(shù)字是%.2f'%(name,age,favorate_number))#%.2f是指保留兩位小數(shù)
小明今年18歲了,他最喜歡的數(shù)字是3.14
方法2.使用format,用{}作為占位符(ps:我自己經(jīng)常使用的是這個(gè))
如果占位符{}內(nèi)什么也不寫,那么每一個(gè){}就會(huì)按出現(xiàn)的順序與format中的變量名一一對(duì)應(yīng),舉個(gè)栗子就清楚啦:
>>> name='小明'
>>> age=18
>>> favorate_number=3.1415926
>>> print('{}今年{}歲了,他最喜歡的數(shù)字是{}'.format(name,age,favorate_number))
小明今年18歲了,他最喜歡的數(shù)字是3.1415926
如果占位符{}寫了下標(biāo),那么format中變量名的位置下標(biāo)必須與format中的下標(biāo)從小到大一一對(duì)應(yīng),看這個(gè)栗子:
>>> name='小明'
>>> age=18
>>> favorate_number=3.1415926
>>> print('{1}今年{2}歲了,他最喜歡的數(shù)字是{0}'.format(favorate_number,name,age))
小明今年18歲了,他最喜歡的數(shù)字是3.1415926
結(jié)合下圖,或許你能更好的理解上面這個(gè)栗子
還有一種情況,就是{}傳入的不僅可以是下標(biāo),還可以是變量的名字,此時(shí)format中傳入的是變量名=內(nèi)容,看栗子:
>>> name='小明'
>>> age=18
>>> favorate_number=3.1415926
>>> print('{name}今年{age}歲了,他最喜歡的數(shù)字是{favorate_number}'.format(favorate_number=favorate_number,name=name,age=age))
小明今年18歲了,他最喜歡的數(shù)字是3.1415926
字符串的補(bǔ)充內(nèi)容
在上面關(guān)于print()的學(xué)習(xí)中,我們遇到了換行符,以%開頭的占位符等,這些東西又可以牽扯出字符串的幾個(gè)知識(shí)點(diǎn),下面來看一下。
1.轉(zhuǎn)義字符
Python中使用\代表其后面的第一個(gè)字符是普通的字符串,而不是Python中具有某些功能的標(biāo)識(shí)。比如,我想要輸出I'm ok到屏幕上,直接寫
x='I'm ok'
print(x)
會(huì)報(bào)錯(cuò),因?yàn)镻ython認(rèn)為I被一對(duì)單引號(hào)包裹,單獨(dú)成一部分,而后面的m ok'是另一部分。這樣,由于后面那部分只有右側(cè)的單引號(hào)而沒有左側(cè)的單引號(hào),所以產(chǎn)生了語法錯(cuò)誤。
這時(shí)候,轉(zhuǎn)義字符\就派上用場(chǎng)了!
>>> x='I\'m ok'
>>> print(x)
I'm ok
在\后面的'被認(rèn)為是一個(gè)普通的字符,從而可以直接打印輸出了。
還有一種特殊情況,就是在上面的格式化輸出中,會(huì)用到%s,那萬一字符串中正好有一部分叫做%s呢?百字不如一栗,上栗子:
在這個(gè)栗子中,有個(gè)人的名字叫做"王%s"
>>> age=18
>>> favorate_color='black'
>>> print('王%%s的年齡是%d,王%%s最喜歡的顏色是%s'%(age,favorate_color))
王%s的年齡是18,王%s最喜歡的顏色是black
看,這里的%也充當(dāng)了轉(zhuǎn)義字符的作用,它使得%s中的%不作為具有某些功能的符號(hào),而只是一個(gè)普通字符。
2. 常用轉(zhuǎn)義字符
(本圖源自網(wǎng)絡(luò))
3.防止轉(zhuǎn)義
看這個(gè)栗子:
由于字符串中包含轉(zhuǎn)義字符\,所以會(huì)報(bào)錯(cuò)。
所以這里要考慮防止轉(zhuǎn)義。
解決方法也很簡(jiǎn)單,那就是在轉(zhuǎn)義字符\前面再加一個(gè)\,這樣,\\代表的意思就是一個(gè)普通的反斜杠了:
其實(shí),Python還提供了另一種更簡(jiǎn)單的方法,那就是在要防止轉(zhuǎn)義字符生效的字符串前面加一個(gè)r,這個(gè)過程正好與上面的轉(zhuǎn)義功能相反
看,在字符串前面加一個(gè)r就可以防止轉(zhuǎn)義了,這和加兩個(gè)\\的作用一模一樣:
有問題留言區(qū)見,加油!
總結(jié)
以上是生活随笔為你收集整理的python 输入字符串_输入输出,字符串如影随形 | Python基础连载(五)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何将word中的对象怎么显示到工具栏_
- 下一篇: python easygui_pytho