【发布时间】:2016-07-26 16:33:51
【问题描述】:
我希望我的输出是:
Enter a number : n
List from zero to your number is : [0,1,2,3, ... , n]
0 + 1 + 2 + 3 + 4 + 5 ... + n = sum(list)
但我的实际输出是:
Enter a number : 5
List from zero to your number is : [0, 1, 2, 3, 4, 5]
[+0+,+ +1+,+ +2+,+ +3+,+ +4+,+ +5+] = 15
我正在使用join,因为它是我知道的唯一类型。
为什么要在项目周围印上加号?为什么要在空格周围加号?
我应该如何将list 的值打印成字符串供用户阅读?
谢谢。这是我的代码:
##Begin n_nx1 application
n_put = int(input("Choose a number : "))
n_nx1lst = list()
def n_nx1fct():
for i in range(0,n_put+1):
n_nx1lst.append(i)
return n_nx1lst
print ("List is : ", n_nx1fct())
print ('+'.join(str(n_nx1lst)) + " = ", sum(n_nx1lst))
【问题讨论】:
-
当您编写
str(n_nx1lst)时,您将获得列表的字符串表示形式,因此列表[1, 2, 3, 4]字面意思就是字符串"[1, 2, 3, 4]" -
...实际上是
"[1, 2, 3, 4]",然后连接会将字符串作为字符列表,在每个字符之间插入+。因此[+1+ +,+ +2+,+ +3+,+ +4+] -
我想补充一下,现在已经发布了正确的答案,即您的变量名称很糟糕。非常令人困惑且难以阅读。
-
顺便说一句,您不需要编写函数来构建您的列表。只需执行
n_nx1lst = list(range(n_put+1))。但是如果你真的想用一个函数来做这个,它应该把数字作为一个参数,它应该在函数中构造一个新的列表并返回它。 -
Greg + @spectras:谢谢。你是对的。我正在将该列表中的所有内容都变成一个字符串。 Jim 向我解释说,我应该遍历每个项目。
标签: python list python-3.x