一行打印 for 循环中的两条语句
One-liner to print two statements in a for-loop in one line
如何将这段代码写成一行?这个概念是你应该:
- 从用户那里获取一个输入并检查(字符的 ASCII 形式)- 97 是否可以被 2 整除
- 如果是,你应该打印字符的原始形式
- 否则,您应该打印字符的大写形式。
- 最后,你要把答案反过来。
- 例如,如果输入是
alexander
,输出应该是e e a a X R N L D
- 但是应该是一行而且只有一行,我想出了一个解决方案但是是3行,我不知道下一步该怎么做。
这是我到目前为止想出的代码:
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))
引用你的问题:
you should print the original form of the character
这不是代码目前所做的,只是为了让你知道。
阅读您删除的评论后:
如果您想知道列表理解中的 if
和 else
:
你可以把它放在你的列表中,但如果那是你的问题(显然是实际问题)那么我建议使用 google,有很多使用它的例子。:if/else in a list comprehension, 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/
如何将这段代码写成一行?这个概念是你应该:
- 从用户那里获取一个输入并检查(字符的 ASCII 形式)- 97 是否可以被 2 整除
- 如果是,你应该打印字符的原始形式
- 否则,您应该打印字符的大写形式。
- 最后,你要把答案反过来。
- 例如,如果输入是
alexander
,输出应该是e e a a X R N L D
- 但是应该是一行而且只有一行,我想出了一个解决方案但是是3行,我不知道下一步该怎么做。
这是我到目前为止想出的代码:
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))
引用你的问题:
you should print the original form of the character
这不是代码目前所做的,只是为了让你知道。
阅读您删除的评论后:
如果您想知道列表理解中的 if
和 else
:
你可以把它放在你的列表中,但如果那是你的问题(显然是实际问题)那么我建议使用 google,有很多使用它的例子。:if/else in a list comprehension, 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/