【问题标题】:For certain characters in string, insert duplicate immediately before [duplicate]对于字符串中的某些字符,在 [duplicate] 之前插入重复
【发布时间】:2023-03-27 13:25:01
【问题描述】:

所以,我需要能够复制用户输入的字符串中的某个字符,例如:

Input: I\ love\ bac\kslashes\
Output: I\\ love\\ bac\\kslashes\\

据我所知,我复制反斜杠、转义字符并没有帮助......我该怎么做呢?

【问题讨论】:

  • 除了错误的 for 循环语法之外,for 之后的第二个引号被前面的反斜杠引用,并被视为现在左打开字符串的一部分。
  • 为什么需要这样做?字符串是干什么用的?我怀疑这是 XY 问题的一个实例。
  • @mkrieger1 在 selenium 自动化脚本中指定 webdriver 路径。在 Windows 上,路径使用反斜杠而不是正斜杠;(

标签: python list


【解决方案1】:

您可以使用str.replace():

userinput = input('Input your backslashed phrase')
replaceWith = '/'
newString = userinput.replace(replaceWith, replaceWith*2)
print(newString)

【讨论】:

    【解决方案2】:

    对于每个\,您需要另一个\ 来逃避它。当您插入输入时,Python 会为您执行此操作,因此 userinput 实际上已经是 'I\\ love\\ bac\\kslashes\\',但会打印 I\ love\ bac\kslashes\。你可以用'\\\\'替换双'\\'

    userinput = input('Input your backslashed phrase')
    userinput = userinput.replace('\\', '\\\\')
    print(userinput) # I\\ love\\ bac\\kslashes\\
    

    【讨论】:

      【解决方案3】:

      线

      for '\' in listeduserinput:
      

      是对 for 循环的根本误解。它不是搜索匹配项,而是遍历每个项目并将名称绑定到该项目以供您在循环内使用。

      还有其他方法可以完成您的想法,但要使用 for 循环来执行此操作,您需要这样做:

      output = ''
      for character in listeduserinput:
          if character == '\':
               output += '\\'
          else:
               output += character
      

      【讨论】:

      • 完全转储for循环不是更好吗?
      • 感谢您的反馈!我知道 for 循环发生了什么事。我以前用过,但这只是我的第三个真正的脚本。感谢您的帮助。
      • @Cedced_Bro 如果这是生产代码,当然可以。但是这里发生的是学习,告诉这个人完全替换循环不会帮助他们修复对 for 循环的理解
      • @Samuurai 如果这个答案帮助您解决了您的问题,请单击它旁边的复选标记,以便其他人知道该问题已得到解答。
      • @Personman 我将其他人的答案标记为正确,因为他们的方法在我的情况下效果更好,但我只是想感谢您指出我对 For 循环的误解。
      猜你喜欢
      • 2017-07-31
      • 1970-01-01
      • 2021-01-09
      • 1970-01-01
      • 1970-01-01
      • 2017-02-15
      • 2014-11-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多