鱼C论坛

 找回密码
 立即注册
查看: 2757|回复: 7

[已解决]关于print()返回的结果

[复制链接]
发表于 2022-12-5 12:43:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
>>> print()------1

>>> print('')-----2

>>> print(' ')----3

>>> print(end = '')-----4
>>> print('', end = '')----5
>>> print(' ', end = '')----6

>>> print(end = ' ')----7

>>> print('', end = ' ')----8

>>> print(' ', end = ' ')----9
  
>>>


问题一:不理解:1、4、6、7、8、9,

问题二:尤其6、7、8、9,end = ''参数不是使用空格代替换行吗?为什么返回结果有换行?
最佳答案
2022-12-6 11:03:11
本帖最后由 tommyyu 于 2022-12-6 11:08 编辑

我是这样理解的:

如果按理说,在IDLE中执行print('123', end = '')的结果应该是这样的:
  1. >>> print('123', end = '')
  2. 123>>>
复制代码
这里下一行的>>> 应该直接接在123的后面,但是这样是不符合Python的格式要求的,所以要把这个>>> 放在下一行

  1. >>> print('123')
  2. 123
  3. >>>
复制代码
中,打印完了123,Python就自然而然地打印了换行,然后在下一行打印了>>>

而4和5没有换行可能是因为Python在打印空字符串时,将不会打印任何内容,此时就不需要让这个空字符串独占一行,也就是说,>>> 接在 '' 后面是没有任何格式问题的,所以就没有换行
(以上仅是个人见解,可能会有疏漏)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-12-5 12:57:43 | 显示全部楼层
你真的能确定 6、7、8、9 有换行?
那好,请试试这个:
  1. print(' ', end = '') ; print(end = ' ') ; print('', end = ' ') ; print(' ', end = ' ') ; print('ABC') ----10
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-5 13:02:59 | 显示全部楼层
本帖最后由 香蕉那个不拿拿 于 2022-12-5 13:09 编辑

emm,这个主要是看end参数表示什么了
end -- 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符串。如下图

                               
登录/注册后可看大图


                               
登录/注册后可看大图

也就是说,我要打印”1+1=2“
再打印”2+2=4“
是print(”1+1=2“)
print(”2+2=4“)
输出的是
1+1=2
2+2=4
看到没有,他换行了
但如果我这么写
print(”1+1=2“,end=”254858564585“)
print(”2+2=4“)
输出结果为
1+1=225484845856456482+2=4
看到吗,他没有换行
所以说,不设置时end=/n
是可以自动换行的
不过,
你设置的是end=“ ”
所以说,你输出print(”1+1=2“,end=“ ”)
要再print(“ ”)
才能再换行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-5 15:09:06 | 显示全部楼层
本帖最后由 lzb1001 于 2022-12-5 18:11 编辑
jackz007 发表于 2022-12-5 12:57
你真的能确定 6、7、8、9 有换行?
那好,请试试这个:


1、我是在IDLE上测试后,复制返回的结果的啊
2、为什么:
>>> print(' ', end = '') ; print(end = ' ') ; print('', end = ' ') ; print(' ', end = ' ') ; print('ABC')
     ABC
>>>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-5 21:06:12 | 显示全部楼层

print 函数没有返回值,又或者说 print 返回值为 None,Python 中没有 return 的默认都返回 None

print 函数中有一个参数  end ,end 的默认值是 \n 换行符,而这个参数在打印完所有 print 传入的参数时,追加打印 end 参数,这也是为什么 print 函数会自动换行的原因

而当你设置 end = "" 空字符串时,那么自然什么都不会打印,当你对 end 参数传入值时,自然会将原先默认值给覆盖了,也就没有换行的效果

你打印一个空格,也不叫换行呀,因为 >>> 控制台是输入代码的,独占一行,和程序运行无关,你可能是以为不换行就是在代码后续接上打印字符串了,4 和 5 这种情况叫没有打印内容
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-6 10:48:49 | 显示全部楼层
Twilight6 发表于 2022-12-5 21:06
print 函数没有返回值,又或者说 print 返回值为 None,Python 中没有 return 的默认都返回 None

prin ...

5没有输出、6输出空行、8输出空行,看得有点晕
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-6 11:03:11 | 显示全部楼层    本楼为最佳答案   
本帖最后由 tommyyu 于 2022-12-6 11:08 编辑

我是这样理解的:

如果按理说,在IDLE中执行print('123', end = '')的结果应该是这样的:
  1. >>> print('123', end = '')
  2. 123>>>
复制代码
这里下一行的>>> 应该直接接在123的后面,但是这样是不符合Python的格式要求的,所以要把这个>>> 放在下一行

  1. >>> print('123')
  2. 123
  3. >>>
复制代码
中,打印完了123,Python就自然而然地打印了换行,然后在下一行打印了>>>

而4和5没有换行可能是因为Python在打印空字符串时,将不会打印任何内容,此时就不需要让这个空字符串独占一行,也就是说,>>> 接在 '' 后面是没有任何格式问题的,所以就没有换行
(以上仅是个人见解,可能会有疏漏)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-7 09:45:40 | 显示全部楼层
本帖最后由 lzb1001 于 2022-12-7 09:48 编辑

分9种情况在.py文件中运行后结果如下:

1、print()执行结果:# 空行
========================== RESTART: D:/work/print函数.py =========================

>>>
2、print('')执行结果:# 空行
========================== RESTART: D:/work/print函数.py =========================

>>>
3、print(' ')执行结果:# 空格+换行
========================== RESTART: D:/work/print函数.py =========================

>>>
4、print(end = '')执行结果:# 既无空格也无空行
========================== RESTART: D:/work/print函数.py =========================
>>>
5、print('', end = '')执行结果:# 既无空格也无空行
========================== RESTART: D:/work/print函数.py =========================
>>>
6、print(' ', end = '')执行结果:# 空格+换行
========================== RESTART: D:/work/print函数.py =========================

>>>
7、print(end = ' ')执行结果:# 空格+换行
========================== RESTART: D:/work/print函数.py =========================

>>>
8、print('', end = ' ')执行结果:# 空格+换行
========================== RESTART: D:/work/print函数.py =========================

>>>
9、print(' ', end = ' ')执行结果:# 双空格+换行
========================== RESTART: D:/work/print函数.py =========================
  
>>>

以上9种情况汇总整理对比如下表:

123.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-18 00:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表