I want to define a function like this:

n_H  = 0.9 # constant . 
x     = np.array([16.7, 16.5, 16.1, 15, 13.5,14.2, 14.9, 13.7])# example to test
D      = np.array([0, 1, 4, 7, 16, 31, 64, 127])

Sec_nucli = []
x         = []
D         = []
Sec_nucli[i]=  n_H *D[i]* x[i]

where x, D are variables come from another functions, I put it as an array(just as a test here!!).
What I want is to make a for loop for the function Sec_nucli, that every time I use deferent value for x,D, and Sec_nucli. For that reson I put [i], infront of these variable(I dont know how can I write it)?!!. Could you please help me to write the function correctly?
Thank you for your help.

Recommended Answers

All 3 Replies

I have tried this :

x     = np.array([16.7, 16.5, 16.1, 15, 13.5,14.2, 14.9, 13.7])# an example
D      = np.array([0, 1, 4, 7, 16, 31, 64, 127])# example
n_H = 0.9
Sec_nucli = []
x         = []
D         = []

for i in range(1,n): 
      Sec_nucli[i] =  n_H * D * xsec[i]
      sec_nucli += sec_nucli[i]
      return sec_nucli
## I defined the function like this:
def Fragmentation():
    n_H = 0.9
    Sec_nucli[i]=  n_H *D* x[i]
    return Sec_nucli

In this other way the code seems to work:

x = [16.7, 16.5, 16.1, 15, 13.5,14.2, 14.9, 13.7] # an example
D = [0, 1, 4, 7, 16, 31, 64, 127] # example
n_H = 0.9
Sec_nucli = 0

## I defined the function like this:
def Fragmentation(D,x):
    s_nucli = n_H * D * x
    return s_nucli

for xi in x: 
    for Dj in D:
      print(xi, Dj)
      Sec_nucli += Fragmentation(xi,Dj)
      print(Sec_nucli)

Thank you @xjr.If I want to add one parameter to the function and save the out put(sec_nucli) in a text file for example, I have try this:

Sec_nucli = 0
def Fragmentation(v,D,xsec):
    sec_nucli = v * n_H * D * xsec
    return sec_nucli

file=open("Secondary.txt", "a")     
for xi in xsec: 
    for Dj in D:
       print(xi, Dj)
     for vj in v:
       Sec_nucli += Fragmentation(vi,Dj, xi)
       print(Sec_nucli)
       s = str(Fragmentation(xi))
       file.write(s + "\n")
file.close()

Dose this correct!! .
Thank you very much for your help

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.