擅长:python、mysql、java
<p>有几件事:</p>
<ul>
<li><p>您应该避免使用变量名<code>str</code>,因为这是由内置项使用的,所以我将其更改为<code>st</code></p>
</li>
<li><p>在第一部分中,不需要循环<code>replace</code>将替换子字符串的所有出现次数</p>
</li>
<li><p>对于最后一部分,在字符串中循环并构建新字符串可能是最容易的。将这个答案限制在基本语法上,一个简单的<code>for</code>循环就可以了</p>
</li>
</ul>
<pre><code>st = input()
st=st.lower()
st=st.replace('a','')
st=st.replace('e','')
st=st.replace('o','')
st=st.replace('i','')
st=st.replace('u','')
print(st)
st_new = ''
for c in st:
st_new += '.' + c
print(st_new)
</code></pre>
<p>另一个潜在的改进:对于第二部分,您还可以编写一个循环(而不是五行单独的<code>replace</code>):</p>
<pre><code>for c in 'aeiou':
st = st.replace(c, '')
</code></pre>
<hr/>
<p>使用更先进技术的其他可能性:</p>
<ul>
<li><p>对于第二部分,可以使用正则表达式:</p>
<ul>
<li><code>st = re.sub('[aeiou]', '', st)</code></li>
</ul>
</li>
<li><p>对于第三部分,可以使用生成器表达式:</p>
<ul>
<li><code>st_new = ''.join(f'.{c}' for c in st)</code></li>
</ul>
</li>
</ul>