[英]Find four digit numbers from a string and then print numbers which are primes
我有這段代碼可以從字符串中找到四位數字:
import re
pattern = re.compile(r"[1-9]\d{3}")
numbers = '0922035963126927190699198371937793731321758941428'
four_digits = pattern.findall(numbers)
我的 output 是:
['9220', '3596', '3126', '9271', '9069', '9198', '3719', '3779', '3731', '3217', '5894', '1428']
然后從 output 列表中我只想打印素數。 我嘗試使用此代碼:
def prime_factor(four_digits):
prime = []
for i in four_digits:
flag = 0
if i==1:
flag=1
for j in range(2,i):
if i%j == 0:
flag = 1
break
if flag ==0:
prime.append(i)
return prime
但它作為錯誤返回:
line 13, in prime_factor
for j in range(2,i):
TypeError: 'str' object cannot be interpreted as an integer
我做錯了什么,有沒有更好的方法來完成這項任務?
代替:
four_digits = pattern.findall(numbers)
經過:
four_digits = [int(p) for p in pattern.findall(numbers)]
將您的字符串列表轉換為 int 列表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.