簡體   English   中英

在 Python 中,如何在打印函數中顯示方程的值?

[英]In Python, how do you display the value of an equation inside of a print function?

這是我的代碼,在 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'

我如何正確設置語法,以便它顯示該方程的值,而不僅僅是顯示方程本身?

我對編程非常陌生,僅將其用作加速其他工作的工具。 我不熟悉術語,所以我很難找到這個問題的信息。 我搜索了谷歌和堆棧交換,但找不到任何東西。

使用comma(,)分隔各種元素,將它們連接起來。

因此,將對表達式進行求值,然后使用comma(,)將獲得的值與字符串前后的字符串連接起來。

**編輯:-實際上,您不需要那些括號。

print 'order:', x/25 + y/10 + z/25 ,' units'

@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)轉換為float。

有關所有詳細信息,原因以及from __future__ import division閱讀的信息,請參閱PEP238本文為例。

我看到您正在使用 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 ,您需要在字符串前面加上f ,然后將實際代碼括在花括號 ( {} ) 中

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

希望這可以幫助。 (我知道,我晚了9年)🤣

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM