86. print输出函数知识拓展(有练习题)

86. print输出函数知识拓展(有练习题)

1. print函数语法

print[prɪnt]:打印,输出。

【功能】

输出程序结果,默认输出到屏幕即程序终端,也可以输出到文件中。

【语法参考】

print(value, ..., sep='', end='\n', file=, flush=False)

【参数说明】

  1. value要输出的值,可以是字符串、整数、浮点数等各种类型的变量等等。

  2. ... 值列表:表示可以一次性打印多个值,值与值之间用英文逗号,分隔,打印出来的值之间默认用空格隔开。

【代码示例】

print(2,4,6,8)

【终端输出】

2 4 6 8

print函数2,4,6,8多个值之间用英文逗号,分隔,终端输出的结果默认用空格隔开。

  1. 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参数,输出的对象用斜杆:分隔。

  1. 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输出的结果是拼接在一起的。

  1. 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的相对路径

  1. flush 表示是否立刻将输出语句输出到目标对象。默认flush = False,表示输出值会保存在缓存中。当flush=True时,输出值强制写入文件。

【温馨提示】

  1. sep, end, file, flush 都必须以命名参数方式传参,否则会被当做需要输出的对象。

【以命名参数传参】

print(2023,5,15,sep="/")

【终端输出】

2023/5/15

【没有参数名会被当做要输出的对象】

print(2023,5,15,"/")

【终端输出】

2023 5 15 /
  1. 如果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

5. 总结

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
1. `print()` 函数的字符串格式化输出类型及含义如下: - `%s`:字符串类型。用于将一个对象格式化为字符串。 - `%d`:整数类型。用于将一个整数格式化为字符串。 - `%f`:浮点数类型。用于将一个浮点数格式化为字符串。 - `%c`:字符类型。用于将一个字符格式化为字符串。 - `%o`:八进制整数类型。用于将一个八进制整数格式化为字符串。 - `%x`:十六进制整数类型(小写字母)。用于将一个十六进制整数格式化为字符串,其中字母使用小写表示。 - `%X`:十六进制整数类型(大写字母)。用于将一个十六进制整数格式化为字符串,其中字母使用大写表示。 这些格式化输出类型可以在字符串中使用 `%` 运算符来进行格式化操作。 2. `print()` 函数的参数含义如下: - `value1, value2, ...`:要输出的值,可以是一个或多个参数,用逗号分隔。 - `sep=''`:分隔符,用于将多个值分隔开,默认为空字符串。 - `end='\n'`:输出结束时的字符,默认为换行符。 通过在 `print()` 函数中传入这些参数,可以控制输出的内容和格式。 3. `print()` 函数的格式化操作符辅助指令如下: - `%s`:用于字符串格式化。 - `%d`:用于整数格式化。 - `%f`:用于浮点数格式化。 - `%c`:用于字符格式化。 - `%o`:用于八进制整数格式化。 - `%x`:用于十六进制整数格式化(小写字母)。 - `%X`:用于十六进制整数格式化(大写字母)。 这些格式化操作符辅助指令可以在占位符中使用,用于指定要格式化的值的类型和格式。例如,`%s` 用于将一个对象格式化为字符串,`%d` 用于将一个整数格式化为字符串,依此类推。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值