Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.join()使用Python中的range生成的用户列表的元素_Python_List_Range - Fatal编程技术网

.join()使用Python中的range生成的用户列表的元素

.join()使用Python中的range生成的用户列表的元素,python,list,range,Python,List,Range,在“我的程序”中,用户输入一个将通过的数字: 0+1+2+ ... + n=n*(n+1)/2公理 输入10的所需输出(在本例中为999) 我想我可以在print语句中使用两个范围函数,它们之间有一个“+…+”字符串。 但我键入的内容一定是荒谬的,因为我得到了一个语法错误: SyntaxError: Generator expression must be parenthesized if not sole argument 这个错误是什么意思?我知道这个表达式必须用括号括起来。我试图用初学者

在“我的程序”中,用户输入一个将通过的数字:
0+1+2+ ... + n=n*(n+1)/2公理

输入10的所需输出(在本例中为999)

我想我可以在print语句中使用两个范围函数,它们之间有一个“+…+”字符串。 但我键入的内容一定是荒谬的,因为我得到了一个语法错误:

SyntaxError: Generator expression must be parenthesized if not sole argument
这个错误是什么意思?我知道这个表达式必须用括号括起来。我试图用初学者的逻辑来纠正错误,但我的尝试失败了

这是我的密码:

input_n = int(input("Choisissez un nombre : "))

input_list = list()
for i in range(0,input_n+1):
    input_list.append(i)

if input_n <= 10:
    print ("+".join(str(i) for i in input_list) + " = ", sum(input_list))
    print (str(input_n)+'*'+'('+str(input_n)+'+1)/2 = ', int(input_n*(input_n+1)/2))
elif input_n > 10:
    print("+".join(str(i) for i in range(5)) + " + ... +" + "+".join(str(i) for i in range(input_n-5,input_n+1), sum(input_list)))
    print (str(input_n)+'*'+'('+str(input_n)+'+1)/2 = ', int(input_n*(input_n+1)/2))
input\u n=int(输入(“Choisissez un nombre:”)
输入\列表=列表()
对于范围内的i(0,输入n+1):
输入列表。追加(i)
如果输入10:
打印(“+”.join(str(i)表示范围(5)中的i)+“+…+”+“+”+”.join(str(i)表示范围内的i(input_n-5,input_n+1),sum(input_list)))
打印(str(input_n)+'*'+'('+str(input_n)+'+1)/2=',int(input_n*(input_n+1)/2))

对于像我这样的noobs:
我已经得到了以前在这方面遇到的问题的答案,您应该明确检查给出的答案。

回溯显示:


这里写的东西毫无意义。修改它,直到它生效。

回溯显示:


这里写的东西毫无意义。修改它直到它完成。

您忘记关闭
join
内置方法的括号,因此我猜这就是您想要的:

>>> input_list = list(range(21))
>>> 
>>> input_n = 20
>>> print("+".join(str(i) for i in range(5)) + " + ... +" + "+".join(str(i) for i in range(input_n-5,input_n+1)) + ' = ', sum(input_list))
0+1+2+3+4 + ... +15+16+17+18+19+20 =  210

您忘记关闭
join
内置方法的括号,因此我猜这就是您想要的:

>>> input_list = list(range(21))
>>> 
>>> input_n = 20
>>> print("+".join(str(i) for i in range(5)) + " + ... +" + "+".join(str(i) for i in range(input_n-5,input_n+1)) + ' = ', sum(input_list))
0+1+2+3+4 + ... +15+16+17+18+19+20 =  210

你能从一个空字符串开始,连接每个迭代,然后打印最终结果吗?我不明白你为什么要写
print(+'+'.join(…)+'=',sum(…)
而不是
print(+'+'.join(…),'=',sum(…)
。首先连接字符串并将最终结果传递给
print
,或者使用
print
的多个参数。把这两者混为一谈真的没有意义,尤其是在这种情况下。谢谢。我一定会记住这一点。所有的格式,无论是正确的还是马戏团式的,对我来说都是全新的。一旦我更好地掌握了基本知识,我愿意对我的编码进行一些排序。你能从一个空字符串开始,连接每次迭代,然后打印最终结果吗?我不明白你为什么要编写
print(+'''''''.join(…)+'=',sum(…)
而不是
print(+'.join(…),'=',sum(…)
。首先连接字符串并将最终结果传递给
print
,或者使用
print
的多个参数。把这两者混为一谈真的没有意义,尤其是在这种情况下。谢谢。我一定会记住这一点。所有的格式,无论是正确的还是马戏团式的,对我来说都是全新的。一旦我更好地掌握了基础知识,我愿意在我的编码中加入一些顺序;在这种情况下:sum(输入列表)必须被解释为第二个范围。我将尝试添加一个字符串,并将{}.format函数用作第二个范围,而不是元组的第二个元素(将
range()
的结果作为第一个),或者作为
join()
的第二个参数。lexer已经决定像这样模棱两可的情况是错误的。谢谢。另一个答案是通过我的头脑知道我做错了什么。你的解释了莱克瑟不得不忍受的胡言乱语;在这种情况下:sum(输入列表)必须被解释为第二个范围。我将尝试添加一个字符串,并将{}.format函数用作第二个范围,而不是元组的第二个元素(将
range()
的结果作为第一个),或者作为
join()
的第二个参数。lexer已经决定像这样模棱两可的情况是错误的。谢谢。另一个答案是通过我的头脑知道我做错了什么。你的解释了雷克瑟不得不忍受的胡言乱语。谢谢你,你把我从一个疯狂的方向带回来了。我仍然花了整整十分钟的时间来弄清楚我的括号数是否正确,但其中一个以一种滑稽的方式放错了位置。事实上,我很感激我没有被否决。。当然可以;)谢谢你,你把我从一个疯狂的方向带回来了。我仍然花了整整十分钟的时间来弄清楚我的括号数是否正确,但其中一个以一种滑稽的方式放错了位置。事实上,我很感激我没有被否决。。当然可以;)
....join(str(i) for i in range(input_n-5,input_n+1), sum(input_list)))
>>> input_list = list(range(21))
>>> 
>>> input_n = 20
>>> print("+".join(str(i) for i in range(5)) + " + ... +" + "+".join(str(i) for i in range(input_n-5,input_n+1)) + ' = ', sum(input_list))
0+1+2+3+4 + ... +15+16+17+18+19+20 =  210