我在編程競賽中(我不知道爲什麼,我幾乎不知道任何高級Python),因爲我的老師認爲這是一個好主意。其中一個練習項目是創建一個包含6個函數的字符串編輯器,分別是Insert,Delete,Reverse,Update/Replace,Append和Prepend一個字符串。對於輸入的語法應該是這樣的:Python字符串編輯器
computer I 3 BIT
與
comper
輸出所以第一部分是編輯字符串,第二個是操作(I可以進行插入,爲d刪除,R表示反向等)。問題是,其餘的東西是不同的。對於I,D和R,共有4個部分。第三是操作的起點。第四個是爲I插入的字符串,以及爲D刪除的字符數,R可以處理的字符數。但是,更新/替換包含5個部分。字符串,修飾符(U),開始位置,要替換的字符數以及要替換的子字符串。
同樣,Append和Prepend有3個部分。原始字符串,修飾符(A或P)以及要添加或附加的子字符串。
到目前爲止,我已經拿出下面的代碼。
while True:
Full_String = input("Please enter a string, modifier, start character, and iteration modifier: ")
string, modifier, start, itermod = Full_String.split (" ")
print (string)
print (modifier)
print (start)
print (itermod)
打印命令只是爲了確保字符串正確拆分。然而,每當我嘗試使用某些操作所需的3或5個參數時,我會得到一個ValueError。通常,我可以添加Try-Except塊來捕獲錯誤,但我無法弄清楚如何在沒有2級用戶輸入的情況下執行此操作。
那麼,無論如何,我該如何設法將這個問題歸結爲一行輸入?對於每個輸入應類似於以下:
插入:字符串I 2新
刪除:字符串d 2 3
反向:字符串R 2 3
更新/替換:字符串ù 2 3個新(字符串的長度必須是不管以前的說法是,即3個新的,4日消息,5大)
附加:字符串的新
Prepen d:字符串P新
任何幫助都非常感謝。
使用拆分,但將結果保留在單個列表中:'result = Full_String.split(「」)'。然後,你可以參考'result [3]'和'result [4]'等,這取決於result [0]的值。 –
你需要看看*加星號的表達*。 –
通常,在你的問題中追加堆棧跟蹤(這種情況下的ValueError)是有幫助的 – rinderwahn