簡體   English   中英

單行在一行中的 for 循環中打印兩個語句

[英]One-liner to print two statements in a for-loop in one line

如何在一行中編寫此代碼? 這個概念是你應該:

  • 從用戶那里獲取一個輸入並檢查(字符的 ASCII 形式) - 97 是否可以被 2 整除
    • 如果是,您應該打印字符的原始形式
    • 否則,您應該打印字符的大寫形式。
  • 最后,你應該顛倒答案。
  • 例如,如果輸入是alexander ,則 output 應該是eeaa X R NLD
  • 但它應該是一行,只有一行,我想出了一個解決方案,但它是 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))

引用您的問題:

你應該打印字符的原始形式

這不是代碼目前所做的,只是說你知道。

閱讀您已刪除的評論后:

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

你可以把它放在你的列表中,但如果這是你的問題(顯然是實際問題),那么我建議使用谷歌,有很多使用它的例子。: 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 _ /

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM