1. 程式人生 > >python3 語法小記(四) sys.stdout、sys.stdin

python3 語法小記(四) sys.stdout、sys.stdin

如果需要更好的控制輸出,而print不能滿足需求, 可以使用sys.stdout、sys.stdin

1.sys.stdout

在python中呼叫print時,事實上呼叫了sys.stdout.write(obj+'\n')

print將需要得內容列印到控制檯上,然後追加一個換行符。

以下兩行程式碼等價:

sys.stdout.write('hello'+'\n')


print('hello')

2.sys.stdin

sys.stdin.readline()會將標準輸入全部獲取,包括末尾的 '\n' ,因此用len計算長度時,是把換行符 '\n' 算進去的

但是input()獲取輸入時,返回的結果是不包含末尾的換行符的。

因此,如果在平時使用sys.stdin.readline()獲取輸入的話,不要忘了去掉末尾的換行符,

可以用strip()函式(sys.stdin.readline().strip('\n'))或者sys.stdin.readline()[:-1],去掉最後的換行符。

詳細解析

 

strip() , lstrip() , rstrip()區別

strip() 是去掉字串首尾字元的方法

lstrip()用於去除左邊首部的字元

rstrip()用於去除右邊尾部的字元

當括號內為空時,預設去掉空格

theString = 'saaaay yes no yaaaass'
print(theString.strip())
>>>saaaay yes no yaaaass

print(theString.strip('say'))
>>> yes no 

print(theString.strip('say '))  #say後有空格
>>>es no  

print(theString.lstrip('say'))
>>> yes no yaaaass

print(theString.rstrip('say'))
>>>saaaay yes no