如何解决清单理解if-else阶梯
给出一个句子,返回该句子将调用其字母,该字母在字母表中以1换位,但前提是该字母为a-y。
# input
'the quick brown fox jumps over the lazy dog'
# output
'uif rvjdl cspxo gpy kvnqt pwfs uif mbzy eph'
我尝试过:
a = [chr(ord(i) + 1) if ord(i) != ord(' ') else i if i =='y' else i for i in input() if ord(i) < ord('z')]
print(''.join(a))
uif rvjdl cspxo gpy kvnqt pwfs uif mbz eph
解决方法
这有效:
a = 'the quick brown fox jumps over the lazy dog'
print(''.join([c if c == ' ' or ord(c) >= ord('y') else chr(ord(c) + 1) for c in a]))
输出
uif rvjdl cspxo gpy kvnqt pwfs uif mbzy eph
,
下面的代码应该可以解决问题。我更改了您的一些条件,并在最后(ord(i) < ord('z')
)处删除了该条件,因为它阻止了'z'字符的处理。
此外,比较运算符可处理字符和整数,因此您不必总是在条件中使用'ord()'。
a = [chr(ord(i) + 1) if i != ' ' and i < 'y' else i for i in input()]
print(''.join(a))
,
如果我理解了说明,则此代码对我有用:
what_to_return = ""
for char in input():
what_to_return += char if char == 'y' or char == 'z' else chr(ord(char) + 1) if 'a' <= char < 'z' else " "
输出:
uif rvjdl cspxo gpy kvnqt pwfs uif mbzy eph
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。