【问题标题】:Loop computation - Sum of integers that are devidable循环计算 - 可除整数的总和
【发布时间】:2020-11-27 15:04:54
【问题描述】:

我正在寻找一种方法来计算可以除以 2、3 或 5 的 1 到 20 之间的整数之和。

我创建了一个包含 1 到 20 整数的数组。 Y= np.arange(1, 21, 1)

我知道计算和检查应该在循环中完成,可能是 if 循环检查 Y 是否可以除以 2、3 或 5,然后如果语句为真,则将真实的语句相加。我该怎么做?

我用下面的方法试了,但是有错误

for i in np.arange(1, 21, 1):
    if i%2 ==0:
    print(x=0)
    else 
    print(x=i)

我认为上面的代码会给我一个向量 x,如果它不能除以 to,则范围中的 I 为 0,如果它可以除以 2,则为整数 i 的值。 我该如何解决这个错误?

【问题讨论】:

    标签: python loops if-statement sum integer


    【解决方案1】:

    利用您已经在使用 numpy,您可以执行以下操作:

    def get_divisible_by_n(arr, n):
        return arr[arr%n == 0]
    
    x = np.arange(1,21)
    
    get_divisible_by_n(x, 2)
    #array([ 2,  4,  6,  8, 10, 12, 14, 16, 18, 20])
    
    get_divisible_by_n(x, 5)
    #array([ 5, 10, 15, 20])
    

    一个数除以 n 的条件是number%n == 0。当您执行 arr[arr%n == 0] 时,您将条件应用于数组的每个位置。

    【讨论】:

      【解决方案2】:

      你可以使用模运算符:

      5%5 = 0
      5%3=2
      4%2 = 0
      

      所以只要 x % n 不等于 0 就不能整除

      【讨论】:

        【解决方案3】:

        如何检查一个数是否可​​以被另一个数整除?简单,只需使用% 运算符检查 a 除以 b 的余数是否为零,检查 here

        例子:

        def is_dividable_by_2(n):
            return bool(n % 2 == 0)
        
        
        num = 5
        
        if is_dividable_by_2(num):
            print('%s is dividable by two' % num)
        else:
            print('%s is not dividable by two' % num)
        
        num = 4
        if is_dividable_by_2(num):
            print('%s is dividable by two' % num)
        else:
            print('%s is not dividable by two' % num)
        

        输出:

        $ python dividable.py 
        5 is not dividable by two
        4 is dividable by two
        

        【讨论】:

          猜你喜欢
          • 2015-12-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-01-19
          • 1970-01-01
          • 1970-01-01
          • 2023-04-03
          相关资源
          最近更新 更多