我参加了一个编程竞赛(我不知道为什么,我几乎不懂任何高级Python),因为我的老师认为这是个好主意。其中一个实践项目是创建一个包含6个函数的字符串编辑器,它们是插入、删除、反转、更新/替换、追加和预处理字符串。输入的语法应类似于: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)
print命令只是为了确保字符串正确分割。但是,每当我尝试使用某些操作所需的3或5个参数时,就会得到一个ValueError。通常,我可以添加Try-Except块来捕捉错误,但是如果没有两级用户输入,我就无法理解如何做到这一点。你知道吗
那么,我该如何设法把它降到一行输入,不管怎样?每个的输入应如下所示:
插入:字符串I 2新
删除:字符串D 2 3
反面:字串R 2 3
Update/Replace:stringu23new(字符串长度必须与前面的参数相同,即3new、4news、5great)
追加:新字符串
前置:字符串p New
非常感谢您的帮助。你知道吗