鱼C论坛

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

[已解决]这个代码有点看不懂

[复制链接]
发表于 2023-6-8 15:39:14 | 显示全部楼层 |阅读模式

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

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

x
>>> name = input("请输入您的名字:")
请输入您的名字:小甲鱼
>>> print("你好", name, sep=",", end="!")
你好,小甲鱼!



请问name后面为什么要加空格和换行?
最佳答案
2023-6-8 15:57:04
这段代码主要有两部分构成。

1.  name = input("请输入您的名字:")  这一行是获取用户输入,并将用户输入的内容赋值给  name  变量。

2.  print("你好", name, sep=",", end="!")  这一行则是输出一个问候语句。 print  函数的参数中, "你好"  和  name  是要输出的内容, sep=","  定义了两个输出内容之间的分隔符为中文的逗号, end="!"  则定义了输出结束后的字符为一个感叹号。

在你的问题中,你提到的 "name后面为什么要加空格和换行",实际上这并不是因为代码中对  name  的处理,而是因为  print  函数在输出内容时,如果有多个内容项,它们之间默认会用空格作为分隔符,并且默认情况下,在输出内容结束后会加一个换行符。在这个代码中, sep  参数的设定改变了内容项之间的分隔符,而  end  参数的设定改变了输出结束后的字符。

所以你看到的 "空格和换行" 实际上并不在  name  后面,它们只是  print  函数默认的输出行为。在这个代码中,输出的结果 "你好,小甲鱼!" 并没有空格和换行。如果你希望在  name  后面加空格和换行,你需要更改  print  函数的参数,例如  print("你好", name + ' ', end="\n!") ,这样就可以在  name  后面加上一个空格,并且在输出结束后加上一个换行符和一个感叹号。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-6-8 15:57:04 | 显示全部楼层    本楼为最佳答案   
这段代码主要有两部分构成。

1.  name = input("请输入您的名字:")  这一行是获取用户输入,并将用户输入的内容赋值给  name  变量。

2.  print("你好", name, sep=",", end="!")  这一行则是输出一个问候语句。 print  函数的参数中, "你好"  和  name  是要输出的内容, sep=","  定义了两个输出内容之间的分隔符为中文的逗号, end="!"  则定义了输出结束后的字符为一个感叹号。

在你的问题中,你提到的 "name后面为什么要加空格和换行",实际上这并不是因为代码中对  name  的处理,而是因为  print  函数在输出内容时,如果有多个内容项,它们之间默认会用空格作为分隔符,并且默认情况下,在输出内容结束后会加一个换行符。在这个代码中, sep  参数的设定改变了内容项之间的分隔符,而  end  参数的设定改变了输出结束后的字符。

所以你看到的 "空格和换行" 实际上并不在  name  后面,它们只是  print  函数默认的输出行为。在这个代码中,输出的结果 "你好,小甲鱼!" 并没有空格和换行。如果你希望在  name  后面加空格和换行,你需要更改  print  函数的参数,例如  print("你好", name + ' ', end="\n!") ,这样就可以在  name  后面加上一个空格,并且在输出结束后加上一个换行符和一个感叹号。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-8 18:10:05 | 显示全部楼层
[b]输出语句 "你好,小甲鱼!" 实际上是由两部分内容组成的:第一部分是固定的字符串 "你好,",第二部分是变量 name 对应的值 "小甲鱼"。

为了让输出看起来更加美观,我们通过设置 `sep=","` 让第一部分和第二部分之间用中文逗号隔开,避免了出现没有任何符号的紧贴形式。同时,在第二部分后面添加了 "!" 变成了一个¥¥的句子,所以我们设置 `end="!"` 让其末尾以中文惊叹号结尾。

在这个过程中,因为 python 的 print 函数默认会使用换行符(\n)来结束一次输出,如果不用 end 参数进行改动,则会自动换行。而 sep 是指定多项内容连接时采用的分隔符,默认为 " ",即空格,例如当输出 `print(a, b)` 时实际等价于 `print(a, b, sep=" ")`,因此设置为 "," 达到中文逗号的效果。

而格式化输出所达到的效果,正如理路清晰教材中所提到的: 分隔字符的主要作用就是为了使输出更易读,从而方便查看和维护代码,并减少人类解读出错率,增强程序可读性和可维护性。

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

使用道具 举报

 楼主| 发表于 2023-6-9 15:25:42 | 显示全部楼层
isdkz 发表于 2023-6-8 15:57
这段代码主要有两部分构成。

1.  name = input("请输入您的名字:")  这一行是获取用户输入,并将用户输 ...

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

使用道具 举报

 楼主| 发表于 2023-6-9 15:26:18 | 显示全部楼层
sfqxx 发表于 2023-6-8 18:10
输出语句 "你好,小甲鱼!" 实际上是由两部分内容组成的:第一部分是固定的字符串 "你好,",第二部分是变 ...

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

使用道具 举报

发表于 2023-6-9 17:47:19 From FishC Mobile | 显示全部楼层
肖公子 发表于 2023-6-9 15:26
谢谢解答

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

使用道具 举报

发表于 2023-6-10 17:08:59 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-10 17:34:43 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 18:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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