![](/img/trans.png)
[英]Python: Why does my linear regression plot give me many messy coloured lines?
[英]Why does my Python codes give output with multiple lines?
我是一名 Python 初學者,並通過解決一些 Code Forces 問題開始了我的旅程。
我在嘗試為這個問題編寫 Python 代碼時遇到了一些問題: https://codeforces.com/problemset/problem/339/A
基本上,輸入行包含一個帶有數字和'+'的字符串,例如'3 + 2 + 1',並且代碼必須將字符串按升序轉換為一系列並打印為output,例如output'1 + 2 + 3 '來自'3 + 2 + 1'。
這是我的嘗試:
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])
當我使用自定義測試運行代碼時,它可以工作:將“1 + 2 + 3”作為 output。
但是,當我提交答案時, output 給出為
1
+ 2 + 3
使我的代碼在第一次測試中失敗。
附上圖片來說明我的意思:
怎么了?
我認為readlines()
會捕獲一個換行符\n
,當您執行split
時,它會“附加”到1
上。 您可以使用條帶function 來遠程前導和尾隨空白字符。
問題是readlines()
捕獲附加到“1”的空行 (\n)。
考慮這個解決方案,使用“strip”刪除不需要的\n:
intermediate = str((lines)[0]).strip().split('+')
在這種情況下,調試打印會非常有用。 通過打印“中間”,結果是:
['3', '2', '1\n']
你可以很容易地發現你的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.