<p>如果忽略句末的<code>1630</code>,<code>str.replace</code>只需替换整行的单词,而无需按单词进行拆分。你知道吗</p>
<p>如果您还想添加十进制数,则需要逐个字符,这将增加代码的复杂性。你知道吗</p>
<pre><code>dictZero = [ "zero", "none", "null", "nil" ]
dictOne = [ "juan", "one", "won" ]
dictTwo = [ "two", "to", "too", "tu" ]
dictThree = [ "three" ]
dictFour = [ "four", "fore", "for" ]
userInput = input ( "Enter your sentence to inflate: " )
for i in dictFour:
userInput = userInput.replace(i, 'five')
for i in dictThree:
userInput = userInput.replace(i, 'four')
for i in dictTwo:
userInput = userInput.replace(i, 'three')
for i in dictOne:
userInput = userInput.replace(i, 'two')
for i in dictZero:
userInput = userInput.replace(i, 'one')
output = ''
num = ''
for c in userInput: # Going char by char to find decimal values
if c.isdigit(): # is this char a digit?
num += c # if so remember it
else:
if num: # if we just found a whole number
output += str(int(num) + 1) # add 1 and append the string
num = ''
output += c # Append any non-decimal character
print(output)
</code></pre>
<p>输入:</p>
<blockquote>
<p>Before we begin to do anything at 1630.</p>
</blockquote>
<p>输出:</p>
<blockquote>
<p>Befive we begin three do anything at 1631.</p>
</blockquote>
<p>请注意,这不会在字符串中添加<code>float</code>或负值,只添加<code>int</code>s</p>