2017-02-10 24 views
1

我試圖在冒號前後找到輸入用戶的整數的值。我已經想出瞭如何檢索第一個值,但是如果冒號後的值超過一個字符,它將只抓取第一個值。在冒號後面查找int(Python)

startingWeight = input(("Starting weight of food (in lbs:ozs)=")) 
endingWeight = input(("Ending weight of food (in lbs:ozs=")) 

startingWeightPos = startingWeight.find(":") 
endingWeightPos = endingWeight.find(":") 

startingWeightPounds = startingWeight[0:startingWeightPos] 
startingWeightOz = startingWeight[1:startingWeightPos] 

endingWeightPounds = endingWeight[0:endingWeightPos] 
endingWeightOz = endingWeight[1:endingWeightPos] 

print (startingWeightPounds) 
print (endingWeightPounds) 
print (startingWeightOz) 
print (endingWeightOz) 
+0

切片應該是'[:pos]'和'[pos + 1:]'。或者你可以使用['split'](https://docs.python.org/2/library/stdtypes.html#str.split)。 – khelwood

+0

你可以在字符串上執行'.split(「:」)' – WhatsThePoint

回答

0

使用split獲得什麼是對的左邊和:的右側。

text = '100:66' 
text_split = text.split(":") 

lbs = text_split[0] 
ozs = text_split[1] 

如果您願意,可以使用float()將它們轉換爲浮點數。

0

如果你想使用切片,兩片將[:pos](一切都交給pos)和[pos+1:]pos後一切)。

E.g.

pos = pounds.index(':') 
pounds = weight[:pos] 
oz = weight[pos+1:] 

split函數的存在使這更簡單。

pounds, oz = weight.split(':')