虽然一段代码可以完成既定的任务,大大提升了效率;但有时因为需要,我们的代码要帮忙处理一定的输入数据,并将处理结果打印出来;这时就要用到今天要讲的print()函数与input()函数了;
1.print()函数
print()函数主要用于打印输出数据,在前面的文章里经常会看到,它其实也是最常见的一个函数;
print()函数的语法规则是:
print(objects,sep = ‘ ’,end = '\n',file = sys.stdout)
objects:需要输出的对象,可以是多个,但需要使用“,”分隔;
sep:间隔符,用来分隔多个对象,默认是一个空格,但是可以赋予其他字符串,若为默认值则可以省略不写;
end:结尾符,用来设定以什么结尾,默认是换行符“\n”,但也可以赋予其他字符串,若为默认值则可以省略不写;
file:要写入的文件对象,如果不写入文件则可以省略不写;
这么看起来好像很复杂,毕竟我们经常接触和使用的print()函数很少有这么使用的;我们常见的几种使用方式为:
①print("wangchangchun")
②print("%s,%s" % (x,y))
③print("This {0} is {1}".format("word","Cool"))
下面来尝试练习一下新见到的参数objects、sep和end(file以后写到文件相关的时候再尝试)
objects:
多对象打印输出其实还是很好理解的,看下面的例子,显而易见:
只要记住,打印输出多个变量的时候,变量间使用“,”逗号隔开即可;
sep:
上面的例子其实已经可以看到,A、B、C三个变量一起打印时,每个变量之间使用了“空格”分隔,这里就是语法规则中提到的默认值省略不写,等价于print(A,B,C,sep
= '\n'),现在我们不使用默认值,我们将sep换成“*”来尝试一下:
可以看到“空格”已经被“*”替代的效果,也可以理解sep的用法了,并且这里需要说明注意的是:
sep必须是string(字符串)
否则会提示错误:
end:
它主要表现为一个print()函数执行完以什么来结尾,结尾符在只执行一个print()函数时效果并不明显,我们来使用循环执行多次print()函数对比一下,先是默认值end
= “\n”,省略不写:
那现在我们把默认值end = '\n'换成end = '~'来尝试一下:
end使用新的赋值后,每执行完成一次print()函数,都会以“~”来结尾;并且跟sep一样:
end必须是string(字符串)
否则也会提示错误:
TypeError: end must be None or a string, not int
print()函数也可以直接打印出整个数据结构,类似于列表、元组、字典等;
2.print()函数的格式化输出
上面其实举了一个常见例的例子就是格式化字符串输出:
print("%s,%s" % (x,y))
并且可以格式化输出不单单只有字符串,还有很多其他类型,可以根据实际需要选择使用:
这里主要说明下格式化输出浮点数字(float),因为浮点数字可以指定精度和字段宽度,所以特别讲解下:
挑选一个无限不循环小数1/7,赋值给number,并使用格式化浮点数字输出,我们可以发现输出了6位小数,如下图
那么因为某些要求,我们想输出指定的小数位数怎么办呢?这里就引入一个格式化输出浮点数字新用法:
%.xf:x为需要保留浮点型的位数
接着上面的例子演示一下,我们需要保留3位小数和20位小数的情况:
有时候我们可能需要一定宽度的字段,比如宽度为10的字段,那么上面保留三位小数时候的0.143就不符合要求,此时我们再拓展下新用法:
%A.xf:x为需要保留浮点型的位数,A为字段宽度
来展示下需要保留3为小数,宽度为10的浮点型字段
虽然还是显示的0.143,但是可以发现往后移位了,如果需要填充空白就需要在参数A前设置,比如我们使用0来填充空白
此时字段长度设置的效果更佳明显了!
我们也可以使用左对齐(很明显默认输出的右对齐),在参数A前增加“-”即可
我们也可以将要保留的精度与值放在一个元组内,并使用符号“*”来读取元组内的宽度或者精度,不设置则可以省略不写:
print("%*.*f" % (breadth,precision,number))
只设置精度:
宽度和精度同时设置:
上面的例子都只是在print()函数的""内只是用格式化符号输出,其实也可以跟文本信息一起使用,方法如下:
(这里要说明一下:Python语言更新换代,在Python2和Python3有着较多的区别,print就是其中一个,在Python2中print只是一个方法,但是在Python3中print()是一个函数,功能基本一致,但使用方法有所不同)
3.input()函数
上面讲完了打印输出用的print()函数,现在来看一下输入数据要用的input()函数,跟print()相比,input()函数相对简单了很多,主要任务就是接收用户输入的数据并返回赋值给指定的变量,也不需要任何参数;
它的语法规则是:
input([prompt])
虽然input()函数不需要参数,但是在提示用户输入数据时,最好还是可以在input()函数的括号内填入相关的提示信息prompt,比如
name = input("Please input your name:\n")
input()只负责接受用户输入的数据并返回,但是不负责保存,所以我们需要将input()函数的返回值赋值给其他变量以供后续代码使用;
并且要说明的是,input()函数返回的数据类型是字符串类型,也就是说即便我们输入了数字,但Python中的input()函数也会返回为字符串类型,我们来验证一下:
所以,如果我们需要除字符串类型以外的其他类型,就必须使用强制类型转换将input()函数的返回值转换为我们想要的数据类型;
(这里还要再说明一下:Python语言更新换代,在Python2和Python3有着较多的区别,input()函数也是其中一个,在Python2中,负责输入的函数有两个raw_input()返回字符串类型,input()返回数字整型;但是在Python3中将两个函数合并为input()函数,并且只返回字符串类型)
好了,关于print()函数和input()函数暂时就先写到这,有部分没有写进去,以后会根据后续的学习以及实际功能的应用进行补充;