【问题标题】:How to print variable number of elements using sep and end?如何使用 sep 和 end 打印可变数量的元素?
【发布时间】:2015-04-16 06:22:09
【问题描述】:

我一直在尝试使用sep='' 来分隔彼此之间的数字,但除非我使用end="",否则它们永远不会分开。 但是,当我将sep=''end="" 切换时,它可以正常工作。 那么,我做错了什么? 另外,如何用"+" 符号分隔中间的数字而不让它出现在末尾?

谢谢!

#Counter
numcounter=0
#Get starting integer from user

s_num=int(input("Please enter a valid starting integer number: "))

#Get ending integer from user

e_num=int(input("Please enter a valid ending integer number: "))

#For loop

for numbers in range (s_num,e_num+1):
    numcounter+=numbers
    print(numbers, sep='')

这是输出:

Python 3.4.1 (v3.4.1:c0e311e010fc, May 18 2014, 10:38:22) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>> 
Please enter a valid starting integer number: 1
Please enter a valid ending integer number: 5
1
2
3
4
5

【问题讨论】:

  • 你能展示一个示例输入和预期输出吗?
  • 刚刚编辑并发布了输出!

标签: python loops python-3.x for-loop formatting


【解决方案1】:

您可以使用字符串连接功能将列表中的项目与一些字符串连接起来,这里是示例

a = [1,2,3,4]
'+'.join( map(str,a))
<<< '1+2+3+4'

所以你的情况应该是

print( ' '.join(map(str,numbers)) )

【讨论】:

  • 从技术上讲,我还没有“学会”,所以我不能使用它。我知道这可以通过使用 sep= 和 end= 来完成,但我不知道如何正确使用它们。
  • 不管用,给TypeError: sequence item 0: expected str instance, int found。您需要先将数字转换为字符串,例如print( ' '.join(map(str, numbers) ) )
  • 对不起,只是缺少将整数转换为字符串
【解决方案2】:

如果您查看print-函数的文档。它需要一个变量数字来打印出来,由给定的sep 分隔并以end 结尾。所以您可以简单地使用*syntax 将您的序列传递给print。简单地说:

>>> print(*range(1,5))
1 2 3 4
>>> print(*range(1,5), sep='+')
1+2+3+4
>>> print(*range(1,5), sep='+', end='=' + str(sum(range(1,5))))
1+2+3+4=10

【讨论】:

    【解决方案3】:

    您在 for 循环中使用 numbers。即使变量名是复数,它一次也只能得到一个值。即,如果s_num==1e_num==2,for 循环将展开如下:

    numbers=1
    print(1, sep='')
    numbers=2
    print(2, sep='')
    

    如您所见,numbers 每次通过 for 循环时都会从范围中获取一个值,而不是整个范围。 sep 用于将要打印的多个值从传递给打印函数的参数变量列表中分离出来。由于在每个打印语句中只打印出一个值,因此没有什么可分离的,因此设置 sep 什么都不做。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-22
      • 1970-01-01
      • 2021-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多