PythonMy字符串变量不能添加到一个字符串中

2024-05-01 08:46:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我似乎在添加字符串时遇到问题。
我编写了一个函数,不断调用该函数对字符串进行解码或编码。
问题是当我打印结果时,它只打印一个字符,而不是整个代码。
在函数之外,此方法通过一个字母接一个字母来工作。
这里我使用数字。

def code(s,i):
  result = ""
  if i < len(s):
    if s[i] == '0':
      result += "3"
      print (result)
      code(s,i+1)
    if s[i] == '1':
      result += "4"
      print (result)
      code(s,i+1)
    else:
      print ("An Error seems to have occured.")
  else:
    print("Code is done.")
  return

例如,如果我输入:01
我希望结果是:3
34
但它只打印:3
4
因此,基本上,重放后的结果会删除/覆盖之前字符串中的内容
我想打印一个字符串,而不是一行接一行地打印结果。
这只是我代码的一部分。为什么结果不加起来?
这就是我定义输入的方式。
entered = input("Please type something.")


Tags: 方法函数字符串代码编码ifdef字母
2条回答

实际上,您的代码是正确的,但只有一个问题,即在传递第一个嵌套的if子句之后,代码进一步进入下一个,它进入嵌套的else子句

要停止此操作,必须返回程序

您应该这样编写代码

def code(s,i):
  result = ""
  if i < len(s):
    if s[i] == '0':
      result += "3"
      print (result)
      code(s,i+1)
      return
    if s[i] == '1':
      result += "4"
      print (result)
      code(s,i+1)
      return
    else:
      print ("An Error seems to have occured.")
  else:
    print("Code is done.")
  return

我找到了解决问题的方法。
每次我调用函数时,它都会重置我的代码,所以我将结果作为 my函数的参数:

def code(s,i,result):

  if i < len(s):
    if s[i] == '0':
      result += "3"
      print (result)
      code(s,i+1,result)
      return
    if s[i] == '1':
      result += "4"
      print (result)
      code(s,i+1,result)
      return
    else:
      print ("An Error seems to have occured.")
  else:
    print("Code is done.")
  return

现在结果打印出我需要的内容,谢谢您的帮助!^^

相关问题 更多 >