话说,你写Python代码,总不能让它像个只会自说自话的闷葫芦吧?得跟外头世界交流啊!跟谁交流?最直接的,就是跟你,或者其他用你程序的人。那怎么交流?输出是一方面,用 print()
把东西甩出来给人家看,这个我们都知道,它把信息从程序里抛出去。但这只是单向的,像对着墙说话。真正的互动,得有来有往啊!程序得能“听懂”你在说什么,或者说,能接收你给它的信息、数据、指令。这就说到今天的主角了:python 怎么输入这事儿。
在Python里,要让你的程序“听话”,等你给它点指示或者数据,得请出一位大名鼎鼎的函数,叫 input()
。别看它名字简单,功能可老实了——它就是负责“接收”的那个。你想想看,如果你的程序只能自说自话,像个没有耳朵的家伙,那得多无聊啊?有了 input()
,它就有了耳朵,能“听”见你键盘上敲的东西了。
当你代码运行到 input()
这一行,程序会非常礼貌地、非常乖巧地停下,它不往下走了,就在那里静静地等着。等着什么?等着你,用户,对着命令行或者终端,噼里啪啦地敲点什么。比如你写了 input()
,程序就在那儿 blinking cursor 等你。
你敲完了,可能是你的名字,可能是个数字,可能是随便什么一串字符,然后呢?你得按一下回车键(Enter键)。这个回车键非常关键,它告诉 input()
函数:“行了,我输完了,你可以把你‘听’到的东西拿走了。” input()
函数接收到回车信号后,就会把你从它开始等你输入(或者从你运行程序开始,如果 input()
是第一个需要输入的地方)到你按回车键之前,你在键盘上敲下的所有字符,一个不漏地“抓”进来。
抓进来的是啥?划重点了!它抓进来的,永远、永远、永远是字符串 (string)。哪怕你瞪大眼睛,一个字符一个字符地敲进去的是数字“1”、“2”、“3”,看起来像个数字123,但在Python用 input()
拿到它的一瞬间,它就变成了个字符串‘123’,外面带着引号的那种,不是数学意义上的数字123。
这字符串的事儿,刚开始学的时候,绝对是无数人栽跟头的地方,包括我当年也是!你想拿用户输入的“年龄”(比如用户敲了个“18”)去做加法运算,比如你想算“明年他多大”,直接拿 input()
拿到的东西加上1,程序立马给你甩脸色,给你个大大的错误提示,比如 TypeError
!为啥?因为字符串不能直接跟数字做数学运算啊!‘18’ + 1 在Python里,它不理解这是18加1等于19。它只会说:“你拿个字串儿跟我数字瞎掺和啥?”
解决办法?很简单粗暴,类型转换!Python里有各种把字符串变成别的数据类型的内置函数,这是Python的贴心之处。最常用的,也是你处理python 怎么输入数字时必备的,就是 int()
(用来把字符串变成整数)和 float()
(用来把字符串变成浮点数,就是带小数点那种数字)。
比如,用户输入了年龄‘18’,你要用它做计算,就得这样:nian_ling_str = input('请告诉我你的年龄:')
,拿到的是字符串‘18’。然后,立刻进行类型转换:nian_ling_int = int(nian_ling_str)
。这下 nian_ling_int
里存的就是真真正正的数字18了,你可以愉快地 nian_ling_int + 1
,得到19。同理,如果用户输入的是身高‘1.75’,你就得用 float()
转一下:shen_gao_float = float(input('请告诉我你的身高(米):'))
,然后 shen_gao_float * 100
就能得到175.0厘米。记住,输入后立即考虑类型转换,这能省你无数的debug时间。
等等,刚才说到 input('请告诉我你的年龄:')
,括号里这一串字儿是啥?哦,这个是 input()
函数的另一个贴心功能:你可以给它一个字符串作为参数。这个字符串呢,会在程序等待你输入的时候,先显示在屏幕上。这就是所谓的提示信息或者叫提示符 (prompt)。你想想,如果程序就光秃秃地停在那里,一个光标闪啊闪,用户哪知道你要他输啥啊?加上提示信息,比如 input('请输入你的密码:')
,用户一看就明白了。这个小细节,让你的程序瞬间友好度飙高,从一个高冷的机器,变成了一个知道如何引导用户的智能伙伴。
来,脑子里跑一下一个完整的、简单的python 输入和处理流程:你想写个小程序,问用户买了多少斤苹果,单价多少,算出总价。
第一步,问数量:apple_weight_str = input('苹果多少斤?请输数字:')
。这里给了提示,用户知道要输啥了。拿回来的是字符串!
第二步,问单价:apple_price_str = input('苹果单价多少钱一斤?请输数字:')
。同样拿回来的是字符串!
第三步,类型转换:得把这两个字符串变成数字,既然涉及到金额,可能有小数点,用 float()
安全点。apple_weight = float(apple_weight_str)
,apple_price = float(apple_price_str)
。现在手里是两个可以做乘法的数字了。
第四步,计算:total_price = apple_weight * apple_price
。
第五步,输出结果:print('苹果总价是:', total_price, '元')
。
你看,整个过程,python 怎么输入只是第一步,但输入后的处理(特别是类型转换)跟输入本身一样重要。别忘了给 input()
加提示啊,不然用户对着一个黑乎乎的命令行,鬼知道你要问啥!用户体验从接收输入就开始了。
话说回来,python 怎么输入,听着好像就这一个 input()
函数的事儿,但里面包含的“门道”,其实是数据流、用户交互、数据类型这些编程里特别基础又特别重要的概念。刚开始觉得麻烦,老是忘记转类型,结果程序报错卡壳,多练练,把“input完就转!”这个习惯刻进DNA里就好。别灰心,谁不是这么磕磕绊绊过来的?
当然,用户可不是你想的那么乖,或者说,真实世界的数据总是充满意外。你让输数字,他可能手滑,或者故意的,给你敲个汉字、字母或者其他乱七八糟的东西。这时候,你那个信心满满的 int()
或 float()
就会“炸毛”,因为它没法把“你好”或者“abc”变成数字,然后就会无情地抛出个 ValueError
错误,程序就崩溃停下了。高级点儿、健壮点儿的程序,就得考虑怎么“兜住”这些意外情况,比如用 try...except
块去尝试转换,如果转换失败(出错了),就给用户一个友好的提示,告诉他“你输错了哦,请重新输入一个有效的数字”,而不是直接让程序崩掉。但这已经是输入之后的“善后”工作了,属于错误处理的范畴,咱们今天重点是怎么拿进来,对吧?先把拿的本事练好,知道拿进来的是啥,该怎么处理最常见的情况,再考虑怎么应对那些乱七八糟的输入也不迟。
所以呢,下回你写Python,想让它别光在那儿自己跑,想跟它“说说话”,或者让用你程序的人“说说话”,知道找谁了吧?input()
!记住它的脾气:拿回来的是字符串,要算数或者比较大小,得“变身”!搞定这个,恭喜你,你的Python程序就多了一扇跟世界连接的窗户了。小小的python 怎么输入,藏着大大的可能性呢!从一个只能输出的木偶,变成一个可以对话的AI雏形,input()
功不可没。多练练,多试试,你会发现跟程序“对话”是件挺有意思的事。
评论(0)