輸入輸出
input輸入函數(shù)
input函數(shù):獲取用戶輸入,保存成一個(gè)字符串。重要的話,說(shuō)兩遍,input函數(shù)的返回值是一個(gè)字符串類型。哪怕你輸入的是個(gè)數(shù)字1,返回給你的只會(huì)是字符串“1”,而不是 整數(shù)1 。
str = input("請(qǐng)輸入你的姓名:")
請(qǐng)輸入你的姓名:json
'json'
type(str)
<class 'str'>
age = input("請(qǐng)輸入你的年齡:")
請(qǐng)輸入你的年齡:18
'18'
type(age)
<class 'str'>
a = input("請(qǐng)輸入一個(gè)字符串:")
如果輸入的是一個(gè)空白字符串,輸入的也是空白字符
a = input("請(qǐng)輸入一個(gè)字符:")
如果輸入的是前后都有空格的字符,輸出的也是前后都有空格的字符串
從上面兩個(gè)例子中,大家也可以發(fā)現(xiàn)了,我輸入的值不管是什么,類型都是字符串。
type是python內(nèi)置的函數(shù)之一,作用是查看數(shù)據(jù)的類型。
比如將字符串轉(zhuǎn)換成數(shù)字類型
age = input("請(qǐng)輸入你的年齡: ")
age = int(age) # 將字符串轉(zhuǎn)化為整數(shù)
if age > 18:
print("你已經(jīng)成年!")
else:
print("還沒(méi)斷奶?")
前面我們?cè)趯⒆址D(zhuǎn)化為整數(shù)用的是int()函數(shù),這種方式有危險(xiǎn)的
s = "123"
a = int(s)
a
123
s = "something"
a = int(s)
Traceback (most recent call last):
File "<pyshell#12>", line 1, in <module>
a = int(s)
ValueError: invalid literal for int() with base 10: 'something'
對(duì)于形如“123”, “283242”的字符串,轉(zhuǎn)化沒(méi)問(wèn)題,但是對(duì)于包含字符、特殊字符的字符串就沒(méi)辦法轉(zhuǎn)化了,會(huì)彈出異常錯(cuò)誤。所以在使用int函數(shù)之前,要先對(duì)輸入進(jìn)行判斷
age = input("請(qǐng)輸入你的年齡: ")
if age.isdigit(): # 使用isdigit函數(shù)判斷輸入是否全是數(shù)字格式
age = int(age) # 將字符串轉(zhuǎn)化為整數(shù)
print("你的年齡是: ", age)
else:
print("輸入不合法!")
input函數(shù)有時(shí)可以巧妙地用于阻塞或暫停程序
print("程序前面部分執(zhí)行完畢......")
input("請(qǐng)按回車?yán)^續(xù)......") # 在這里程序會(huì)暫停,等待你的回車動(dòng)作
print("繼續(xù)執(zhí)行程序的后面部分......")
此時(shí)的input函數(shù)不會(huì)將輸入保存下來(lái),只是用作暫停程序動(dòng)作
print輸入函數(shù)
print函數(shù)我們其實(shí)已經(jīng)不陌生了,前面我們也已經(jīng)用了很多次了。作用就是打印變量。
a = "json"
b = "teach"
print(a,b)
"json teach" # 自動(dòng)以空格分隔
print(a+"a"+"b")
"jsonab" # 無(wú)分隔
我們看一下print函數(shù)的原型:print(self, *args, sep=' ', end='\n', file=None)
sep參數(shù): 分隔的符號(hào),默認(rèn)是一個(gè)空格
end參數(shù): 打印后的結(jié)束方式,默認(rèn)為換行符\n。如果,設(shè)置end='',則可以不換行,讓print在一行內(nèi)連續(xù)打印。活用print的參數(shù),可以實(shí)現(xiàn)靈活的打印控制。
a = "i am"
b = "teach"
print(a,"a",b,sep="*")
i am*a*teach
print格式化輸出
在Python2.6以后,有兩種格式化輸出的方式。
一種就是類似C語(yǔ)言的printf的%百分號(hào)格式化輸出,也是Python最基礎(chǔ)最常用的格式化輸出方式。另一種就是str.format()的方式。
這里先介紹一下傳統(tǒng)的%格式化輸出方式,例如:
print("我叫%s 今年%d歲"%('json',18))
首先構(gòu)造了一個(gè)字符串"我叫%s 今年%d歲",講其中需要用別的變量替換的部分,用%號(hào)加一個(gè)數(shù)據(jù)類型代號(hào),前面有多少個(gè)%號(hào),后面就要提供多少個(gè)參數(shù),每個(gè)參數(shù)值之間用逗號(hào)隔開。每個(gè)參數(shù)與前面的%,相對(duì)應(yīng)的。并且數(shù)據(jù)類型也要能夠合法對(duì)應(yīng)。
格式化符號(hào):

需要特別說(shuō)明的是,如果你想在print中打印一個(gè)%百分符號(hào)本身,那么你需要使用%%,兩個(gè)百分符轉(zhuǎn)義出一個(gè)百分符
age=18
print('%d%%'%age)
18%