You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python报错‘set对象无rstrip属性’及素数相关代码问题排查

解决Python代码中的'set' object has no attribute 'rstrip'错误及功能完善

首先咱们先揪出报错的核心原因:你代码里出现了变量名拼写错误!你读文件后把素数列表存在了alsayilar里,但在maxasal函数里却误用了asalsayilar——如果这个asalsayilar是个集合(比如你之前不小心定义过),那调用它元素的rstrip()方法自然会报错,因为集合类型根本没有这个字符串处理方法。

接下来咱们一步步修复并完善代码:

1. 修正变量名错误

把函数里的asalsayilar统一改成alsayilar,保证变量名全程一致,这是解决报错的关键。

2. 替换递归为循环,避免栈溢出

原来的递归写法如果素数数量较多,会触发Python的递归深度限制报错,换成循环写法更稳妥、更易维护。

3. 补全未完成的minasal函数

这个函数的逻辑应该是收集大于等于mindeger的素数,咱们把它补全并优化。

4. 优化全局变量使用(可选)

尽量避免使用全局变量,把参数传入函数的写法更符合Python的编码规范。

修复后的完整代码

from random import randint
import os

def get_primes_from_file(file_path):
    # 读取文件中的素数,处理换行符并转成整数存储
    with open(file_path, "r") as dosya:
        return [int(line.rstrip('\n')) for line in dosya.readlines()]

def get_min_primes(primes, min_val):
    # 收集大于等于min_val的素数
    min_primes = []
    for p in primes:
        if p >= min_val:
            min_primes.append(p)
        else:
            continue
    return min_primes

def get_max_primes(primes, max_val):
    # 收集小于等于max_val的素数(素数文件按升序排列时可加break优化)
    max_primes = []
    for p in primes:
        if p <= max_val:
            max_primes.append(p)
        else:
            break  # 素数有序的话,后面的数更大,直接终止循环
    return max_primes

def find_common_primes(list1, list2):
    # 找出两个素数列表的交集
    return list(set(list1) & set(list2))

# 主逻辑执行部分
if __name__ == "__main__":
    path = os.path.abspath('')
    primes = get_primes_from_file(os.path.join(path, "asaldb.txt"))
    
    mindeger = int(input("Minumum Değer Kaç ? "))
    maxdeger = int(input("Maximum Değer Kaç ? "))
    
    minasallar = get_min_primes(primes, mindeger)
    maxasallar = get_max_primes(primes, maxdeger)
    ortakasal = find_common_primes(minasallar, maxasallar)
    
    print(f"Belirtilen aralıkta bulunan asal sayılar: {ortakasal}")

额外优化说明

  • 用with语句打开文件,会自动关闭文件,避免资源泄漏问题
  • 读取素数时直接转成整数,后续操作不用反复类型转换,更高效
  • 如果你的asaldb.txt里的素数是按从小到大排序的,get_max_primes里的break可以大幅提升执行速度
  • 用集合操作找交集更简洁,最后转回列表保持输出格式一致

内容的提问来源于stack exchange,提问作者Ömer Faruk Boran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:46:21