【解决方案1】:

您可以将代码块转换为可以调用的函数。函数调用可以使用特定的数字列表,也可以是用户输入的值,如我编写的以下“原理证明”示例中所示。

import numpy as np
import random as random

def velocity(T2):
    N = 100  #number of loops (random walkers)
    random_walk = np.empty((N,100)) #first element is row, second is column
    for i in range (len(random_walk)):
        U_pos = 0
        U_neg = 0 
        U = U_pos - U_neg
        P_neg = 0.5*(1 - np.tanh(U/(2*T2)))
        P_pos = 0.5*(1 + np.tanh(U/(2*T2)))
        for j in range (len(random_walk[0])):
            random_walk[i][0] = 0
            x = random.random()
            if (x > 0) and (P_neg > x):  
                movement = -1
                U_j = np.random.pareto(2,1)+0.5
                if U_j > U_neg: 
                    U_neg = U_j
                else: 
                    U_neg = U_neg
                U = U_pos - U_neg
                P_neg = 0.5*(1 - np.tanh(U/(2*T2)))
                P_pos = 0.5*(1 + np.tanh(U/(2*T2)))
            else:
                movement = 1
                U_j = np.random.pareto(2,1)+0.5
                if U_j > U_pos:
                    U_pos = U_j
                else: 
                    U_pos = U_pos
                U = U_pos - U_neg
                P_pos = 0.5*(1 + np.tanh(U/(2*T2)))
                P_neg = 0.5*(1 - np.tanh(U/(2*T2)))   
            random_walk[i][j] = random_walk[i][j-1] + movement
        return random_walk
        
while True:
    data = int(input('Please enter a value to evaluate or 0 to exit: '))
    if data == 0:
        break
    print(velocity(data))

以下是该程序示例的一些示例输入和输出。

@Una:~/Python_Programs/Velocity$ python3 Velocity.py 
Please enter a value to evaluate or 0 to exit: 2
[[  0.  -1.  -2. ... -95. -96. -97.]
 [  0.   0.   0. ...   0.   0.   0.]
 [  0.   0.   0. ...   0.   0.   0.]
 ...
 [  0.   0.   0. ...   0.   0.   0.]
 [  0.   0.   0. ...   0.   0.   0.]
 [  0.   0.   0. ...   0.   0.   0.]]
Please enter a value to evaluate or 0 to exit: 14
[[  0.  -1.   0. ... -13. -14. -15.]
 [  0.   0.   0. ...   0.   0.   0.]
 [  0.   0.   0. ...   0.   0.   0.]
 ...
 [  0.   0.   0. ...   0.   0.   0.]
 [  0.   0.   0. ...   0.   0.   0.]
 [  0.   0.   0. ...   0.   0.   0.]]
Please enter a value to evaluate or 0 to exit: 0

这只是您可以做到这一点的一种可能方式,但这应该会让您深思。

希望对您有所帮助。

问候。

【讨论】: