这是我的代码,在Python中:
x=float(raw_input('How many total orders have accumulated: '))
y=float(raw_input('How many units are in the inventory: '))
z=float(raw_input('How many accumulated orders have you placed: '))
print 'order (x/25)+(y/10)+(z/25) units'
我知道单行代码很长,但我希望它按顺序执行,就像程序一样。不必一步一步地输入代码以执行下一步。我写这篇文章是为了给同事复制和粘贴,并且能够运行方程数百次,而不是每次都写出等式。
请注意,代码的第一部分工作正常,问题仅在于代码的最后部分。该行末尾的print命令是:
print 'order (x/25)+(y/10)+(z/25) units'
如何正确设置语法,以便显示该等式的值,而不仅仅显示等式本身?
我对编程很陌生,只是将其用作加快其他工作的工具。我不熟悉术语,所以我很难找到这个问题的信息。我搜索谷歌和堆栈交换,但找不到任何东西。
答案 0 :(得分:4)
使用comma(,)
分隔各种元素,将它们连接起来。在评估任何表达式后...
因此,您的表达式将被评估,然后使用comma(,)
将获得的值与之前和之后的字符串连接起来。
**编辑: - 实际上,你不需要那些括号..
print 'order:', x/25 + y/10 + z/25 ,' units'
答案 1 :(得分:3)
@ Rohit回答的替代方法是使用string formatting:
print 'order %s units' % (x / 25 + y / 10 + z / 25)
或使用较新的str.format()
方法:
print 'order {0} units'.format(x / 25 + y / 10 + z / 25)
修改:在此处包含我对整数除法的评论,以提高可读性。
根据您的Python版本,使用/
分割两个整数可能无法达到预期效果。
在3.x之前的Python版本中,除以两个整数的结果也总是一个整数(向下舍入,称为“底层划分”)。
Python 2.7.2 (default, Oct 30 2011, 13:00:18)
>>> 5 / 2
2
所以5 / 2 == 2
。如果你想做“真正的除法”,你需要首先将其中一个参数转换为浮点数:
Python 2.7.2 (default, Oct 30 2011, 13:00:18)
>>> 5 / 2.0
2.5
>>> 5 / 2.0 == 2.5
True
使用Python 3.0,/
运算符的行为发生了变化:
Python 3.2.2 (default, Apr 15 2012, 16:59:18)
>>> 5 / 2
2.5
转换为浮点数可以使用float(i)
。
有关from __future__ import division
的所有详情,原因和解读,请参阅PEP238和this article。
答案 2 :(得分:0)
我看到您使用的是 Python 2,因为 Python 3 要求打印语句使用方括号,例如 print()
。
我强烈建议您继续使用 Python 3,因为它是最新版本并且 Python 2 不再更新。至少在撰写本文时,Python 的最新版本是 Python 3.9.2。
就像@Lukas Graf 所说的,您可以使用字符串格式。 Python 3.8 及更高版本的好处是 f-strings
。它类似于 str.format()
,但更好。
print(f'order {(x / 25) + (y / 10) + (z / 250)} units')
希望这会有所帮助。 (我知道,我晚了9年)