TypeError:“ str”对象不可调用,我也不知道为什么

时间:2019-06-27 11:10:17

标签: python

我正在编写一个程序,以过滤掉所有不以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行,在          如果even(len(str(num))-1)==“ 1”或even(len(str(num))-1)==“ 3”或even(len(str(num))-1)= =“ 7”甚至(len(str(num())-1)==“ 9”:

     

TypeError:“ str”对象不可调用

1 个答案:

答案 0 :(得分:0)

您可以为每个数字尝试以下算法,而不必转换为字符串:

last_digit = abs(num) % 10

if last_digit in [1, 3, 7, 9]:
    # do your stuff...