笑星星 发表于 2022-5-10 18:28:49

为什么不能插入图标@和其他图标和空格


结果:




为什么不是
1
1 @2

Twilight6 发表于 2022-5-10 18:36:34


sep 参数是指在 一个print 参数内各个参数的分隔符,而你代码每个 print 都是独立的

你可以这样实现你的代码:

n = 6
i = 0
while i < n:
    for i in range(i + 1):
      print(i + 1, end="@")
    print()
    i += 1

isdkz 发表于 2022-5-10 18:36:40

本帖最后由 isdkz 于 2022-5-10 18:37 编辑

因为 sep 是作为 print 的多个位置参数之间的间隔,

你这里的 print 只有一个位置参数 i + 1

对你的代码修改如下:
n = 7
i = 0
while i < n:
    print(*range(1, i + 1), sep='@')
    i += 1

执行结果:

1
1@2
1@2@3
1@2@3@4
1@2@3@4@5
1@2@3@4@5@6

笑星星 发表于 2022-5-10 19:29:45

isdkz 发表于 2022-5-10 18:36
因为 sep 是作为 print 的多个位置参数之间的间隔,

你这里的 print 只有一个位置参数 i + 1


请问*range(1,e+1)就有用,range(1,e+1)就不行呢?

isdkz 发表于 2022-5-10 19:31:36

笑星星 发表于 2022-5-10 19:29
请问*range(1,e+1)就有用,range(1,e+1)就不行呢?

range(1, e+1) 还是一个位置参数呀,而且他打印的是 range对象 __str__ 的返回值,

而加个 * 会把 range 对象的元素解包成多个位置参数
页: [1]
查看完整版本: 为什么不能插入图标@和其他图标和空格