189 8069 5689

python让一个函数运行多次 python循环执行一个函数

定义了一个函数和一个列表,如何让python多线程执行呢,python高手在吗? 告诉我失败原因,如何修改。

提示错误时因为你通过map的话list取的话是一个P1对象,是一个列表,传到P ointsTuple2的话是一整个列表,但是你定义的函数需要5个参数,才会报那样的错,改的方法有两个,下面这个改参数为tuple,在把参数赋值,或者加个中介,希望有帮助

成都地区优秀IDC服务器托管提供商(成都创新互联).为客户提供专业的达州服务器托管,四川各地服务器托管,达州服务器托管、多线服务器托管.托管咨询专线:18982081108

修改成一个参数:

# -*- coding: utf-8 -*-

def PointsTuple2(tuple1):

R,L,ALPHA,M,ANGLE=tuple1

lst=[]

pitch=2.0*np.pi*R/np.tan(np.radians(ALPHA))

pitch1=2.0*np.pi*11.5/np.tan(np.radians(7.16))

newM=int(np.ceil(M*L/pitch))

DtaPitch=0

if pitch pitch1 :

DtaPitch= pitch-pitch1

else:

DtaPitch=0

for i in range(newM):

ii=float(i)

x=R*np.cos(2.0*np.pi*ii/M+np.radians(ANGLE))

y=R*np.sin(2.0*np.pi*ii/M+np.radians(ANGLE))

z=ii*(pitch-DtaPitch)/M

pointCoordinates=(x,y,z)

lst.append(pointCoordinates)

Points=tuple(lst)

print 'PointsNum:',len(Points),'DtaPitch:',DtaPitch,'newM:',newM,'R=%f,pitch=%f'%(R,pitch)

return Points

#

import numpy as np

from multiprocessing.dummy import Pool as ThreadPool

pool = ThreadPool(4)

#

global newM,L1,L2,L3,ALPHA1,M1

L1,L2,L3,ALPHA1,M1,newM=912.0,938.0,991.0,7.16,102.0,0.0

dAngle=12.629916088

ddAngle=(36.0-dAngle)/8.0 #意欲将阴线分为8个网格

tuple1=(11.5,L1,ALPHA1,M1,11.685041956)

Points1=PointsTuple2(tuple1)

tuple2=(11.5,L1,ALPHA1,M1,11.685041956)

Points2=PointsTuple2(tuple2)

#对比多线程

P1=(11.5,912.0,7.16,102.0,11.685041956)

P2=(11.5,L1,ALPHA1,M1,23.954074918)

P3=(11.85,L2,ALPHA1,M1,11.685041956)

P4=(11.85,L2,ALPHA1,M1,23.954074918)

list1=[P1,P2,P3,P4]

results9=pool.map(PointsTuple2,list1)

pool.close()

pool.join()

另外这个运行可能有点问题(google的样本,可以借鉴一下他的写法):

from multiprocessing import Pool

import numpy as np

pool = Pool(processes=2) # I like to calculate only 2 FFTs parallel

# in every time step, therefor 2 processes

def Splitter(args):

'''I have to pass 2 arguments'''

return makeSomething(*args)

def makeSomething(a,b):

'''dummy function instead of the one with the FFT'''

return a*b

def RungeK():

# ...

# a lot of code which create the vectors A and B and calculates

# one Kunge-Kutta step for them

# ...

pool = Pool(processes=2)

n = 20 # Just something for the example

A = np.arange(50000)

B = np.ones_like(A)

for i in xrange(n): # loop over the time steps

A *= np.mean(B)*B - A

B *= np.sqrt(A)

results = pool.map(Splitter, [(A, 3), (B, 2)])

A = results[0]

B = results[1]

pool.close()

print np.mean(A) # Some output

print np.max(B)

if __name__== '__main__':

RungeK()

python 怎么在一个函数中调用同一个函数两次

如果是同一包里面,直接就可以使用,如果不是同一个包,那么需要先import后,通过“包名.类名”才能使用。 下面是同一个包里面的案例: def a(): print(1) def b(): a() print (2) b()

怎样让python多次调用函数.让函数返回的值相加

下面是一个例子,用 for 循环调用 10 次 test 函数,并把返回值加到 sum 变量中:

#coding=utf-8

def test(n):

return n + 1

sum = 0

# 使用 for 循环调用 10 次 test 函数

for i in range(10):

# 调用 test 函数,并将返回值加到 sum 中

sum = sum + test(i)

print('sum = ' + str(sum))

判断题 Python中的函数都可以被重复调用1分) A对 B错?

这个判断题的答案是对的。

在Python中,函数是可以被重复调用的。函数是一种封装的代码块,可以被多次使用。你可以在你的代码中多次调用同一个函数,只需要在代码中写出函数的名字并提供必要的参数即可。

例如,假设你有一个函数"greet()",它打印一个问候语,你可以这样调用它:

def greet(name):

print("Hello, " + name + "!")

greet("Alice") # Output: "Hello, Alice!"

greet("Bob") # Output: "Hello, Bob!"

总的来说,函数是Python中一个很有用的工具,它可以帮助你封装代码,并使你的代码更加可重复使用。

python如何用for循环控制多次执行一个自定义函数?

#脚本里面直接这样写就好了

import random

def R():

print (random.randint(1,1000))

for i in range(1,10):

R()

python 统计 函数运行 次数。

你好:

我对代码做了注释:

#last是一个列表,里面只有一个元素,就是1,说明已经运行一次

def counter(last=[1]):

#last[0]将列表里面的第一个元素取出,然后加1,赋值给next

next = last[0] + 1

#修改列表里面第一个元素的值

last[0] = next

#返回此时运行的次数

return next


本文题目:python让一个函数运行多次 python循环执行一个函数
URL标题:http://jkwzsj.com/article/hjisds.html

其他资讯