本文首發(fā)于公眾號(hào)「猿天罡」,轉(zhuǎn)載請注明出處,謝謝!
有時(shí)候,我們編寫的程序需要從用戶那兒“拿到”一些數(shù)據(jù)才能繼續(xù)執(zhí)行下去,比如,判斷某人是否到了法定投票年齡,需要用戶自己輸入名字和年齡才行。
Python要“拿到”用戶輸入的數(shù)據(jù)比起Java來可簡單多了,只需要學(xué)會(huì)
input()
方法即可。
下面我們一起來學(xué)習(xí)一下
input()
函數(shù)的基本用法,邁出編寫交互式程序的第一步!
1.函數(shù)input()的工作原理
input()
方法會(huì)先向控制臺(tái)輸出提示語(如果你設(shè)置了的話,后面會(huì)講),然后暫停程序,等待用戶輸入一些文本數(shù)據(jù)。獲取到用戶輸入的數(shù)據(jù)后,Python將其存儲(chǔ)在一個(gè)變量中,以便之后使用。
舉個(gè)例子,下面的程序讓用戶輸入年齡(暫時(shí)不判斷是否可以投票),再將用戶年齡打印出來:
age
=
input
(
"小盆友,今年多大啦?請?jiān)谙路捷斎肽愕哪挲g:\n"
)
print
(
"我今年 "
+
age
+
" 歲"
)
函數(shù)
input()
接受一個(gè)參數(shù),即要向用戶顯示的提示或說明,讓用戶知道該如何做。
在上面的示例中,我們傳給
input()
函數(shù)的參數(shù)是
小盆友,今年多大啦?請?jiān)谙路捷斎肽愕哪挲g:\n
。程序會(huì)把這個(gè)參數(shù)輸出到控制臺(tái),用戶可以看到這個(gè)參數(shù)(提示)。
然后用戶根據(jù)提示輸入自己的年齡,輸入完成后,當(dāng)用戶按下回車鍵,程序會(huì)繼續(xù)執(zhí)行,并將用戶輸入存儲(chǔ)在變量
age
中,最后被我們打印輸出。
說明一下,不同IDE的控制臺(tái)可能有細(xì)微的區(qū)別,我用的是PyCharm,用戶輸入的內(nèi)容是彩色的。如果你用的是別的IDE沒有彩色可別大驚小怪哦。
別看上面程序短小,其實(shí)暗含很多信息:
-
如果需要給用戶提示信息,就把提示信息(通常是字符串)傳給
input()
方法。當(dāng)然,你也可以什么也不傳,程序照樣正常執(zhí)行,就是用戶體驗(yàn)不太好; -
不論用戶輸入的是什么,Python都會(huì)將其轉(zhuǎn)化成str類型。
關(guān)于第二點(diǎn),我們來具體看看:
age
=
input
(
"小盆友,今年多大啦?請?jiān)谙路捷斎肽愕哪挲g:\n"
)
print
(
type
(
age
)
)
可以看到輸入的"18"確實(shí)是str類型,這也就解釋了為什么上面的代碼中
age
可以不做轉(zhuǎn)化直接與字符串進(jìn)行拼接了。
2.投票程序
知道了
input()
函數(shù)的基本用法之后,其實(shí)我們已經(jīng)能夠?qū)崿F(xiàn)投票程序了。不過在此之前還需要惡補(bǔ)一個(gè)小知識(shí)點(diǎn)。
我們知道
input()
函數(shù)獲取到的用戶輸入理論上都是str類型(字符串)。
但是投票程序需要用數(shù)字去比較大小,要知道
"18"
和
18
是不一樣的,前者是字符串,后者是數(shù)字,只有數(shù)字18才可以直接進(jìn)行大于、小于或等于之類的比較。
問題:怎么把str類型轉(zhuǎn)化成整數(shù)類型呢?
答:用函數(shù)
int()
,參數(shù)是要轉(zhuǎn)化的字符串。
age
=
input
(
"小盆友,今年多大啦?請?jiān)谙路捷斎肽愕哪挲g:\n"
)
print
(
type
(
age
)
)
# 把str類型轉(zhuǎn)化成int類型
n
=
int
(
age
)
print
(
type
(
n
)
)
我們把str類型的變量
age
轉(zhuǎn)化成了int類型并將其賦值給變量
n
,所以
type(n)
輸出的應(yīng)該是int類型。
從圖中可以看到,真的轉(zhuǎn)化成功了。
**總結(jié):**str類型轉(zhuǎn)int類型,使用
int()
函數(shù),被轉(zhuǎn)化的字符串必須形式上是整數(shù)但類型是str。
現(xiàn)在萬事俱備,一起來實(shí)現(xiàn)投票程序吧:
name
=
input
(
"請輸入你的姓名:"
)
age
=
input
(
"請輸入你的年齡:"
)
age
=
int
(
age
)
if
age
>=
18
:
print
(
name
+
",你已達(dá)到法定投票年齡!"
)
else
:
print
(
name
+
",很遺憾,你暫時(shí)無法參與投票!"
)
首先定義了兩個(gè)變量
name
和
age
來接收用戶輸入的姓名和年齡。需要注意的是,這兩個(gè)變量此時(shí)都是str類型。
然后需要把用戶輸入的年齡與法定投票年齡(18)進(jìn)行比較,所以要求用戶輸入的年齡得是整數(shù)類型,所以使用了函數(shù)
int()
。關(guān)于函數(shù)的概念之后文章會(huì)講到,如果你沒有相關(guān)概念,就將其理解成一個(gè)黑箱,不必深究,只需要知道函數(shù)
int()
經(jīng)過某些處理,可以把str類型轉(zhuǎn)化成int類型就行了。
最后與18進(jìn)行比較,大于等于18的可以投票,否則無法投票。
3.判斷奇偶數(shù)
寫這個(gè)呢,一方面是想鞏固練習(xí)一下
input()
函數(shù),另一方面是想講講前面幾篇文章里沒有提到卻相當(dāng)重要的一個(gè)運(yùn)算符–
%
求模運(yùn)算符。
小伙伴們可能對加(
+
)、減(
-
)、乘(
*
)、除(
/
)、乘方(
**
)很熟悉。遺忘的同學(xué)可以點(diǎn)擊看我這篇文章。
求模運(yùn)算符就是計(jì)算兩個(gè)數(shù)相除的余數(shù) 。
[外鏈圖片轉(zhuǎn)存失敗(img-Uv0jF8vp-1566311751588)(https://liuwynn.github.io/images/20190818/圖3-1.png)]
用求模運(yùn)算符來計(jì)算圖示算式:
23
%
5
計(jì)算結(jié)果肯定是3。
言歸正傳,怎么判斷某個(gè)數(shù)是奇數(shù)還是偶數(shù)呢?
我們知道,能被2整除的數(shù)是偶數(shù),不能被2整除的數(shù)是奇數(shù)。整除的意思說白了就是余數(shù)為0,這恰好是求模運(yùn)算符%擅長的領(lǐng)域。
假設(shè)存在某個(gè)整數(shù)X,如果:
X
%
2
==
0
# X和2求模余數(shù)是0
則說明X是偶數(shù),否則X一定是奇數(shù)。
基本思路理解之后,動(dòng)手編程咯:
number
=
input
(
"請輸入一個(gè)整數(shù),程序?qū)⒆詣?dòng)判斷奇偶:"
)
number
=
int
(
number
)
if
number
%
2
==
0
:
print
(
"\n數(shù)字"
+
str
(
number
)
+
" 是偶數(shù)"
)
else
:
print
(
"\n數(shù)字"
+
str
(
number
)
+
" 是奇數(shù)"
)
首先定義變量
number
去接收用戶輸入的整數(shù),心里要知道
number
接收到的是str類型,它無法直接和2執(zhí)行求模運(yùn)算。
然后將str類型變量
number
轉(zhuǎn)化成int類型,這時(shí)
number
就可以和2執(zhí)行求模運(yùn)算了。
最后判斷求模結(jié)果,即
number
與2相除的余數(shù)是不是0,等于0的話就是偶數(shù),否則就是奇數(shù)。
運(yùn)行結(jié)果:
求模運(yùn)算符在編程中使用的還是蠻多的,和加減乘除等運(yùn)算一樣重要,如果你之前沒有使用過的話,請務(wù)必牢記。
4.結(jié)語
本文重點(diǎn)講述了
input()
函數(shù)的基本用法,順便說明了str類型怎么轉(zhuǎn)成int類型以及求模運(yùn)算符的使用。
如果這篇文章對你有所幫助,歡迎點(diǎn)贊、轉(zhuǎn)發(fā)加收藏啦~
或者你有任何疑問,可以掃碼關(guān)注下方公眾號(hào),隨時(shí)與我聯(lián)系,關(guān)于Python相關(guān)的文章也會(huì)首發(fā)在此公眾平臺(tái)。
最后,感謝你的閱讀,我們下期再見。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
