先说说第1课作业的答案。
1、Python编写的源程序扩展名为( A)。
A. py B. cpp C. doc D. mp4
2、阅读程序写结果。
print("1+1")
图2.1
第1题选A,这个没问题,可是第2题,有初学者掉“坑”里了,如图2.1所示,这就说明对于print打印输出函数不理解,正确答案应该就是显示:1+1,所以第2课,我们重点来了解print()函数。
一、print语法格式
打开Python的IDLE,输入print(,就会显示图2.2中黄底黑字的提示内容,这个内容就是print() 函数的详细语法格式(注:这个方法可以推而广之,所有函数都会有这样的提示,初学者一定不要忽略,每个参数都要去了解,并多编写几个程序测试效果)。
图2.2
print() 函数的详细语法格式如下:
print (value,...,sep='',end='\n',file=sys.stdout,flush=False)
参数
value-- 表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。sep -- 用来间隔多个对象,默认值是一个空格。end -- 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符串。file -- 要写入的文件对象。flush -- 输出是否被缓存通常决定于 file,但如果 flush 关键字参数为 True,流会被强制刷新。以上所有参数如果选择默认值,可以不用输入。
那接下来我们结合实例,一个个参数来理解,为了方便快捷看到效果,在没有特别声明的情况下,下文中所有示例均是在Python IDLE的Shell中运行,如图2.3右图所示(左图是代码编辑器Editor)。
“#”,代表单行注释,程序运行时不会执行,从井号“#”开始,直到这行结束为止的所有内容都是注释。Python 解释器遇到“#”时,会忽略它后面的整行内容,仅供程序员阅读,提高程序的可读性。
图2.3
二、实例演示
1、1个print输出1个值或变量
>>>print(1) # 输出数字1>>> print("你好,我是大陈") # 输出字符串你好,我是大陈>>> print("2+3") # 输出字符串2+3>>>a=1>>>print(a)# 输出变量1>>>a=3>>>b=20>>>print(a+b)#输出2个变量相加的和23
2、1个print输出多个变量或值
print()函数要使用一个print输出多个变量或值时,请使用英文逗号“,”隔开,不同内容之间会使用空格隔开。不管是新手还是大师,缺少逗号或使用中文逗号是最容易犯的错误。
>>> print("abc","def") #输出两个字符,默认空格隔开abc def>>> print("abc""def")#输出两个字符,没有隔开abcdef>>>a=10>>>b=12>>>c=a*b>>>print(a,b,c)#输出3个变量,默认空格隔开10 12 120
3、sep决定用什么间隔符来分隔多个值或变量
在默认情况下,print()函数输出多个变量或值时,总会用空格隔开,这是因为print()函数的sep参数的默认值是' ',这个' '就代表空格。如果希望print()函数输出多个值或变量使用不同的分隔符,重设sep参数即可。
>>>a=10>>>b=12>>>c=a*b>>>print(a,b,c,sep=',')#输出3个变量,输出时用逗号隔开10,12,120>>> print("伯牙","善","鼓琴",sep="/") # 设置间隔符伯牙/善/鼓琴
4、end参数决定换行/不换行输出
在默认情况下,print() 函数输出之后总会换行,这是因为 print() 函数的 end 参数的默认值是“\n”,这个“\n”就代表了换行。如果希望 print() 函数输出之后不会换行,则重设 end 参数即可。
>>>print(1);print(2)#先用这个程序检验一下,可以看出print默认结尾是添加了换行符输出的12>>>print(1,end="");print(2)#使用end=""修改结尾输出的字符,当前是结尾不输出任何字符,也不换行。12>>>print(1,end=",");print(2)#使用end=""修改结尾输出的字符,当前是用逗号隔开,不换行。1,2>>>print(1,end=" ");print(2)#使用end=" "修改结尾输出的字符,当前是用空格隔开,不换行。1 2
5、file参数决定输出至屏幕/文件
file 参数指定 print() 函数的输出目标,file 参数的默认值为 sys.stdout,该默认值代表了系统标准输出,也就是屏幕,因此 print() 函数默认输出到屏幕。实际上,完全可以通过改变该参数让 print() 函数输出到特定文件中。
>>>print("伯牙善鼓琴,钟子期善听")#输出至屏幕伯牙善鼓琴,钟子期善听>>>f = open("demo.txt","w")#打开文件以便写入>>>print('伯牙善鼓琴',file=f)>>>print('钟子期善听',file=f)>>>f.close()
第2部分程序中,open() 函数用于打开 demo.txt 文件,2 个 print() 函数会将这 2 段古诗字符串依次写入此文件,最后调用 close() 函数关闭demo.txt文件。
图2.4
如图2.4所示,在Python的安装目录下,程序会新建一个demo.txt文件,该文件内容就是print('伯牙善鼓琴',file=f)、print('钟子期善听',file=f)写入的两句古诗(注意有换行):伯牙善鼓琴,钟子期善听,也就是程序运行时,屏幕上并不会显示任何内容,所有内容都输出到了demo.txt中了。
图2.5
图2.5是程序运行时的对比图,可以看出,修改print()函数的file参数,可以决定输出内容是在屏幕上,还是直接写到文件里。
6、flush决定流是否会被强制刷新
flush 参数用于控制输出缓存,该参数一般保持为 False 即可,这样可以获得较好的性能。但是使用得好,也能实现意想不到的效果,以图2.6程序为例(请使用图2.3左边的编程器Editor),这是一个实现动态的Loading...加载效果的程序。
图2.6
源代码如下:
import time#调用时间库文件print("Loading",end = "")#不换行输出for i in range(20):#循环20次执行下面的两行代码print(".",end = '',flush = True)#缓存刷新输出time.sleep(0.5)#推迟0.5秒执行下一个循环
程序运行结果如下:
图2.7
综上所述,print()函数是一个输出函数,可以将你要显示的值或变量输出至屏幕或文件,当然,还有一些初学者暂时用不上的列表、元组、字典等,也是可以通过print()函数输出的,这个留给你自己去试验。
>>> L = [5,7,'c'] # 列表>>> print(L)[5, 7, 'c']>>> t = (5,7,'c') # 元组>>> print(t)(5, 7, 'c')>>> d = {'c':1, 'd':2} # 字典>>> print(d){'c': 1, 'd': 2}
另外,在输出时,Python还支持格式化输出,由于不是很常用,相关命令请见图2.8,具体操作请搜索“python print 格式化”,即可看到相关内容,大陈在这就不再赘述了。
图2.8
图2.9
以上文章内容参考了C语言中文网以及RUNOOB网,感谢他们。我是研究Python大班教学的大陈,欢迎你和我一起研究Python教学。关注我并私信我,发送“python”,即可得到我的所有教学内容。