我是Python的初学者,最近在使用lambda函数进行编程。 我写了一个程序,使用lambda函数打印输入字符的ascii值+1的字符。我的代码如下:
#!/usr/bin/python
import sys
try:
word = sys.argv[1]
except:
print "No arguments passed"
sys.exit(1)
def convert_ascii(char):
return "".join(chr(ord(char) + 1))
for i in word:
print convert_ascii(i)
print lambda x: chr(ord(i) + 1)
我有一个名为convert_ascii的函数,它和lambda做的事情是一样的。然而,我的输出结果是
/usr/bin/python2.7 /home/user1/PycharmProjects/test/Tut1/asciipl2.py "abc def ghi"
b
<function <lambda> at 0x7f0310160668>
c
<function <lambda> at 0x7f0310160668>
d
<function <lambda> at 0x7f0310160668>
!
<function <lambda> at 0x7f0310160668>
e
<function <lambda> at 0x7f0310160668>
f
<function <lambda> at 0x7f0310160668>
g
<function <lambda> at 0x7f0310160668>
!
<function <lambda> at 0x7f0310160668>
h
<function <lambda> at 0x7f0310160668>
i
<function <lambda> at 0x7f0310160668>
j
<function <lambda> at 0x7f0310160668>
这个脚本的目的是学习lambda,虽然还有其他实现此程序的方法。请告诉我我做错了什么。 进程以退出代码0完成。
print(chr(ord(x) + 1))
。 - Azsgyi
在调用表达式时绑定到与x
相同的值。这在技术上是一个错误,但在这种情况下与正确编写的代码具有相同的功能。 - chepner