目錄
Python輸入和輸出
1.1Python輸入
1.2Python輸出
Python輸入和輸出
1.1Python輸入
Python從鍵盤輸入使用的是input()函數,該函數的傳回值是字元串。
文法格式:變量名=input("輸入提示資訊字元串")
功能:從标準輸入讀取一行,并以字元串形式傳回(去掉結尾的換行符)
注意:
通過int()、float()、eval()和input()函數的組合,可以輸入整數或小數;
同時接收多個資料輸入,需要使用eval()函數。例如:a,b,c=eval(input())
1.2Python輸出
Python輸出使用的是print()函數。print()函數的使用較靈活,與相關格式化函數組合使用,可以實作輸出控制。
文法格式:print(*objects,sep=' ',end='\n',file=sys.stdout,flush=False)
功能:把objects中的每個對象都轉化為字元串的形式,然後寫到file參數指定的檔案中,預設是标準輸出(sys.stdout);每一個對象之間用sep所指的參數進行分隔,預設是空格。所有對象都寫到檔案後,寫入end參數所指字元,預設是換行。
注意:
如果想把輸出之間的分隔符換成其他符号,可以使用sep參數。例如print('Hello','world!',sep='**')輸出Hello**world!;
print()函數的目前内容輸出後會換行。如果下一個輸出不想換行,使用end參數;
在輸出字元串中可以使用轉義字元\t(8個空格的制表符)和\n(換行)來控制輸出格式;
可以使用轉義字元\'、\"和\\來分别輸出'、"和\;
如果需要以固定的寬度一列一列地輸出。可以使用ljust(n)、rjust(n)和center(n),分别表示寬度為n顯示中的左對齊、右對齊和居中;
zfill()函數可以在數字的左邊填充0;
在字元串中還可以使用format()函數進行控制。
format()函數是Python2.6之後的版本中新增的格式化輸出函數,功能十分強大。其特點是用{}替代原來的%進行格式控制,且不限參數個數,位置不必按順序書寫;一個參數可多次使用,也可以不使用。
format()函數中可以使用如下格式說明:
花括号聲明{},用于渲染前的參數引用聲明。花括号裡可以用數字代表引用參數的序号,或者變量名直接引用;
從format參數引入的變量名;
冒号(:)後面帶填充的字元,隻能是一個字元,預設使用空格填充;
字元位數聲明,用數字表示;
精度的聲明,常跟類型f一起使用;
逗号(,)是千分位的聲明;
變量類型的聲明:字元串s、數字d、浮點數f;
對齊方向符号,分别表示左對齊、居中、右對齊,後面可帶寬度;
屬性通路符中括号[];
使用感歎号!後接a、r、s,聲明是使用何種模式,如ASCII模式、引用_repr_或_str_。
增加類魔法函數_format_(self,format),可以根據format前的字元串格式來定制不同的顯示。例如‘{:xxxx}’,此時xxxx作為參數傳入_format_()函數。
format函數應用執行個體代碼:
import math
#括号及其裡面的字元(稱作格式化字段)将會被format()中的參數替換
print('We are the {} who say "{}!"'.format('knights','Ni'))
#在括号中的數字用于指向傳入對象在format()中的位置
print('{0} and {1}'.format('chicken','eggs'))
print('{1} and {0}'.format('chicken','eggs'))
#如果在format()中使用了關鍵字參數,它們的值将指向使用該名字的參數
print('This {food} is {adjective}.'.format(food='milk',adjective='absolutely horrible'))
#位置及關鍵字參數可以任意結合
print('The story of {0},{1},and {other}.'.format('Bill','John',other='Dan'))
#可選項‘:’和格式辨別符可以跟着字段名,允許對值進行更好的格式化
#下面的例子将Pi保留到小數點後3位
print('The value of PI is approximately {0:.3f}.'.format(math.pi))
#在‘:’後傳入一個整數,可以保證該域至少有這麼大的寬度,在美化表格時很有用
print('{0:10}==>{1:10d}'.format("Bill",8752))
#:冒号+空白填充+右對齊+固定寬度18+浮點精度.2+浮點數聲明f
print('{:>18,.2f}'.format(76305784.0))
#右對齊,使用空格填充
print('{:>8}'.format('286'))
#右對齊,使用0填充
print('{:0>8}'.format('286'))
#右對齊,使用*填充
print('{:*>8}'.format('286'))
#采用不同的進制輸出資料
print('二進制輸出{:b}'.format(17))
print('千分位輸出{:,}'.format(1234567890))
#通過關鍵字輸出
print('{name},{cardNo}'.format(cardNo=10012001,name='cat'))
#輸出正、負号
print('{:+f};{:+f}'.format(25.168,-98.705))
print('The rate is:{:.2%}'.format(0.7892))
fruit=('apple','peach','orange')
#通過下标比對參數
print('fruit:{0[2]},{0[0]}'.format(fruit))
運作結果:
E:\PycharmProjects\PythonTest\venv\Scripts\python.exe E:/PycharmProjects/PythonTest/ssss.py
We are the knights who say "Ni!"
chicken and eggs
eggs and chicken
This milk is absolutely horrible.
The story of Bill,John,and Dan.
The value of PI is approximately 3.142.
Bill ==> 8752
76,305,784.00
286
00000286
*****286
二進制輸出10001
千分位輸出1,234,567,890
cat,10012001
+25.168000;-98.705000
The rate is:78.92%
fruit:orange,apple
Process finished with exit code 0
第15行中後面的大括号中的d不明白是什麼意思;
順序好像有限制,把第17行中的{:>18,.2f}改成{:18>,.2f}或者{:>,18.2f}就會提示出現錯誤;
看代碼是能看懂,但是讓自己寫可能有些寫不出來。
左結合、右結合、優先級等内容再看一看。