大家好,我是围棋进阶。1、为什么要输入输出?无论是一开始的“helloworld”,还是之前的各种例子,基本上都是在“自言自语”,展示类的代码片段。只有能够接收用户输入,根据输入的代码生成结果,并输出到屏幕上显示,才算是一个比较完整和简单的程序。2.input函数获取用户输入并保存为字符串。重要的话,说一遍,输入函数的返回值是字符串类型。即使你输入一个数字1,返回给你的也只是字符串“1”,而不是整数1。下面是一些简单的显示例子:#第一个例子>>>inp=input("pleaseinputyourname:")pleaseinputyourname:jack>>>inp'jack'>>>type(inp)#第2个例子age=input("pleaseinputyourage:")pleaseinputyourage:18print(age)'18'#第三个例子>>>type(age)#第四个例子>>>a=input("Pleaseenteracharacter:")'Pleaseenteracharacter:withspacesbeforeandafter'>>>a'前后有空格'在第一个例子中,input=input("请输入你的名字:"),input函数中可以提供一个字符串来提示用户输入。输入函数的返回值赋值给变量inp后,将用户输入的值保存在inp中。type是Python的内置函数之一,对于查看对象的数据类型非常有用。在第二个例子中,输入的年龄是18岁,但是在age中存储了一个字符串“18”。在第三个示例中,没有输入任何内容,返回一个空字符串。在第四个示例中,有效输入的前导和尾随空白保留在返回的字符串中。从上面例子的展示不难发现,input函数将用户的输入原封不动的返回给变量,并包装成一个字符串。这肯定是不行的,会造成很多问题,所以通常需要对用户输入进行处理和判断。处理空输入:inp=input("Pleaseenteryourname:")ifinp==""":inp=input("姓名不能为空,请重新输入:")将字符串转为数字类型:age=input("Pleaseenteryourage:")age=int(age)#将字符串转为整数ifage>18:print("你已经成年了!")else:print("你还没断奶吗?")去掉开头的空白lstrip,去掉结尾的空白rstrip,去掉两端的空白stripinp=input("Pleaseenteryourname:")inp=inp.strip()#strip的用法在字符串中有说明datatypeprint(inp)判断输入的字符类型,int()函数用于将字符串转换为整数。这种方法很危险。看下面的例子:s="123"a=int(s)print(a)s="something"a=int(s)对于像“123”和“283242”这样的字符串,转换没问题,但是对于字符串包含字符和特殊字符,没办法转换,会弹出异常错误。所以在使用int函数之前,首先要对输入进行判断。修改上面的例子:age=input("Pleaseenteryourage:")ifage.isdigit():#使用isdigit函数判断输入是否全部为数字格式age=int(age)#将字符串转换成数字integerprint("Yourageis:",age)else:print("输入不合法!")input函数有时可以巧妙地用来阻塞或暂停程序print("程序前面的部分已经被executed...")input("PleasepressEntertocontinue...")#程序会在这里暂停,等待你的回车print("Continuetoexecutethelatterpartoftheprogram...")input此时函数不保存输入,只是用来暂停程序动作。3.打印输入函数打印函数用于格式化和显示标准输出上的内容,主要指屏幕显示。print可以接受多个字符串、字符串类型的变量或可打印对象。每个字符串用逗号“,”隔开,连接成一串输出。print会依次打印每一个字符串,同时每遇到一个逗号“,”就输出一个空格。a="iam"b="student"print(a,"a",b)#自动用空格分隔print(a+"a"+b)对于print(a+"a"+b)这样的语句,其实它就是先计算出a+"a"+b的值,然后通过print打印出来。print()会自动执行内部语句并输出想要的结果。我们再看一个例子:>>>a=10>>>b=2>>>print(sum((a,a*b)))#先求a*b,然后求和,然后打印30#看结果看一下print函数的原型:print(self,*args,sep='',end='\n',file=None)sep参数:分隔符号,默认为空格;end参数:打印后的结束方式,默认为换行符\n。如果设置end='',就可以让print在一行中连续打印,不换行。通过使用打印参数可以实现灵活的打印控制。>>>a="iam">>>b="student">>>print(a,"a",b,sep="*")iam*a*student#输出结果4.在After中打印格式化输出Python2.6,有两种格式化输出的方法。一种是类似C语言中printf的%百分号格式化输出,这也是Python最基本最常用的格式化输出方式。另一种是str.format()的方式。这里重点介绍传统的带%百分号的格式化输出方式。以下面的语句为例:print("我叫%s,今年是%d岁!"%('小明',10))首先构造一个字符串"我叫%s,我是%今年d岁!”,将需要替换为其他变量或值的部分替换为%百分号字符和数据类型代码,如%s、%d。然后在字符串后使用%添加相同数量的变量或值的元组。即前面有多少个%符号,后面必须提供多少个参数值,每个参数值用逗号隔开,所有参数都用括号括起来。每个参数和前面的%一一对应,数据类型也必须合法对应。这是基本的用法,更多格式见下图,掌握格式的匹配方法。格式化符号:(图片来自百度,侵权请联系删除)格式化运算符辅助命令:(图片来自百度,侵权请联系删除)经典案例:s="iam%s"%"jack"print(s)s="iam%sage%d"%("jack",18)print(s)s="iam%(name)sage%(age)d"%{"name":"jack","age":18}print(s)s="percent%.2f"%99.97623print(s)s="iam%(pp).2f"%{"pp":123.425556,}print(s)s="iam%.2f%%"%123.425556print(s)需要注意的是,如果要在print中打印一个%百分号本身,那么需要使用%%,两个百分号转义一个百分号,即print("%%”)。如果你不喜欢print复杂的格式控制,又没有审美要求,那么一路用%s作为占位符,一路傻傻的,不失为一种省事的方式。例如:print("%s%s%s%s%s"%(a,b,c,d,e))5.总结本文基于Python基础,介绍几种常用的输入输出方式,通过每个项目的实际操作,可以更好的了解输入输出语句的用法。对项目实践中遇到的困难和需要注意的点进行了详细的讲解。希望能帮助读者更好的学习Python。我是Go高级用户。觉得还不错的话记得给个赞哦。本文转载自微信公众号《Go语言进阶学习》,可通过以下二维码关注。转载本文请联系Go语言进阶学习公众号。