0

这是我的代码,在 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 'order (x/25)+(y/10)+(z/25) units'

如何正确设置语法,以便显示该方程的值,而不仅仅是显示方程本身?

我对编程非常陌生,仅将其用作加快其他工作的工具。我不熟悉术语,所以我很难找到这个问题的信息。我搜索了谷歌和堆栈交换,但找不到任何东西。

4

3 回答 3

4

使用 分隔各种元素comma(,),这将连接它们..在评估存在的任何表达式之后..

因此,将评估您的表达式,然后将获得的值与它之前和之后的字符串连接起来,使用comma(,)..

** 编辑: - 实际上,你不需要那些括号..

print 'order:', x/25 + y/10 + z/25 ,' units'
于 2012-10-05T17:23:10.310 回答
3

@Rohit 答案的替代方法是使用字符串格式

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本文例如。

于 2012-10-05T17:34:07.823 回答
0

我看到您使用的是 Python 2,因为 Python 3 需要括号用于 print 语句,例如print().

我强烈建议您继续使用 Python 3,因为它是最新版本,不再支持和更新 Python 2。至少在撰写本文时,最新版本的 Python 是 Python 3.9.2 。

就像@Lukas Graf 所说,您可以使用字符串格式。Python 3.6 及更高版本的好处是f-strings. 它就像str.format()但甚至更好。要使用f-strings,您可以在字符串前面加上an f,然后用花括号( {})将实际代码括起来。

print(f'order {(x / 25) + (y / 10) + (z / 250)} units')

希望这可以帮助。(我知道,我迟到了 9 年)

于 2021-07-12T08:41:50.173 回答