86. print输出函数知识拓展(有练习题)
文章目录
- 86. print输出函数知识拓展(有练习题)
- 1. print函数语法
- 2. 横着输出数字序列
- 3. 竖着输出数字序列
- 4. 循环输出
- 5. 总结
1. print函数语法
print[prɪnt]:打印,输出。
【功能】
输出程序结果,默认输出到屏幕即程序终端,也可以输出到文件中。
【语法参考】
print(value, ..., sep='', end='\n', file=, flush=False)
【参数说明】
-
value
要输出的值,可以是字符串、整数、浮点数等各种类型的变量等等。 -
...
值列表:表示可以一次性打印多个值,值与值之间用英文逗号,
分隔,打印出来的值之间默认用空格隔开。
【代码示例】
print(2,4,6,8)
【终端输出】
2 4 6 8
print函数2,4,6,8
多个值之间用英文逗号,
分隔,终端输出的结果默认用空格隔开。
sep
表示值与值之间的分隔符,默认是一个空格,也可以自己设置成其他的分隔符。
separated[ˈsepəreɪtɪd]:分开的。
【代码示例】
print(2,4,6,8)
【终端输出】
2 4 6 8
在不添加sep
参数的情况下,终端输出的结果默认用空格隔开。
【代码示例】
print(2,4,6,8,sep=",")
【终端输出】
2,4,6,8
修改sep参数,输出的对象用逗号,
分隔。
【代码示例】
print(2023,5,15,sep="/")
【终端输出】
2023/5/15
修改sep参数,输出的对象用斜杆/
分隔。
【代码示例】
print(21,52,10,sep=":")
【终端输出】
21:52:10
修改sep参数,输出的对象用斜杆:
分隔。
end
设定输出语句以什么结尾,默认是换行符\n
结尾,即输出后会重新起一行,也可设置成其他的分隔符,以实现不换行输出。
\n
是转义字符,作用是换行。
【代码示例】
print("安迪Python学习笔记")
print("xyz77520520")
【终端输出】
安迪Python学习笔记
xyz77520520
上述代码中没有end参数,则默认end="\n"
,即每个print语句执行完毕后都有一个换行。
所以看到的结果是安迪Python学习笔记
在第一行,xyz77520520
在第二行。
上述代码和下面的代码的含义等同。
【代码示例】
print("安迪Python学习笔记",end="\n")
print("xyz77520520",end="\n")
【终端输出】
安迪Python学习笔记
xyz77520520
【代码示例】
print("安迪Python学习笔记",end="。")
print("xyz77520520",end="。")
【终端输出】
安迪Python学习笔记。xyz77520520。
添加end="。"
,则每个print输出以句号结尾,大家发现此时没有换行效果了,输出结果在同一行。
【代码示例】
print("安迪Python学习笔记",end="/")
print("xyz77520520",end="/")
【终端输出】
安迪Python学习笔记/xyz77520520/
添加end="/"
,则每个print输出以/
结尾,输出结果有换行效果。
【代码示例】
print("安迪Python学习笔记",end="")
print("xyz77520520",end="")
【终端输出】
安迪Python学习笔记xyz77520520
end=""
表示什么都没有,没有换行,也没有任何字符分隔。
添加end=""
,则多个print输出的结果是拼接在一起的。
- file 表示要输出的目标对象,可以是文件也可以是数据流。可以设置
file=文件存储对象
即文件的路径,把内容保存到该文件中。
上面的输出都是输出到终端,我们添加file参数,可以让实现内容输出到文件中。
【代码示例】
# "目标.txt"是文件的相对路径
# "a+"以读写模式打开文件
# encoding='utf-8'文件的编码格式
f = open("目标.txt","a+",encoding='utf-8')
# 要写入的文件内容
text = "2023年的目标是新增1万个关注者!"
# 将text的内容输出到文件"目标.txt"中
print(text, file=f)
# 关闭文件
f.close
【终端输出】
<function TextIOWrapper.close()>
运行上面的代码,将在程序所在的目录下生成一个名为目标.txt
的文件。
该文件的内容为2023年的目标是新增1万个关注者!
注意程序所在的目录即为编辑器打开的文件夹所在的目录。
我vdcode编辑器打开的文件夹为安迪笔记
。
我现在编写的代码存储位置为安迪笔记\1.基础语法\86\86.py
。
我创建的文件目标.txt
应该在安迪笔记
文件夹里,而不在86
文件夹里。
相对路径里相对的是编辑器打开的文件目录,而不是当前py文件所在的目录。
如果我们想把文件生成在86
文件夹里,可以将代码修改如下:
【绝对路径】
f = open(r"D:\安迪笔记\1.基础语法\86\目标1.txt","a+",encoding='utf-8')
# 要写入的文件内容
text = "2023年的目标是新增1万个关注者!"
# 将text的内容输出到文件"目标.txt"中
print(text, file=f)
# 关闭文件
f.close
【终端输出】
<function TextIOWrapper.close()>
【相对路径】
f = open(r"\安迪笔记\1.基础语法\86\目标2.txt","a+",encoding='utf-8')
# 要写入的文件内容
text = "2023年的目标是新增1万个关注者!"
# 将text的内容输出到文件"目标.txt"中
print(text, file=f)
# 关闭文件
f.close
【终端输出】
<function TextIOWrapper.close()>
相对路径和绝对路径是一个难点,大家一定要加强练习,确保熟练掌握。
否则在后期爬虫、数据分析中会出现代码运行成功,但你找不到你爬取到的结果。
【路径相关知识可参考下面的链接】
67. Python的绝对路径
68. Python的相对路径
- flush 表示是否立刻将输出语句输出到目标对象。默认flush = False,表示输出值会保存在缓存中。当flush=True时,输出值强制写入文件。
【温馨提示】
- sep, end, file, flush 都必须以命名参数方式传参,否则会被当做需要输出的对象。
【以命名参数传参】
print(2023,5,15,sep="/")
【终端输出】
2023/5/15
【没有参数名会被当做要输出的对象】
print(2023,5,15,"/")
【终端输出】
2023 5 15 /
- 如果print函数不传递任何参数,将会输出end参数的默认值,即每个print语句输出一个空行。
【代码示例】
print("程序结束!")
【终端输出】
程序结束!
【代码示例】
print()
print()
print()
print("程序结束!")
上述2段代码的输出效果是不一样的。
第一个段代码的输出没有空行。
第二段代码的输出有3行空行存在。
(pdf里显示不出来区别)
2. 横着输出数字序列
【目标任务】
输入一个正整数n,在一行中输出从1到n,输出的数以英文逗号结尾。
【输入】
3
【输出】
1,2,3,
【方法1】
n = int(input("请输入一个正整数:"))
# 该行代码的作用是检测输入的值,可不加
print("输入的正整数n=",n,sep="")
for i in range(1, n + 1):
print(i, end=',')
【终端输出】
输入的正整数n=3
1,2,3,
【思路解析】
依次输出,我们首先应该想到的利用for循环。
1到n的输出,我们通常用range函数实现。
【range函数的语法】
range(开始字符,结束字符,步长)
题目要求从1开始,那么开始字符应该为1
。
题目要求到n结束,那么结束字符应该为n+1
。
因为range函数的特征是含前不含后,即会输出1,不会输出n+1
。
题目要求用逗号分隔,因此print函数中增加一个参数end=","
。
【有sep=""的输出效果】
n = int(input("请输入一个正整数:"))
# 该行代码的作用是检测输入的值,可不加
print("输入的正整数n=",n,sep="")
【终端输出】
输入的正整数n=3
【没有有sep=""的输出效果】
n = int(input("请输入一个正整数:"))
# 该行代码的作用是检测输入的值,可不加
print("输入的正整数n=", n)
【终端输出】
输入的正整数n= 3
【输出区别在于等于号和数字3之间是否空格】
输入的正整数n=3
输入的正整数n= 3
【方法2】
# 用函数实现
def cal(n):
for i in range(1, n + 1):
print(i, end=',')
if __name__ == '__main__':
n = int(input("请输入一个正整数:"))
cal(n)
【终端输出】
1,2,3,
【代码解析】
def cal(n):
def 自定义函数关键字。
自定义了一个函数cal,参数n。
for i in range(1, n + 1):
print(i, end=',')
自定义函数的函数体。
函数体要实现的功能是range函数生成一个序列,for循环遍历该序列,依次输出序列中的数,每个数之间用英文逗号结尾。
if __name__ == '__main__':
if条件判断语句,判断是否在主程序中运行,这里可以不加的。
n = int(input("请输入一个正整数:"))
注意input函数得到的是字符串变量,要用int函数将字符串数据转换为整数类型数据。
【函数的调用语法】
函数名(参数)
cal(n)
调用我们定义的函数。
3. 竖着输出数字序列
【目标任务】
Python中的字符串可以按单个字符进行索引,第一个字符序号为0,正向递增,编写一个程序,用户输入一个字符串,按每行一个字符的形式进行输出。
【输入】
python
【输出】
p
y
t
h
o
n
s = input("请输入一个字符串:") # 输入一个字符串
# 该行代码的作用是检测输入的值,可不加
print("输入的字符串s=",s,sep="")
for i in s: # 对字符串中的字符进行遍历
print(i) # 逐个输出字符,每个字符以换行符结束
【终端输出】
输入的字符串s=python
p
y
t
h
o
n
4. 循环输出
输入一个整数 n,输出所有小于 n 的非负整数 i 的平方( 0 <= i < n )。
【输入】
4
【输出】
0
1
4
9
【题目分析】
n=4
输出所有小于n的非负整数i
,意思就是0 <= i < 4 。
i
可以取的值为0,1,2,3。
提取主谓宾,题目最终的要求就是输出i的平方。
【方法1】
n = int(input("请输入一个正整数n:"))
print("输入的整数n=",n,sep="")
for i in range(n): # 将i从0遍历到n
print(i * i) # 输出i的平方
【终端输出】
输入的整数n=4
0
1
4
9
【方法2】
square[skweə]:平方,二次幂。
# 用函数实现
def squar(n):
for i in range(n):
print(i * i)
if __name__ == '__main__':
n = int(input("请输入一个正整数:"))
print("输入的整数n=",n,sep="")
squar(n)
【终端输出】
输入的整数n=4
0
1
4
9