python - TypeError:“str”对象不可调用,我不知道为什么
问题描述
我正在编写一个程序来过滤掉所有不以 1、3、7 或 9 结尾的数字。
我曾尝试将其与 intigers 进行比较,但这可能比我目前正在尝试的更复杂。
import time
import math
num = 1
primes = [2, 3, 5]
upto = int(input("how many primes do you want to find?"))
start_time = time.time()
while True:
num = num + 1
threetest = 0
digits = list(map(int, str(num)))
even = str(digits[0])
num = 1
if even(len(str(num))-1) == "1" or even(len(str(num))-1) == "3" or even(len(str(num))-1) == "7" or even(len(str(num))-1) == "9": #(line 13)
#...
回溯(最后一次调用):文件“C:\test.py”,第 13 行,在 if even(len(str(num))-1) == "1" or even(len(str(num)) -1) == "3" 或偶数(len(str(num))-1) == "7" 或偶数(len(str(num))-1) == "9":
TypeError:“str”对象不可调用
解决方案
您可以改为对每个数字尝试以下算法,而无需转换为字符串:
last_digit = abs(num) % 10
if last_digit in [1, 3, 7, 9]:
# do your stuff...
推荐阅读
- php - 刀片中的 Laravel 格式时间列
- mysql - 如何在 debian:buster 中使用脚本安装 mysql-server 而不会询问任何配置问题?
- javascript - 在 React DevTools 中,我的组件正在重新渲染,但父级没有,并且它的状态/道具没有改变
- python - 在连接处于活动状态时更改 IP(半开连接)
- postgresql - 在嵌套 JSON 中查询没有键的 Postgres 值
- java - (房间数据库)查询错误未返回的字段
- java - Volley jsonArray 传球
- jenkins - Jenkins v2.212:创建扩展解析器类时出错:找不到类
- python - 苹果 | 机器人框架 | 无法使用自定义定位器策略运行关键字来查找元素
- java - Android:在补偿俯仰/倾斜变化时计算正确的方位角(设备不平坦)