【问题标题】:I'm trying to create an array with random integers, then reverse the array我正在尝试用随机整数创建一个数组,然后反转数组
【发布时间】:2020-11-10 08:16:06
【问题描述】:

这是完整的问题:创建一个数组来存储 1 到 40 之间的 5 个随机整数。打印给定数组中所有元素的总和和平均值。最后,向后打印数组!

这是我目前所拥有的:

import random
print("12 random numbers between 5 and 50")
randNumbers = random.randint(5, 50)
num1=randNumbers(1)
print(num1)
randNumbers.reverse()
for element in randNumbers:
  print(element)
sum=sum+nums
avg=(round(sum/n,3))
if (nums%2==0):
  even+=1
else:
  odd+=1
print("\nSum: ",sum)
print("Average: ",round(avg,1))

我是编码新手,我不确定如何解决它。如有任何帮助,我将不胜感激!

【问题讨论】:

  • 您不知道如何解决?怎么了?
  • SO 不是完成作业的平台

标签: python arrays random reverse


【解决方案1】:

根据您的书面提示,这里有一个解决方案:

import random

# five rand int between 1 and 40
randNumbers = [random.randint(1, 40) for _ in range(5)]
print(randNumbers)

# print sum stored in randNumbers
print(sum(randNumbers))

# print avg stored in randNumbers
print(sum(randNumbers)/len(randNumbers))

# print array backwards
print(randNumbers[::-1])

【讨论】:

    【解决方案2】:

    这是文本中问题的答案,但它与您的代码不匹配,所以希望这就是您想要的。

    import random
    
    print("12 random numbers between 5 and 50")
    randNumbers = []
    for i in range(0, 12):
        randNumbers.append(random.randint(1, 40))
    
    print("Original: " + str(randNumbers))
    print("Sum: " + str(sum(randNumbers)))
    print("Average: " + str(sum(randNumbers) / len(randNumbers)))
    
    randNumbers.reverse()
    print("Reversed: " + str(randNumbers))
    

    【讨论】:

      【解决方案3】:

      详细的回答

      import random
      
      print("12 random numbers between 5 and 50")
      randNumbers = [] # initialize an empty array
      for i in range(5): # create 5 times..
          randNum = random.randint(1, 40) # ..a random number between 1 and 40
          randNumbers.append(randNum) # then add it to the array
      print(f"array is {randNumbers}")
      
      # Print sum of the elements of array
      s = 0 # initialize the sum s to 0
      for element in randNumbers:
          s = s + element # add each element of the array to the sum s
      print(f"sum is {s}")
      
      # Print the average
      size = len(randNumbers) # the size of the array
      average = s / size # the average of the array
      print(f"average is {average}")
      
      # Print the array backwards
      backed = []
      for i in range(1, size+1):
          backed.append(randNumbers[-i])
      print(f"backward array is{backed}")
      

      简答:

      import random
      
      randNumbers = [random.randint(1, 40) for i in range(5)]
      print(f"array is {randNumbers}")
      
      s = sum(randNumbers)
      print(f"sum is {s}")
      
      avg = s / len(randNumbers)
      print(f"average is {avg}")
      
      backed = list(reversed(randNumbers))
      print(f"backward array is{backed}")
      

      【讨论】:

      • 我不断收到“TypeError: 'int' object is not callable”
      • 是的,这就是您在第 4 行得到的结果,因为上一行的 random.randint(.., ..) 返回一个整数而不是数组。你也可以使用括号 [ ] 而不是括号 ( ) 来访问数组中的元素,如果那是一个数组的话。
      【解决方案4】:

      我强烈建议您将 numpy 库用于所有这些数学运算。

      代码:

      import numpy as np
      rand_nums = np.random.randint(1,40,5)
      print(f"Random integer array: {rand_nums}")
      print(f"Sum: {rand_nums.sum()}")
      print(f"Average: {rand_nums.mean()}")
      print(f"Backwards array: {rand_nums[::-1]}")
      

      【讨论】:

        猜你喜欢
        • 2023-03-15
        • 1970-01-01
        • 1970-01-01
        • 2020-10-21
        • 2016-02-02
        • 2021-08-23
        • 1970-01-01
        • 1970-01-01
        • 2013-01-03
        相关资源
        最近更新 更多