擅长:python、mysql、java
<p>在这些情况下,我认为最具<em>Pythonic</em>效果的方法是将可能在try/catch(或try/except)中得到异常的行包装起来,如果得到<code>ValueError</code>异常,则显示适当的消息:</p>
<pre><code>print ("Welcome to August's decimal to binary converter.")
while True:
try:
value = int(input("Please enter enter a positive integer to be converted to binary."))
except ValueError:
print("Please, enter a valid number")
# Now here, you could do a sys.exit(1), or return... The way this code currently
# works is that it will continue asking the user for numbers
continue
</code></pre>
<p>另一个选项(但比处理异常慢得多)是,不立即转换为<code>int</code>,而是使用字符串的<a href="https://docs.python.org/3/library/stdtypes.html#str.isdigit" rel="nofollow">^{<cd3>}</a>方法检查输入字符串是否是数字,如果不是,则跳过循环(使用<a href="https://docs.python.org/3/reference/simple_stmts.html#continue" rel="nofollow">^{<cd4>}</a>语句)。你知道吗</p>
<pre><code>while True:
value = input("Please enter enter a positive integer to be converted to binary.")
if not value.isdigit():
print("Please, enter a valid number")
continue
value = int(value)
</code></pre>