擅长:python、mysql、java
<p>问题是,您的程序假设从URL请求中获得的是一个数字形式的数字,后跟后缀(K、M或B)。这不是测试。在</p>
<p>还有两个改进代码的建议。首先,你要试试。。。except子句在无法获取数据时进行检查。如果转换失败,也可以使用它。消息“没有此公司的数据”可以打印在except子句中。在</p>
<p>其次,你有三个非常相似的if从句,说明它们可以被压缩。python字典可用于后缀值。在</p>
<pre><code>SUFFIX_VALUES = { 'K': 1000.0, 'M': 1000000.0, 'B': 1000000000.0 }
try:
# taken from your code
revenue2 = soup.find("td", text="Revenue(ttm):").find_next_sibling("td").text
empCount2 = soupemp.find("td", text="Full Time Employees:").find_next_sibling("td").text
revNum = float(revenue2[:-1])
empNumber = empCount2.replace(",", "")
decimal = float(empNumber)
lastLetter = revenue2[-1]
final = revNum * SUFFIX_VALUES[lastLetter]
revPerEmp = final/decimal
print("%s: %d" % (ticker, revPerEmp))
except:
print(ticker + ": There is no data for this company")
</code></pre>
<p>现在,如果URL请求中缺少数据,如果转换失败,或者后缀错误,程序将执行except子句。在</p>