Python 为什么'n1 if eval('n1<;=n2";)else n2'总是返回'n1'?
我试图编写一个函数Python 为什么'n1 if eval('n1<;=n2";)else n2'总是返回'n1'?,python,eval,Python,Eval,我试图编写一个函数smaller_num(n1,n2),它返回两个参数的较小值。在下面的代码段中,虽然我希望函数返回“16”,但实际上由于某种原因返回了“1500”。逻辑有什么问题 def smaller_num(n1, n2): return n1 if eval("n1<=n2") else n2 print(smaller_num("1500", "16")) def较小_num(n1,n2): 如果eval(“n1您对eval()的使用是多余的,请返回n1。请简单尝试
smaller_num(n1,n2)
,它返回两个参数的较小值。在下面的代码段中,虽然我希望函数返回“16”
,但实际上由于某种原因返回了“1500”
。逻辑有什么问题
def smaller_num(n1, n2):
return n1 if eval("n1<=n2") else n2
print(smaller_num("1500", "16"))
def较小_num(n1,n2):
如果eval(“n1您对eval()
的使用是多余的,请返回n1。请简单尝试
def较小_num(n1,n2):
如果n1“n11500
大于16
,但“1500”
和“16”,则返回n1
是字符串,而不是数字。字符串是按字典顺序进行比较的。你为什么还要使用eval
呢?如果你想写一个函数来返回两个输入中较小的一个,你不需要eval
。return min(n1,n2)
或者return n1如果n1
就可以了。