|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
第一个程序总显示int不可以被调用,把sum_primes()里的参数去掉就能正常跑了,这是为什么呢??- import math as m
- def is_primes(number):
- if number >1:
- if number ==2:
- return True
- if number % 2 ==0:
- return False
- for current in range(3, int(m.sqrt(number)+1), 2):
- if number % current == 0:
- return False
- return True
- return False
- def get_primes(num):
- while True:
- if is_primes(num):
- yield num
- num += 1
- def sum_primes(lim):
- total = 0
- for i in get_primes(2):
- if i < lim:
- total += i
- else:
- print(total)
- return
- if __name__ == '__main__':
- range = int(input())
- sum_primes(range)
复制代码- import math as m
- def is_primes(number):
- if number >1:
- if number ==2:
- return True
- if number % 2 ==0:
- return False
- for current in range(3, int(m.sqrt(number)+1), 2):
- if number % current == 0:
- return False
- return True
- return False
- def get_primes(num):
- while True:
- if is_primes(num):
- yield num
- num += 1
- def sum_primes():
- total = 0
- for i in get_primes(2):
- if i < 2000000:
- total += i
- else:
- print(total)
- return
- if __name__ == '__main__':
- sum_primes()
复制代码
你用 range = int(input()) ,会导致 range 函数被你这边赋值给覆盖,失去原有的 range 函数的功能
所以 Python 变量命名时候注意别把 关键字、内置函数登 Python 内置的一系列东西,拿去当作变量名
改下变量名即可了吧:
- import math as m
- def is_primes(number):
- if number >1:
- if number ==2:
- return True
- if number % 2 ==0:
- return False
- for current in range(3, int(m.sqrt(number)+1), 2):
- if number % current == 0:
- return False
- return True
- return False
- def get_primes(num):
- while True:
- if is_primes(num):
- yield num
- num += 1
- def sum_primes(lim):
- total = 0
- for i in get_primes(2):
- if i < lim:
- total += i
- else:
- print(total)
- return
- if __name__ == '__main__':
- temp = int(input())
- sum_primes(temp)
复制代码
|
|