擅长:python、mysql、java
<p>我认为你可以用一种更简单和“更像Python”的方式来做。在</p>
<pre><code>full_name = input("Enter your first, middle, and last name: ")
print(''.join([ch[0].upper() + '.' for ch in full_name.split()]))
</code></pre>
<p><strong>解释</strong></p>
<p>不必对名称的每个字母执行<code>for</code>循环,而是可以使用<a href="https://docs.python.org/3/library/stdtypes.html#str.split" rel="nofollow noreferrer">split()</a>函数来确保在没有多余空格的情况下处理每个单词。在</p>
^{pr2}$
<p>现在,您尝试验证第一个字母是否是<code>uppercase</code>,但是如果用户没有<code>uppercase</code>输入他的名字,那么您的函数就不能工作了。一个更简单的解决方案是提取单词<code>ch[0]</code>的第一个字母并自动添加一个<code>uppercase</code>:<code>ch[0].upper()</code></p>
<p>也许一行代码的解决方案令人困惑,但是当解决方案易于阅读时,大多数python开发人员使用<a href="https://docs.python.org/3/tutorial/datastructures.html#list-comprehensions" rel="nofollow noreferrer">^{<cd7>}</a>循环而不是{<cd1>}循环。在</p>
<p><strong>编辑</strong></p>
<p>还有一件事,即使您正在编写一个简单的函数,例如打印名称的首字母,您也应该始终相应地编写测试。在</p>
<p>一个好的开始方法是使用<a href="https://docs.python.org/3.6/library/doctest.html#module-doctest" rel="nofollow noreferrer">doctests</a>,因为它强迫您描述函数的功能。即使你认为这是浪费时间,但当你的程序越来越大时,它有助于克服许多问题。如果你想写你的第一篇文章,我很乐意帮助你</p>