Python lambda function printing <function <lambda> at 0x7fcbbc740668> instead of value
Question: I am a beginner in python, and I was playing around with lambda functions. I
was writing a program using lambda function to print characters that are +1
the ascii value of the input characters. My code is

    
    
    #!/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)
    

I have a function convert_ascii that does the same thing as lambda. However,
my output is

    
    
    /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>
    

The purpose of this script is learning lambda, though there are other ways to
do this program. Please let me know what am I doing wrong. Process finished
with exit code 0


Answer: Currently you are printing a function object. You have to call the function.

Receive the function in a variable and call it with a parameter.

    
    
    for i in word:
      print convert_ascii(i)
      fun=lambda x: chr(ord(x) + 1)
      print fun(some_arg) 
    

