更好的排版閱讀體驗,請移步 微信端
開篇前面兩期詳細的介紹了字元串及其相關操作,在今後的程式設計中,你将經常和字元串打交道。一個比較常見的場景就是
輸入輸出,是以本期将結合字元串,講述最基本同時也是最常用的輸入輸出文法(
input
和
print
),并且會在文章最後補充一些之前沒有講到的字元串的内容。
input()用于接收使用者的輸入input()
用于接受使用者的輸入。
>>> input()
當你寫入以上代碼,并按下Enter鍵後,你會發現光标在閃動,這是在提示你要輸入一些東西。
當輸入完成後,再按一次回車,你所輸入的東西便會列印出來顯示在螢幕上,就像下面這樣:

圖中,黑色的字是我輸入的,藍色的字是列印輸出在螢幕上的。
那如果不想列印輸出在螢幕上,而是想将輸入的内容儲存起來,又應該怎麼做呢?
簡單!隻要用一個變量接收
input()
的輸入内容就搞定啦!
這樣,輸入的内容就被儲存在變量
x
中了。
細心的你或許已經發現了,藍色的字被一對
''
包裹着,這不正是之前學習的字元串類型嗎?
沒錯!事實上,
你輸入input()
中的任何類型的資料,都會變成字元串類型 。
你可能不太信,因為上面的栗子中,我輸入的内容
我将在南極找尋你
本身就是個字元串類型的,是以輸出的自然也是字元串咯。為了證明我說的是對的,咱們可以試着輸入一個數字,看看出來的是不是還是數字類型。
看吧,輸入的數字
2333
也變成了字元串
str
類型。
以上就是
input()
的基本用法。
那你可能又會想:在提示輸入時隻有一個光标閃動會不會太不明顯了?能不能加一些提示資訊呢?
可以!
input()
中的
()
裡面可以添加提示資訊,看這個栗子:
藍色的字是列印的提示資訊,
22
是我的輸入,它被儲存在了變量
age
中。
學會使用print()大家應該對
print()
不陌生了,之前的幾期内容中也提到過它,今天就對它的常見用法做一個總結。
最基本的,就是将目标内容輸出顯示到螢幕上:
看起來有些單調,是以可以添加一些描述性的語句,這些語句是字元串類型,是以需要包裹到一對引号内,看下面的栗子:
這樣看起來就清晰很多,不至于隻有一個數字
22
而無任何其他資訊。
但是對于稍稍有些強迫症的我來說,這還不夠完美,因為在輸出到螢幕上的内容中,
'我的年齡是'
和
22
之間有一個空格,我想要讓他們之間無縫對接,那應該怎麼做呢?
其實也不難。
print()
提供了一個
seq
的參數,可以使你自己設定被逗号分隔的兩段内容(這裡就是
'我的年齡'
和
age
)在輸出時用什麼符号連接配接,如果不設定,也就是什麼都不寫,那麼預設就是用空格連接配接起來。
是以,我們隻要将
seq
設定為
空
就可以了,就像下面這樣:
當然,你也可以設定為
:
,
*
,
+
以及其他你能想到的字元。

現在考慮這麼一個問題:
已知兩個人的年齡,要求你将兩個人的年齡輸出到螢幕上(不限格式)。
可以建立一個腳本檔案,内容如下:
age1=22
age2=23
print('第一個人的年齡是',age1)
print('第二個人的年齡是',age2)
你将在螢幕上看到以下輸出結果:
這時候,題目增加了一個要求:兩個
print()
語句輸出的内容必須顯示在同一行。
這應該如何實作呢?
其實,
print()
語句預設在運作結束後列印一個
換行符
,我們可以通過
end
參數來修改,比如
end='*'
表示在運作結束後列印一個
*
而不是
換行符
。
是以,問題解決了,在第一個
print()
語句中指明
end
為空格即可:
age1=22
age2=23
print('第一個人的年齡是',age1,end=' ')
print('第二個人的年齡是',age2)
輸出:
第一個人的年齡是 22 第二個人的年齡是 23
總結一下:
end
用于指明在執行完 print()
語句之後附帶着列印的符号,若不指明,則使用預設的換行符 sep
用于指名在同一個 print()
中,用逗号分隔的每個部分之間連接配接的符号,若不指明,則使用預設的空格 print()的格式化輸出 方法1. 類似
C
語言的方法
如果你沒有學習過
C
或者早已忘記了
C
也不影響閱讀,因為下面要講的跟
C
本身并無直接關系。
在
Python
的
print()
中,可以使用以
%
開頭的東西來占位置,是以形象的稱之為
占位符
。主要有3種,分别是
%d
,
%f
,
%s
,分别對應了
整數
,
浮點數
(小數)和
字元串
。
看下面這個栗子:
>>> age1=22
>>> age2=23
>>> print('第一個人的年齡是%d,第二個人的年齡是%d'%(age1,age2))
第一個人的年齡是22,第二個人的年齡是23
注意,後面的
%(age1,age2)
中變量的順序要與前面的占位符的順序一一對應
再上個栗子,自己跟着敲一下,基本就掌握了。
>>> name='小明'
>>> age=18
>>> favorate_number=3.1415926
>>> print('%s今年%d歲了,他最喜歡的數字是%.2f'%(name,age,favorate_number))#%.2f是指保留兩位小數
小明今年18歲了,他最喜歡的數字是3.14
方法2.使用
format
,用
{}
作為占位符(ps:我自己經常使用的是這個)
如果占位符
{}
内什麼也不寫,那麼每一個
{}
就會按出現的順序與
format
中的變量名一一對應,舉個栗子就清楚啦:
>>> name='小明'
>>> age=18
>>> favorate_number=3.1415926
>>> print('{}今年{}歲了,他最喜歡的數字是{}'.format(name,age,favorate_number))
小明今年18歲了,他最喜歡的數字是3.1415926
如果占位符
{}
寫了下标,那麼
format
中變量名的位置下标必須與
format
中的下标從小到大一一對應,看這個栗子:
>>> name='小明'
>>> age=18
>>> favorate_number=3.1415926
>>> print('{1}今年{2}歲了,他最喜歡的數字是{0}'.format(favorate_number,name,age))
小明今年18歲了,他最喜歡的數字是3.1415926
結合下圖,或許你能更好的了解上面這個栗子
還有一種情況,就是
{}
傳入的不僅可以是下标,還可以是變量的名字,此時
format
中傳入的是
變量名=内容
,看栗子:
>>> name='小明'
>>> age=18
>>> favorate_number=3.1415926
>>> print('{name}今年{age}歲了,他最喜歡的數字是{favorate_number}'.format(favorate_number=favorate_number,name=name,age=age))
小明今年18歲了,他最喜歡的數字是3.1415926
字元串的補充内容在上面關于
print()
的學習中,我們遇到了
換行符
,以
%
開頭的占位符等,這些東西又可以牽扯出字元串的幾個知識點,下面來看一下。
1.轉義字元
Python
中使用
代表其後面的第一個字元是普通的字元串,而不是
Python
中具有某些功能的辨別。比如,我想要輸出
I'm ok
到螢幕上,直接寫
x='I'm ok'
print(x)
會報錯,因為
Python
認為
I
被一對單引号包裹,單獨成一部分,而後面的
m ok'
是另一部分。這樣,由于後面那部分隻有右側的單引号而沒有左側的單引号,是以産生了文法錯誤。
這時候,轉義字元
就派上用場了!
>>> x='I'm ok'
>>> print(x)
I'm ok
在
後面的
'
被認為是一個普通的字元,進而可以直接列印輸出了。
還有一種特殊情況,就是在上面的格式化輸出中,會用到
%s
,那萬一字元串中正好有一部分叫做
%s
呢?百字不如一栗,上栗子:
在這個栗子中,有個人的名字叫做"王%s"
>>> age=18
>>> favorate_color='black'
>>> print('王%%s的年齡是%d,王%%s最喜歡的顔色是%s'%(age,favorate_color))
王%s的年齡是18,王%s最喜歡的顔色是black
看,這裡的
%
也充當了轉義字元的作用,它使得
%s
中的
%
不作為具有某些功能的符号,而隻是一個普通字元。
2.常用轉義字元
(本圖源自網絡)
3.防止轉義
看這個栗子:
由于字元串中包含轉義字元
,是以會報錯。
是以這裡要考慮防止轉義。
解決方法也很簡單,那就是在轉義字元
前面再加一個
,這樣,
代表的意思就是一個普通的反斜杠了:
其實,
Python
還提供了另一種更簡單的方法,那就是在要防止轉義字元生效的字元串前面加一個
r
,這個過程正好與上面的轉義功能相反
看,在字元串前面加一個
r
就可以防止轉義了,這和加兩個
的作用一模一樣:
有問題留言區見,加油!