Tôi là người mới bắt đầu trong python và tôi đang chơi với các hàm lambda. Tôi đã viết một chương trình sử dụng hàm lambda để in các ký tự +1 giá trị ascii của các ký tự đầu vào. Mã của tôi làIn chức năng lambda Python <function <lambda> tại 0x7fcbbc740668> thay vì giá trị
#!/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)
Tôi có hàm convert_ascii thực hiện tương tự như lambda. Tuy nhiên, đầu ra của tôi là
/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>
Mục đích của tập lệnh này là học lambda, mặc dù có nhiều cách khác để thực hiện chương trình này. Vui lòng cho tôi biết tôi đang làm gì sai. Quá trình hoàn tất với mã thoát 0
Mặc dù fo lưu ý rằng trong trường hợp này Lambda là vô dụng. Mã trong câu trả lời này tương đương với 'print (chr (ord (x) + 1))' – Atsch
Mục đích của OP là để tìm hiểu cách các biểu thức lambda hoạt động như thế nào. Ở đâu * thích hợp * để sử dụng chúng là không có chủ đề cho câu hỏi cụ thể này. – chepner
Mặc dù tôi đã sử dụng i thay vì x trong hàm lambda, kết quả cũng giống nhau. Trong lambda, tôi chấp nhận var là x, nhưng được lặp lại như i, và nó vẫn hoạt động. Bất kỳ ý tưởng tại sao? – pkill