簡體   English   中英

從字符串中找到四位數字,然后打印素數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM