python只向我显示一个字符,而不是我所期望的为什么?

2024-10-01 13:29:50 发布

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

我建立了一个计划。程序运行良好,也没有任何错误,但它只返回一个字符。我想要所有的角色?你知道吗

解释代码:

有个字符串。所以我在这里所做的, 我只是把小写()反译成大写()孔字符串:

HackerRank.com presents "Pythoinst 2"转换成hACKERrANK.com pRESENTS "pYTHON 2")。你知道吗

我已经试过了:

def swap_case(s):
  for i in range(len(s)):
    if s[i].isupper():
      print('%s'%s[i].lower(), end='')   # look at this line code
    else:
      print('%s'%s[i].upper(), end='')   # look at this line code
if __name__ == '__main__':
  s = 'HackerRank.com presents \"Pythoinst 2\".'
  result = swap_case(s)
  print(result)

输出:

hACKERrANK.COM PRESENTS "pYTHOINST 2".None  <---- I don't want this None.

问题:

....NST 2".None <--- I don't this "None" string. Every time this is print automatic.

这是我的代码:

def swap_case(s):
  for i in range(len(s)):
    if s[i].isupper():
      return'{}'.format(s[i].lower(), end='')
    else:
      return '{}'.format(s[i].upper(), end='')
if __name__ == '__main__':
  s = 'HackerRank.com presents \"Pythoinst 2\".'
  result = swap_case(s)
  print(result)

我得到这个输出:

h

我期望这个输出:

hACKERrANK.COM PRESENTS "pYTHOINST 2".

Tags: 字符串代码comnoneifresultthisend
1条回答
网友
1楼 · 发布于 2024-10-01 13:29:50

函数会打印出所需的所有内容,因此不要保存并打印结果。改变

result = swap_case(s)
print(result)

为了公正

swap_case(s)

完整代码(删除了不必要的字符串格式):

def swap_case(s):
  for i in range(len(s)):
    if s[i].isupper():
      print(s[i].lower(), end='')
    else:
      print(s[i].upper(), end='')

if __name__ == '__main__':
  s = 'HackerRank.com presents \"Pythoinst 2\".'
  swap_case(s)

编辑:

原来你不能修改if __name__ == '__main__':下的内容。因此,将函数改为:

def swap_case(s):
  result = []
  for i in range(len(s)):
    if s[i].isupper():
      result.append(s[i].lower())
    else:
      result.append(s[i].upper())
  return ''.join(result)

下面是一个更具python风格的版本:

def swap_case(s):
  return ''.join([c.lower() if c.isupper() else c.upper() for c in s])

相关问题 更多 >