hhzczy 发表于 2018-10-22 10:47:13

关于炮友Thon的问题

x = 777 * 888
y = 666 * 999

if x < y:
    small = x
else:
    small = y

print(small)
—————————
输出结果:
665334
—————————

问题:
以上是一段比较两个算式结果大小的代码,但是结果是直接把数字算出来了,我还是不知道到底是x小还是y小。
我想要以下]表达结果,形如:

y更小,666 * 999 = 665334
x更小,444*8888 = 1234456

小白想知道如何获取参数本身名称以及算式。

claws0n 发表于 2018-10-22 10:56:32

x = '777 * 888'
y = '666 * 999'

if eval(x) < eval(y):
    print('x is smaller,',x,'=',eval(x))
else:
    print('y is smaller,',y,'=',eval(y))

塔利班 发表于 2018-10-22 11:07:13

def get_variable_name(x):
    for k,v in locals().items():
      if v is x:
            return k

   
x = 777 * 888
y = 666 * 999

if x < y:
    small = x
    name=get_variable_name(x)
else:
    small = y
    name=get_variable_name(y)
print(small,f'is {name}')

塔利班 发表于 2018-10-22 11:26:19

算式是不能直接得到的,除非你设置的就是传入字符串

hhzczy 发表于 2018-10-22 13:24:13

塔利班 发表于 2018-10-22 11:26
算式是不能直接得到的,除非你设置的就是传入字符串

二楼的可以得到。还是很感谢您。

hhzczy 发表于 2018-10-22 13:25:09

claws0n 发表于 2018-10-22 10:56


非常感谢。我不小心点错了,本想把您的答案设为最佳答案的。
非常感谢您和三楼兄弟的屡次帮助。

感谢!!!

claws0n 发表于 2018-10-22 13:37:33

@塔利班那我是不是应该把最佳答案转移?{:10_254:}
页: [1]
查看完整版本: 关于炮友Thon的问题