2017-09-17 198 views
1

編輯:顯然我使用Python 2.切換到3修復了問題,現在我得到正確的結果沒有括號/逗號。謝謝你的答覆 - 解決的問題:D如何從打印輸出中刪除括號和逗號

Python初學者和一般編碼。掙扎着我的第一個項目任務,但我自己已經非常親近了。

我的任務是在Python中創建一個代碼,用於計算來自給定值的硬幣數量,例如宿舍,鎳幣,硬幣,便士。

我最初的代碼如下所示:

coins=input('Enter amount of change: ') 
print("Quarters", coins//25) 
coins = coins%25 
print("Dimes", coins//10) 
coins = coins%10 
print("Nickles", coins//5) 
coins = coins%5 
print('Pennies', coins//1) 

它提示類似, 「輸入變化量:86」
( '宿舍',3)
( '角錢',1)
( '尼克斯',0)
( '便士',1)

這些都是正確的價值觀,但我的教練希望它看起來像這樣:

輸入變化量:86個
宿舍:3
角錢:1個
尼克爾斯」 0
便士:1

我可以在那裏得到結腸,但我怎麼能去掉括號和逗號?由於

+2

你使用Python 2或3? – Jerrybibo

+0

你顯然正在使用Python 2,其中'print'是一個聲明。在最近的Python 2版本中,您可以使用適當的'from future import ...'命令將其切換到功能模式。命令的精確形式留給讀者:-) –

回答

0

好像你正在使用Python 2.我認爲你打算使用Python 3給出您的使用input()print()方法,但代碼將在Python 2通過改變print()方法print關鍵字工作。你的代碼看起來像「適當」下面的代碼* Python 2:

coins = input('Enter amount of change: ') 
print 'Quarters: ' + str(coins // 25) 
coins = coins % 25 
print 'Dimes: ' + str(coins // 10) 
coins = coins % 10 
print 'Nickles: ' + str(coins // 5) 
coins = coins % 5 
print 'Pennies: ' + str(coins) 

希望這對你有幫助!

腳註:使用%比使用字符串連接更受歡迎,但我仍然認爲用這種方式閱讀初學者更容易。

+0

是一個不好的練習用'+'連接str,你可以使用簡單的格式''%s%d'%(string,number)'... ... – kip

+0

@kip添加了一個腳註。 :) – Jerrybibo

1

您可以使用str.format()來產生所需的輸出。例如宿舍:

print('Quarters: {}'.format(coins//25)) 

這將適用於兩個版本的Python。

0

要使用print()語法上python2添加到您的程序頂部:

from __future__ import print_function 

否則蟒蛇會解釋參數print作爲一個元組,你會看到()。

1

我一直使用打印的值在Python 2,這是你似乎是使用Python版本最簡單的方案,如下:

coins=int(input('Enter amount of change: ')) 
print "Quarters: %i" % (coins//25) 
coins = coins%25 
print "Dimes: %i" % (coins//10) 
coins = coins%10 
print "Nickles: %i" % (coins//5) 
coins = coins%5 
print 'Pennies: %i' % (coins//1) 

%符號,用繩子使用時,允許您想要打印的任何值在字符串中被替換。要替換多個值,請用逗號分隔它們。例如:

someInt = 1 
someStr = 'print me!' 
print "The values are %i and %s" % (someInt, someStr) 

此代碼將在someIntsomeStr分別代替%i(用於整數)和%s(用於字符串)。

但是,%符號也用作模運算符,因此它在與字符串一起使用時以及在兩個數中使用它時會做2種不同的操作。

+0

是不是必須在'%'處添加括號到一個參數 – kip

+0

其實,當我沒有包含@kip時,我收到了錯誤。我懷疑它與代碼中'%'後面的分割事實有關,所以括號確保操作按照正確的順序執行。 – ajc2000

+0

是的,你是對的!,我忘記了數學運算,但用一個簡單的數字或字符串是可能的!一些例如:'print'%d'%5' – kip

0

我使用Python 3,以下行正好給你的老師想要什麼:

coins=float(input("Enter amount of change: ")) 
print("Quarters:", round(coins//25)) 
coins = coins%25 
print("Dimes:", round(coins//10)) 
coins = coins%10 
print("Nickels:", round(coins//5)) 
coins = coins%5 
print("Pennies: %.0f" % coins) 
+0

由於整數除法,「round()」是多餘的。 – Jerrybibo

+0

顯然我在2.升級到Python 3,現在我得到了預期的結果。謝謝回覆! –

+0

沒問題,@MasonMoose。希望它有幫助。 – wthimdh

1

請檢查:

coins=input('Enter amount of change: ') 
print "Quarters:",coins//25 
coins = coins%25 
print "Dimes:",coins//10 
coins = coins%10 
print "Nickles:",coins//5 
coins = coins%5 
print "Pennies:",coins//1 
+0

這個答案在Python 3中不起作用,但它絕對是Python 2最簡單的解決方案! – ajc2000

+0

如果你花時間解釋你做了什麼不同,你的答案會更好。否則,任何閱讀您的答案的人都必須將代碼與問題行按字符逐行進行比較。 –