python 求100以内的素数

看了几天Python语法, 写一个小作业。
看代码

for divisor in range(101):
    # range(x) 是 0到x-1 的list 数组
    if divisor < 3:
        # 1 和 2 这两个数先打印出来, 下面的判断直接从 3 开始
        print(divisor)
    else:
        for dividend in range(2, divisor+1):
            # 思路: 用我们取到的数 除以所有比他小的整数, 如果可以整除 则排除这个数是素数的可能性
            result = divisor%dividend
            if result == 0:
                # 可以整除的条件下 判断除数 是不是 等于 被除数,不等于则跳过
                if dividend != divisor:
                    break
                else:
                    #打印正确的结果
                    print(divisor)

先实现效果,我承认代码写得很丑。下一步 打算把它封装成函数。


把上面的代码块 封装成函数的写法
代码如下:

def printPrimeNumber(num:int):
    # 有个疑问, 不能像 c 语言一样 在定义函数的时候就申明好参数的类型么  [经过尝试 可以这样实现]
    # 比如 函数写作 def printPrimeNumber(num:int) 类似这样的写法, 这样我们在调用函数的时候就知道传申明数据类型进来,岂不是很方便!
    # 这里进行 参数类型判断 是不是 int 类型, 如果传入了错误的数据类型 抛出错误
    if not isinstance(num,(int)):
        # 抛出错误 信息, 这里的错误信息可以自定义!
        raise TypeError("输入数据类型错误:必须输入 int 类型")

    for divisor in range(num + 1):
        # range(x) 是 0到x-1 的list 数组
        if divisor < 3:
            # 1 和 2 这两个数先打印出来, 下面的判断直接从 3 开始
            print(divisor)
        else:
            for dividend in range(2, divisor + 1):
                # 思路: 用我们取到的数 除以所有比他小的整数, 如果可以整除 则排除这个数是素数的可能性
                result = divisor % dividend
                if result == 0:
                    # 可以整除的条件下 判断除数 是不是 等于 被除数,不等于则跳过
                    if dividend != divisor:
                        break
                    else:
                        # 打印正确的结果
                        print(divisor)

printPrimeNumber(100)

2017-05-25 从新修改

def printPrimeNumber(num:int):
    #输入类型判断
    if not isinstance(num,int):
        raise TypeError("输入类型错误")
    result = []
    for divisor in range(2,num+1):
        for dividend in range(2,divisor+1):
            if divisor%dividend == 0:
                if dividend != divisor:
                    break
                else:
                    result.append(divisor)
    return result

print(printPrimeNumber(100))
#printPrimeNumber(100)

你可能感兴趣的:(python 求100以内的素数)