Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.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
为什么我的Python代码提供多行输出?_Python - Fatal编程技术网

为什么我的Python代码提供多行输出?

为什么我的Python代码提供多行输出?,python,Python,我是一名Python初学者,通过解决一些代码强制问题开始了我的旅程 在为这个问题编写Python代码时,我遇到了一些问题: 基本上,输入行包含一个带有数字和“+”的字符串,例如“3+2+1”,代码必须按升序将字符串转换为一个序列,并作为输出打印,例如从“3+2+1”输出“1+2+3” 这是我的尝试: lines = (sys.stdin.readlines()) answer = '' arranged = [] intermediate = str((lines)[0]).split('+')

我是一名Python初学者,通过解决一些代码强制问题开始了我的旅程

在为这个问题编写Python代码时,我遇到了一些问题:

基本上,输入行包含一个带有数字和“+”的字符串,例如“3+2+1”,代码必须按升序将字符串转换为一个序列,并作为输出打印,例如从“3+2+1”输出“1+2+3”

这是我的尝试:

lines = (sys.stdin.readlines())
answer = ''
arranged = []
intermediate = str((lines)[0]).split('+')
arranged += [intermediate[0]]
k = 1
i = 0
for k in range(1, len(intermediate)):
    while i < len(arranged) and intermediate[k] > arranged[i]:
        i += 1
    arranged[i:i] = [intermediate[k]]
for item in arranged:
    answer += item + '+'
print(answer[:-1])
使我的代码在第一次测试中失败

附上的图片显示了我的意思:


怎么了?

我认为
readlines()
捕获了一个新行字符
\n
,当您执行
拆分时,它“附加”到
1
。您可以使用该函数来远程前导和尾随空白字符。

我认为
readlines()
捕获了一个换行字符
\n
,当您执行
拆分时,它“附加”到
1
。您可以使用该函数来远程前导和尾随空白字符。

问题在于
readlines()
捕获附加到“1”的空行(\n)

考虑此解决方案,使用“剥离”删除不需要的\n:

intermediate = str((lines)[0]).strip().split('+')
在这种情况下,调试打印将非常有用。 通过打印“中间”,结果是:

['3','2','1\n']


而且您可以很容易地检测到您的问题。

问题在于
readlines()
捕获了附加到“1”的空行(\n)

考虑此解决方案,使用“剥离”删除不需要的\n:

intermediate = str((lines)[0]).strip().split('+')
在这种情况下,调试打印将非常有用。 通过打印“中间”,结果是:

['3','2','1\n']


您可以很容易地检测到您的问题。

readlines
方法返回一个字符串列表(您已经知道了),但这些字符串以
\n
结尾,即“换行符”。使用
str.split()
方法删除它。
readlines
方法返回字符串列表(您已经知道了),但这些字符串以
\n
结尾,即“换行符”。使用
str.split()
方法摆脱它。