Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 结合2个功能_Python_Function - Fatal编程技术网

Python 结合2个功能

Python 结合2个功能,python,function,Python,Function,我试图将两个功能结合起来,因为A)我认为我可以,B)我认为我应该。当我单独使用这些函数时,脚本工作得很好。当我组合它们时,“new”变量是一个空字符串,而不是它应该是什么。任何帮助都将不胜感激。如果你需要完整的脚本,可以安排 职能A: def strip_domain_name(x): global ns l = x.find('@') ns = x[0:l] 职能B: def encode_user_name(x,y): global new for

我试图将两个功能结合起来,因为A)我认为我可以,B)我认为我应该。当我单独使用这些函数时,脚本工作得很好。当我组合它们时,“new”变量是一个空字符串,而不是它应该是什么。任何帮助都将不胜感激。如果你需要完整的脚本,可以安排

职能A:

def strip_domain_name(x):
    global ns
    l = x.find('@')
    ns = x[0:l]
职能B:

def encode_user_name(x,y):
    global new
    for a in x:
        if a in y:
            new = new + y.get(a)
功能A+B:

def combined_above_script(x,y,z):
    global ns
    global new  
    l = x.find('@')
    ns = x[0:l] 
    for a in y:
        if a in z:                  
            new = new + z.get(a)
这里是我尝试做的一个简化版本,根据blender的建议做了一些修改。最后,如果我打印aa,结果应该是“0000000”。事实并非如此

aa = ''
bb = ''
encode = {'a':'0'}

def strip_and_encode(x,y,z):
aa = '' 
bb = x[0:x.find('@')]   

for a in y:
    if a in z:                  
        aa += z.get(a)

s='aaaaaaa@aaa'
strip_and_encode(s,bb,encode)
print(aa)

我会和环球队轻松相处:

def script(x, y, z):
  new = ''
  ns = x[:x.find('@')]

  for a in y:
    if a in z:                  
      new += z.get(a)

你想干什么?函数_1似乎只返回字符串(?)中第一个“@”符号之前的部分。函数_2看起来像是返回x和y的交集。在您的组合脚本中,我无法说出函数_1部分和函数_2部分之间的相互关系。为什么是环球?将变量命名为“new”可能不是一个好主意,因为这是一个关键字。@Chris Curvey:“new”不是Python关键字。您的函数可能会返回一些内容。考虑到原始问题中全局变量的过度使用,海报可能需要在其中添加一个
return new
。我还需要制作
脚本()
更具描述性;)更新以反映建议。