python - 打印是 3 的幂的数字。我可以更好地编写这个程序吗?
问题描述
file = open('funny_file.txt', 'r')
list = []
for i in file:
list.append(int(i[:-1]))
print(len([num for num in list for i in range(100) if num == 3**i]))
结果很好,但我可以用其他更简单的方法吗?
解决方案
我假设“3的平方”,你的意思是3的幂。
我建议您修改您的印刷声明中发生的一些事情。通常,当您对实现特定结果感兴趣时,为它创建一个单独的函数来封装该功能是有意义的。在这种情况下,它可能是一个函数,告诉我们它的输入是否是 3 的幂。使用以三为底的对数,您应该能够提出该函数的实现。
推荐阅读
- c++ - 旧的 alloctaor::construct 与新的和显式构造函数之间有什么区别?
- laravel - Laravel如何用盐创建sha256哈希
- kubernetes - 即使未达到 Pod 限制,Pod 内的进程也会被 OOMKilled
- reactjs - 独立 APIService 需要访问 redux 或 NextJS ctx 以获取令牌
- android - 将 0.51 升级到 0.64 后,React Native Android 构建失败
- pyspark-dataframes - 在数据框内的数组中选择结构字段
- kubernetes - nslookup 无法解析 Kubernetes.default
- reactjs - 如果我将 Async Await 与反应生命周期特别与 ComponentDidMount 一起用于 api 调用,这是正确的概念吗?
- javascript - foreach 循环正在改变原始值
- curl - 如何使用 API 和 CURL 将文件夹上传到 bitbucket 存储库