鱼C论坛

 找回密码
 立即注册
查看: 2038|回复: 5

[已解决]第二次课后作业bug

[复制链接]
发表于 2021-5-21 16:28:07 | 显示全部楼层 |阅读模式

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

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

x
课后题是:
请编写代码:使用 input() 函数让用户录入姓名,然后将名字保存到变量(name)中,最后使用 print() 函数打印出来。

答案如下:
>>> name = input("请输入您的名字:")
请输入您的名字:明珠
>>> print("你好", name, sep=",", end="!")
你好,明珠!

那位大神解释一下这句
print("你好", name, sep=",", end="!")
是怎么回事,怎么还有sep,end呢
最佳答案
2021-5-21 16:43:06
本帖最后由 Peteryo01223 于 2021-5-21 16:52 编辑
>>> help(print)
Help on built-in function print in module builtins:

print(...)
    print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
    
    Prints the values to a stream, or to sys.stdout by default.
    Optional keyword arguments:
    file:  a file-like object (stream); defaults to the current sys.stdout.
    sep:   string inserted between values, default a space.
    end:   string appended after the last value, default a newline.
    flush: whether to forcibly flush the stream.
Python 里面有解释 print 这个函数,如上。这是官方解释,最权威。

Print() 是个 BIF,内置函数,开发者提前写好的,方便我们大家直接调用。本质上,它也是一个函数啦,所以你看到的 sep 和 end,都是这个函数中,由开发者当时自己设定几个的参数,一般是隐藏的,看不到,但一直存在。其中:

  • sep,即:seperation 分隔,默认值是空格。你可以试试看,给 sep 一个 *,你就能看到,str 之间,由* 分割开了。
  • end,即:end 结尾,默认值是换一行。你试试,给 end 一个 \n\n\n,那么末尾就会回车三次,也就是换行三次。


这些参数都有默认值,平时你不写,python 就会按照默认值处理。
>>> print('1','2','3')
1 2 3
>>> print('1','2','3' , sep='*')
1*2*3
>>> print('1','2','3' , sep='*', end = '\n\n\n')
1*2*3


>>> 

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

使用道具 举报

发表于 2021-5-21 16:40:28 | 显示全部楼层
sep end 是 print的两个参数
sep表示多个print对象的分隔符,默认为空格 ,
end表示本行print结尾最后所跟的字符,默认为换行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-21 16:41:00 | 显示全部楼层
sep参数是用来设定print()中的多个对象之间的连接符号是什么,默认是空格,而print中多个对象之间是通过逗号,来分隔。
end参数用来设定print输出的内容以什么结尾,默认是‘\n’,这就是为什么多个print()函数输出的内容会分别换行

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

使用道具 举报

发表于 2021-5-21 16:43:06 | 显示全部楼层    本楼为最佳答案   
本帖最后由 Peteryo01223 于 2021-5-21 16:52 编辑
>>> help(print)
Help on built-in function print in module builtins:

print(...)
    print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
    
    Prints the values to a stream, or to sys.stdout by default.
    Optional keyword arguments:
    file:  a file-like object (stream); defaults to the current sys.stdout.
    sep:   string inserted between values, default a space.
    end:   string appended after the last value, default a newline.
    flush: whether to forcibly flush the stream.
Python 里面有解释 print 这个函数,如上。这是官方解释,最权威。

Print() 是个 BIF,内置函数,开发者提前写好的,方便我们大家直接调用。本质上,它也是一个函数啦,所以你看到的 sep 和 end,都是这个函数中,由开发者当时自己设定几个的参数,一般是隐藏的,看不到,但一直存在。其中:

  • sep,即:seperation 分隔,默认值是空格。你可以试试看,给 sep 一个 *,你就能看到,str 之间,由* 分割开了。
  • end,即:end 结尾,默认值是换一行。你试试,给 end 一个 \n\n\n,那么末尾就会回车三次,也就是换行三次。


这些参数都有默认值,平时你不写,python 就会按照默认值处理。
>>> print('1','2','3')
1 2 3
>>> print('1','2','3' , sep='*')
1*2*3
>>> print('1','2','3' , sep='*', end = '\n\n\n')
1*2*3


>>> 

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

使用道具 举报

发表于 2021-5-21 16:46:00 | 显示全部楼层

sep、end 这些都是属于 print 函数的参数,而平时不需要你赋值是因为它们都有默认值

例如 sep 的默认值是一个空格,其主要用于各需要打印的变量之间的间隔字符

比如 print('A','B',sep='!!!') 此时打印出来的结果会是: A!!!B

就是将 A 和 B 连接,并在它们之间插入!!! 之后打印出来。

而 end 参数的功能是在 print 函数打印结束后,追加打印 end 参数,默认值为 \n 即换行符

这也是为什么 print 函数会自动换行的原因,比如你这里将 end 赋值为 ! 感叹号,此时 print 追加打印的就不是换行符,而是 感叹号了~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-21 17:24:48 | 显示全部楼层
Peteryo01223 发表于 2021-5-21 16:43
Python 里面有解释 print 这个函数,如上。这是官方解释,最权威。

Print() 是个 BIF,内置函数,开发 ...

感谢大佬,讲的很透彻
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-15 17:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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