如何通过函数传递数组,从而将本地数组存储到 python 中的全局数组中?

问题描述 投票:0回答:0

我有一个函数,它传递 2 个数组,然后再生成 2 个数组。我试图多次重复这个输入数组的以下两个值,所以说输入数组 10 个值,函数将重复 5 次。

我创建了一个有效的函数,但不会循环遍历更长的数组。输入数组是

X=[0,1]
Y[0,2]
只是为了确保代码有效,理想情况下这些数组会更长并且函数会在每个循环中选择每个数组中的下两个值。

import pandas as pd
from cmath import cos
from xml.etree.ElementTree import PI
import matplotlib.pyplot as plt
import math
import numpy as np
import csv

import pandas as pd
df=pd.read_csv("Geas_csv.csv")

#array1=list(df["x"].values) 
#array2=list(df["y"].values) 

radius = .1
X = []
Y = []
X_10 = []
X = [0,1]
Y = [0,2]

def generate_shape(X,Y):
    gradient=(Y[1]-Y[0])/(X[1]-X[0])
    print (gradient)
    normal=-(1/gradient)
    print (normal)

    new_x_coord = [0,0,0,0,0]
    new_y_coord = [0,0,0,0,0]

    print (math.atan(normal))

    print (radius*math.cos(math.atan(normal)))
    print (radius*math.sin(math.atan(normal)))


    new_x_coord[0] = X[0]+radius*math.cos(math.atan(normal))
    new_x_coord[1] = X[0]-radius*math.cos(math.atan(normal))
    new_x_coord[2] = X[1]-radius*math.cos(math.atan(normal))
    new_x_coord[3] = X[1]+radius*math.cos(math.atan(normal))
    new_x_coord[4] = new_x_coord[0]
    print (new_x_coord)

    new_y_coord[0] = Y[0]+radius*math.sin(math.atan(normal))
    new_y_coord[1] = Y[0]-radius*math.sin(math.atan(normal))
    new_y_coord[2] = Y[1]-radius*math.sin(math.atan(normal))
    new_y_coord[3] = Y[1]+radius*math.sin(math.atan(normal))
    new_y_coord[4] = new_y_coord[0]
    print (new_y_coord)
    plt.plot(new_x_coord, new_y_coord)
    plt.plot(X,Y)
    plt.grid()
    plt.show()
    return (new_x_coord, new_y_coord)


generate_shape(X,Y)
python arrays global
© www.soinside.com 2019 - 2024. All rights reserved.