8-輸入和輸出

輸入輸出

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):

image.png

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

age=18 
print('%d%%'%age)
18%
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、Python簡(jiǎn)介和環(huán)境搭建以及pip的安裝 4課時(shí)實(shí)驗(yàn)課主要內(nèi)容 【Python簡(jiǎn)介】: Python 是一個(gè)...
    _小老虎_閱讀 6,330評(píng)論 0 10
  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,712評(píng)論 0 5
  • 這是16年5月份編輯的一份比較雜亂適合自己觀看的學(xué)習(xí)記錄文檔,今天18年5月份再次想寫文章,發(fā)現(xiàn)簡(jiǎn)書還為我保存起的...
    Jenaral閱讀 3,143評(píng)論 2 9
  • (稻盛哲學(xué)學(xué)習(xí)會(huì))打卡第25天 姓名:夏國(guó)君 部門:品控部 組別:待定 【知~學(xué)習(xí)】 活法:戰(zhàn)勝自我向前進(jìn),人生大...
    夏國(guó)君閱讀 465評(píng)論 0 0

友情鏈接更多精彩內(nèi)容