天天看點

python中輸入資料時怎麼設定預設用感歎号隔開_Python入門之(2.3)輸入和輸出

目錄

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}就會提示出現錯誤;

看代碼是能看懂,但是讓自己寫可能有些寫不出來。

左結合、右結合、優先級等内容再看一看。