pki*_*ill 6 python scripting lambda scripting-language
我是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)
Run Code Online (Sandbox Code Playgroud)
我有一个函数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>
Run Code Online (Sandbox Code Playgroud)
这个脚本的目的是学习lambda,虽然还有其他方法可以做这个程序.请让我知道我做错了什么.进程以退出代码0结束
你没有调用这个函数.这和你写的一样,
print convert_ascii而不是print convert_ascii(i).
尝试
print (lambda x: chr(ord(x) + 1))(i)
Run Code Online (Sandbox Code Playgroud)
请注意,我在函数体中更改ord(i)为ord(x).
| 归档时间: |
|
| 查看次数: |
6864 次 |
| 最近记录: |