【问题标题】:How to fix replaced letter showing as '{' instead of 'a' which is what its meant to show如何修复显示为“{”而不是“a”的替换字母,这就是它的意思
【发布时间】:2019-08-25 11:47:24
【问题描述】:

我正在学校参加一项名为 Grok 的比赛。这是一场 Python 比赛。我想在 char 循环中用 'a' 替换字母 'z'。但是当我输入一个带有字母 z 的单词时,该字母显示为 { 而不是 a。

text = input('Word? ')


for char in text:
  if 'z' in char:
    new_char = chr(ord(char) + 1)
    new_char.replace('z', 'a')
  else:
    new_char = chr(ord(char) + 1)


  print(new_char, end='')

如果我输入一个像 Pizza 这样的词,z 的字母会替换为 { 而不是 a,比如 pi{{a,当我希望它产生 Piaaa 时

【问题讨论】:

  • chr(ord('z') + 1) 返回 { 字符。 That's why.
  • {z 之后的下一个 Unicode 字符,所以这是正确的行为。您应该考虑只使用replace
  • 请注意,这本质上是家庭作业,groklearning.com 在系统内提供在线辅导帮助您自己解决问题,所以您应该真正去那里问,而不是在这里得到解决方案而学得很少.

标签: python grok


【解决方案1】:

如何避免循环并只使用str.replace

text = text.replace('z', 'a')

这将在text 中将所有出现的'z' 替换为'a'

【讨论】:

    【解决方案2】:

    我觉得有问题

    new_char = chr(ord(char) + 1)
    

    尝试在该行之后打印 new_char,你就会被知道。

    for char in text:
      if 'z' in char:
        new_char = chr(ord(char) + 1)
        print(new_char)
        new_char.replace('z', 'a')
      else:
        new_char = chr(ord(char) + 1)
    
    
      print(new_char, end='')
    

    【讨论】:

      【解决方案3】:

      发生这种情况是因为 ord('z') 是 122 而 ord('{') 是 123。像

      new_char = char(ord('a') + (ord(char) - ord('a') + 1) % 26)
      

      应该可以。

      【讨论】:

        【解决方案4】:

        感谢大家的帮助,我使用您的答案稍微编辑了代码,这似乎对我有用:

          text = input('Word? ')
        
        # This loop will encrypt one letter at a time.
        for char in text:
          # Encrypt char here!
          if 'z' in char:
            new_char = char.replace('z', 'a')
          else:
            new_char = chr(ord(char) + 1)
        
        
          # Print the new encrypted letter.
          print(new_char, end='')
        

        非常感谢大家!

        【讨论】:

          猜你喜欢
          • 2022-11-27
          • 1970-01-01
          • 1970-01-01
          • 2017-05-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多