0
我正在使用Python和Tkinter创建GUI,并且遇到了问题。使用多引号调用字符串
存在一个串输入,诸如“PP,PKP”和我需要使用该输入,如所示的下列功能:
arrivals = model.get_ray_paths(
... source_depth_in_km=500,
... distance_in_degree=130,
... phase_list=["Pdiff", "Sdiff", "pPdiff", "sSdiff"])
其中在get_ray_paths功能,phase_list必须由一个或多个字符串,表示您想要光线路径的地震阶段的类型。
我的问题是,我如何使用输入(用户在GUI中提供的),并用适当的phase_list格式调用那些输入,每个阶段都带有引号,并用逗号分隔每个阶段?
目前,输入被设置成这样:
# Create the Phase Input Box
phasetext = Label(top,text='Input Seismic Phase', fg="black", font=('Helvetica', 16,'bold'))
phasetext.pack(side='top')
global phase
self.phase = StringVar()
self.phase.set('PP')
self.phase_entry = Entry(top, width=10, textvariable=self.phase)
self.phase_entry.pack(side='top')
和我称这样的功能的输入:
def plot_raytrace(self, event=None):
model = TauPyModel(model="iasp91")
arrivals = model.get_ray_paths(source_depth_in_km=float(self.depth.get()), distance_in_degree=float(self.deg.get()), phase_list=[self.phase.get()])
arrivals.plot()
如果我只输入一个相,例如上述, 'PP',这个工作,但如果输入是说, 'PKP', 'PP',我收到以下错误:
Traceback (most recent call last):
File "Ray_Trace_Plot.py", line 77, in <module>
Ray_Trace = Ray_Tracer(root)
File "Ray_Trace_Plot.py", line 28, in __init__
self.phase.set('PKP','PP')
TypeError: set() takes exactly 2 arguments (3 given)
上^ h任何想法通过引号和逗号重新创建一个字符串输入的格式?谢谢。
您的意思是''PKP,PP'? “PKP”,“PP”是两个字符串。 –
是的,但最后我需要函数get_ray_paths来为阶段列表输入phase_list = [“Pdiff”,“Sdiff”,“pPdiff”,“sSdiff”]) –