Python 我现在明白我做了什么
我试图在循环中创建变量。i、 我传递一个变量模式,它们的值模式和变量被相应地创建并存储在一个文本文件中 但是,我尝试了一些离题的东西,并做了以下几点:Python 我现在明白我做了什么,python,for-loop,lambda,variable-assignment,python-3.8,Python,For Loop,Lambda,Variable Assignment,Python 3.8,我试图在循环中创建变量。i、 我传递一个变量模式,它们的值模式和变量被相应地创建并存储在一个文本文件中 但是,我尝试了一些离题的东西,并做了以下几点: a = lambda a: a for i in ["a", "b"]: b = eval(i)(a) print(i) 结果是: a b 谁能解释一下这里发生了什么事 编辑: 我已经分析了它的答案。 我会把它贴在下面。 请验证它是否正确。 谢谢大家! 让我们先把问题分成几个部分 def
a = lambda a: a
for i in ["a", "b"]:
b = eval(i)(a)
print(i)
结果是:
a
b
谁能解释一下这里发生了什么事
编辑:
我已经分析了它的答案。
我会把它贴在下面。
请验证它是否正确。
谢谢大家!
让我们先把问题分成几个部分
def a(n):
return n
b = eval("a")(a)
print("a")
b = eval("b")(a)
print("b")
def a(n):
return n
b = eval("a")(a)
print("a")
b = eval("b")(a)
print("b")
我们可以清楚地看到,输出是由于两个print语句
print("a")
print("b")
print("a")
print("b")
因此,其余语句在输出中不起作用
def a(n):
return n
b = eval("a")(a)
b = eval("b")(a)
def a(n):
return n
b = eval("a")(a)
b = eval("b")(a)
这些陈述可以简单地表述如下:
def a(n):
return n
b = a(a)
b = b(a)
def a(n):
return n
def b(n):
return n
print("a")
print("b")
def a(n):
return n
b = a(a)
b = b(a)
def a(n):
return n
def b(n):
return n
print("a")
print("b")
声明
b = a(a)
b = a(a)
效果与
def b(n):
return n
def b(n):
return n
因此,整个代码可以这样表达:
def a(n):
return n
b = a(a)
b = b(a)
def a(n):
return n
def b(n):
return n
print("a")
print("b")
def a(n):
return n
b = a(a)
b = b(a)
def a(n):
return n
def b(n):
return n
print("a")
print("b")
因此,这个问题现在没有任何含糊不清的地方。以下是你如何解构你的循环以便自己理解,请不要像评论中指出的那样去做
a=lambda a:a
#第一次迭代
i=“a”
b=评估(i)(a)
印刷品(一)
#第二次迭代
i=“b”
b=评估(i)(a)#评估(“b”)现在是
印刷品(一)#b
您正在打印变量i(因为您循环了[“a”,“b”]),所以它取值“a”和“b”)。如果要查看变量b采用的值,请打印b:
a = lambda a: a
for i in ["a", "b"]:
b = eval(i)(a)
print(b)
让我们先把问题分成几个部分
def a(n):
return n
b = eval("a")(a)
print("a")
b = eval("b")(a)
print("b")
def a(n):
return n
b = eval("a")(a)
print("a")
b = eval("b")(a)
print("b")
我们可以清楚地看到,输出是由于两个print语句
print("a")
print("b")
print("a")
print("b")
因此,其余语句在输出中不起作用
def a(n):
return n
b = eval("a")(a)
b = eval("b")(a)
def a(n):
return n
b = eval("a")(a)
b = eval("b")(a)
这些陈述可以简单地表述如下:
def a(n):
return n
b = a(a)
b = b(a)
def a(n):
return n
def b(n):
return n
print("a")
print("b")
def a(n):
return n
b = a(a)
b = b(a)
def a(n):
return n
def b(n):
return n
print("a")
print("b")
声明
b = a(a)
b = a(a)
效果与
def b(n):
return n
def b(n):
return n
因此,整个代码可以这样表达:
def a(n):
return n
b = a(a)
b = b(a)
def a(n):
return n
def b(n):
return n
print("a")
print("b")
def a(n):
return n
b = a(a)
b = b(a)
def a(n):
return n
def b(n):
return n
print("a")
print("b")
因此,这个问题现在没有歧义了。你在[“a”,“b”](a和b)之间循环,然后打印出来。为不同的结果打印B“我试图在循环中生成变量。”-不要。听从我的建议。我支持提名:用这样的处理方法制造个体变量是不必要的,也是危险的。完成更多数据结构的教程:列表、dicts、类等。这样您就有了适合您的问题的工具。@Prune谢谢!顺便说一句,我只是在做一个项目的时候偶然发现了这一点,并弄明白了第二天发生了什么。顺便说一句,非常感谢!确切地说,他们需要做
print(b)
才能得到任何有意义的东西