python-3.x - 从列表循环返回
问题描述
此代码与凯撒密码加密几乎相同。当我只使用convert(x,key)而不使用return时,它才有效,但是当我在函数中使用return,然后我用print(convert(x,key))调用时,它只显示最后一个列表而不是全部。有可能从函数循环中返回吗?
x = int(input())
key = list(input())
def convert(a, b):
for i in b:
old = ord(i)
old += a
realvote = chr(old)
return realvote
print()
print(convert(x, key))
输入 :
4
abc
期待:efg
输出:g
解决方案
使用生成器和 yield 语句:
x = int(input())
key = list(input())
def convert(a, b):
for i in b:
old = ord(i)
old += a
realvote = chr(old)
yield realvote
print(''.join(convert(x, key)))
使用纯字符串:
x = int(input())
key = list(input())
def convert(a, b):
retval = ""
for i in b:
old = ord(i)
old += a
retval += chr(old)
return retval
print(convert(x, key))
单线:
convert = lambda a, b: "".join((chr(ord(c) + a) for c in b))
推荐阅读
- regex - nxlog 的正则表达式
- python - 在字符串中查找 2 个字符的重复段的第一个实例
- java - 我们可以在 Java 中有条件地模拟一个对象吗?
- ubuntu - 代客泊车状态显示“已停止”
- javascript - 如何将数据从 vue 组件传递到 laravel 中的视图(HTML)
- mysql - 将查询结果选择到新列中
- domain-driven-design - 在会议管理中使用单独的有界上下文人员管理(演讲者、主席、作者、参与者)?
- node.js - 为什么在终端中 console.log 时我的数组被包装?
- 3d - 有没有更简单的方法在 PPT 或 Visio 中创建附图?
- php - 从 PHP 处理提交 AJAX 时,下面的代码中有什么错误?