在一行中打印for循环中的两条语句的一行



如何在一行中编写此代码?概念是你应该:

  • 从用户处获取一个输入,并检查(字符的ASCII形式(-97是否可被2整除
    • 如果是,则应打印字符的原始形式
    • 否则,您应该打印字符的大写形式
  • 最后,你应该颠倒答案
  • 例如,如果输入为alexander,则输出应为e e a a X R N L D
  • 但它应该在一行,而且只有一行,我想出了一个解决方案,但只有三行,我不知道下一步该怎么办

这是我迄今为止想出的代码:

h = []
for i in input() : h.append(i.lower() if (ord(i) - 97) % 2 == 0 else i.upper())
print(*sorted(h, reverse=True))

问题的原始代码应该转换为一行:

input_string = str(input())
array = []
for i in range(len(input_string)):
if (ord(input_string[i]) - 97) % 2 == 0:
array.append(input_string[i])
else:
array.append(input_string[i].upper())
array.sort(reverse=True)
answer = ' '.join(array)
print(answer)

列出理解(我没有检查你的代码,只是重写了它(:

h = []
for i in input() : h.append(i.lower() if (ord(i) - 97) % 2 == 0 else i.upper())
print(*sorted(h, reverse=True))
print(*sorted([i.lower() if (ord(i)-97)%2 == 0 else i.upper() for i in input() ], reverse=True))

引用您的问题:

您应该打印字符的原始形式

这不是代码目前所做的,只是为了让您意识到这一点。

阅读您删除的评论后:

如果你想知道列表理解中的ifelse

你可以把它放在你的列表中,但如果这是你的问题(显然是实际问题(,那么我建议使用谷歌,有很多例子可以使用它。:如果/否则在列表理解中,https://towardsdatascience.com/a-gentle-introduction-to-flow-control-loops-and-list-comprehensions-for-beginners-3dbaabd7cd8a,https://pythonguides.com/python-list-comprehension-using-if-else/

最新更新