Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.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 如何从for循环中迭代的函数返回值_Python_Function_Return - Fatal编程技术网

Python 如何从for循环中迭代的函数返回值

Python 如何从for循环中迭代的函数返回值,python,function,return,Python,Function,Return,我正在尝试编写一个程序,它将接受用户的输入(在本例中,用户从列表中选择同位素),将其与列表匹配,然后打印同位素及其半衰期。这一切都很完美,除了我无法使用与for循环外的输入匹配的半衰期。我尝试将其封装在函数中以返回结果,但我所做的一切似乎都不起作用。代码如下: i=0 iso = list(["Oxygen-22", 2.25, "Carbon-15", 2.45, "Flevorium-289", 2.6, "Oxygen-21", 3.42, "Nitrogen-17", 4.17, "Be

我正在尝试编写一个程序,它将接受用户的输入(在本例中,用户从列表中选择同位素),将其与列表匹配,然后打印同位素及其半衰期。这一切都很完美,除了我无法使用与for循环外的输入匹配的半衰期。我尝试将其封装在函数中以返回结果,但我所做的一切似乎都不起作用。代码如下:

i=0
iso = list(["Oxygen-22", 2.25, "Carbon-15", 2.45, "Flevorium-289", 2.6, "Oxygen-21", 3.42, "Nitrogen-17", 4.17, "Beryllium-14", 4.84, "Nitrogen-16", 7.13, "Oxygen-20", 13.5, "Beryllium-11", 13.8, "Carbon-10", 19.3, "Oxygen-19", 26.5, "Dubnium-261", 27, "Seaborgium-266", 30, "Dubnium-262", 34]);

print("Please select from the below list of isotopes:");
while i < len(iso):
  print iso[i];
  i = i + 2;

def search(x,y):
  u_iso = input("Enter selection:");
  for x in range(len(iso)):
    if u_iso == iso[x]:
      y = x+1;
      print("Isotope:",iso[x],"Half-life:", iso[y],"seconds");
    else:
      x=x+2;
    if u_iso not in iso:
      x=0;
      u_iso = input("Enter selection again:");
      if u_iso == iso[x]:
        y = x+1;
        print("Isotope:",iso[x],"Half-life:", iso[y],"seconds");
      else:
        x=x+2;
  return x, y;

search(0,0);
print x,y;
i=0
iso=列表([“氧-22”、2.25、“碳-15”、2.45、“氟-289”、2.6、“氧-21”、3.42、“氮-17”、4.17、“铍-14”、4.84、“氮-16”、7.13、“氧-20”、13.5、“铍-11”、13.8、“碳-10”、19.3、“氧-19”、26.5、“铍-261”、27、“海硼锗”266、“铍-262”、34]);
打印(“请从下面的同位素列表中选择:”);
而i
欢迎来到Stackoverflow。实际上,您没有保存函数返回的值,因此无法使用它们。 如果希望通过函数获取返回值,可以将其保存在两个变量中,然后可以打印它们

i=0
iso = list(["Oxygen-22", 2.25, "Carbon-15", 2.45, "Flevorium-289", 2.6, "Oxygen-21", 3.42, "Nitrogen-17", 4.17, "Beryllium-14", 4.84, "Nitrogen-16", 7.13, "Oxygen-20", 13.5, "Beryllium-11", 13.8, "Carbon-10", 19.3, "Oxygen-19", 26.5, "Dubnium-261", 27, "Seaborgium-266", 30, "Dubnium-262", 34]);

print("Please select from the below list of isotopes:");
while i < len(iso):
  print iso[i];
  i = i + 2;

def search(x,y):
  u_iso = input("Enter selection:");
  for x in range(len(iso)):
    if u_iso == iso[x]:
      y = x+1;
      print("Isotope:",iso[x],"Half-life:", iso[y],"seconds");
    else:
      x=x+2;
    if u_iso not in iso:
      x=0;
      u_iso = input("Enter selection again:");
      if u_iso == iso[x]:
        y = x+1;
        print("Isotope:",iso[x],"Half-life:", iso[y],"seconds");
      else:
        x=x+2;
  return x, y;

p,q = search(0,0);
print p,q;
i=0
iso=列表([“氧-22”、2.25、“碳-15”、2.45、“氟-289”、2.6、“氧-21”、3.42、“氮-17”、4.17、“铍-14”、4.84、“氮-16”、7.13、“氧-20”、13.5、“铍-11”、13.8、“碳-10”、19.3、“氧-19”、26.5、“铍-261”、27、“海硼锗”266、“铍-262”、34]);
打印(“请从下面的同位素列表中选择:”);
而i

如果您有进一步的疑问,请与我分享,我希望它能如您所愿发挥作用 欢迎来到Stackoverflow。实际上,您没有保存函数返回的值,因此无法使用它们。 如果希望通过函数获取返回值,可以将其保存在两个变量中,然后可以打印它们

i=0
iso = list(["Oxygen-22", 2.25, "Carbon-15", 2.45, "Flevorium-289", 2.6, "Oxygen-21", 3.42, "Nitrogen-17", 4.17, "Beryllium-14", 4.84, "Nitrogen-16", 7.13, "Oxygen-20", 13.5, "Beryllium-11", 13.8, "Carbon-10", 19.3, "Oxygen-19", 26.5, "Dubnium-261", 27, "Seaborgium-266", 30, "Dubnium-262", 34]);

print("Please select from the below list of isotopes:");
while i < len(iso):
  print iso[i];
  i = i + 2;

def search(x,y):
  u_iso = input("Enter selection:");
  for x in range(len(iso)):
    if u_iso == iso[x]:
      y = x+1;
      print("Isotope:",iso[x],"Half-life:", iso[y],"seconds");
    else:
      x=x+2;
    if u_iso not in iso:
      x=0;
      u_iso = input("Enter selection again:");
      if u_iso == iso[x]:
        y = x+1;
        print("Isotope:",iso[x],"Half-life:", iso[y],"seconds");
      else:
        x=x+2;
  return x, y;

p,q = search(0,0);
print p,q;
i=0
iso=列表([“氧-22”、2.25、“碳-15”、2.45、“氟-289”、2.6、“氧-21”、3.42、“氮-17”、4.17、“铍-14”、4.84、“氮-16”、7.13、“氧-20”、13.5、“铍-11”、13.8、“碳-10”、19.3、“氧-19”、26.5、“铍-261”、27、“海硼锗”266、“铍-262”、34]);
打印(“请从下面的同位素列表中选择:”);
而i

如果您有进一步的疑问,请与我分享,我希望它能如您所愿发挥作用 当您有一个Key:Value对时,最好使用Dictionary 词典文献

顺便说一下,我把你的代码转换成了字典

iso = {}

iso = {"Oxygen-22" : 2.25, "Carbon-15" : 2.45, "Flevorium-289" : 2.6, "Oxygen-21" : 3.42, "Nitrogen-17" : 4.17, "Beryllium-14" : 4.84, "Nitrogen-16" : 7.13, "Oxygen-20" : 13.5, "Beryllium-11" : 13.8, "Carbon-10" : 19.3, "Oxygen-19" : 26.5, "Dubnium-261" : 27, "Seaborgium-266" : 30, "Dubnium-262" : 34}

u_iso = input("Enter selection:");

print(u_iso,end=" ")

print(iso[u_iso])
输出是,

Enter selection: Oxygen-19

Oxygen-19 26.5

当您有一个Key:Value对时,最好使用Dictionary 词典文献

顺便说一下,我把你的代码转换成了字典

iso = {}

iso = {"Oxygen-22" : 2.25, "Carbon-15" : 2.45, "Flevorium-289" : 2.6, "Oxygen-21" : 3.42, "Nitrogen-17" : 4.17, "Beryllium-14" : 4.84, "Nitrogen-16" : 7.13, "Oxygen-20" : 13.5, "Beryllium-11" : 13.8, "Carbon-10" : 19.3, "Oxygen-19" : 26.5, "Dubnium-261" : 27, "Seaborgium-266" : 30, "Dubnium-262" : 34}

u_iso = input("Enter selection:");

print(u_iso,end=" ")

print(iso[u_iso])
输出是,

Enter selection: Oxygen-19

Oxygen-19 26.5

你可以试试这个简单的方法

iso =["Oxygen-22","2.25", "Carbon-15","2.45", "Flevorium-289","2.6", "Oxygen- 
21","3.42", "Nitrogen-17","4.17", "Beryllium-14","4.84", "Nitrogen-16","7.13", 
"Oxygen-20","13.5", "Beryllium-11","13.8", "Carbon-10","19.3", "Oxygen-19", 
"26.5", "Dubnium-261","27", "Seaborgium-266", "30", "Dubnium-262", "34"]
print("Please select from the below list of isotopes: ")
i=0
while i < len(iso):
   print(iso[i])
   i = i + 2
def search():
    u_iso = input("Enter selection: ")
    for x in range(len(iso)):
        if u_iso == iso[x]:
            y = x+1
                print("Isotope:"+iso[x]+"Half-life:"+ iso[y]+"seconds")
            else:
                pass (or) print("Isotope not found")
search()

你可以试试这个简单的方法

iso =["Oxygen-22","2.25", "Carbon-15","2.45", "Flevorium-289","2.6", "Oxygen- 
21","3.42", "Nitrogen-17","4.17", "Beryllium-14","4.84", "Nitrogen-16","7.13", 
"Oxygen-20","13.5", "Beryllium-11","13.8", "Carbon-10","19.3", "Oxygen-19", 
"26.5", "Dubnium-261","27", "Seaborgium-266", "30", "Dubnium-262", "34"]
print("Please select from the below list of isotopes: ")
i=0
while i < len(iso):
   print(iso[i])
   i = i + 2
def search():
    u_iso = input("Enter selection: ")
    for x in range(len(iso)):
        if u_iso == iso[x]:
            y = x+1
                print("Isotope:"+iso[x]+"Half-life:"+ iso[y]+"seconds")
            else:
                pass (or) print("Isotope not found")
search()

嘿感谢您的建议,在打印完if语句后,当我从if语句内部返回x和y的值时,这一切都非常有效。在函数末尾执行此操作会返回一些非常不正确的x值。你真的帮助我看到了我遇到的问题:)如果你发现答案正确,你可以使用勾号,这将有助于其他人理解。谢谢你提供的信息!嘿感谢您的建议,在打印完if语句后,当我从if语句内部返回x和y的值时,这一切都非常有效。在函数末尾执行此操作会返回一些非常不正确的x值。你真的帮助我看到了我遇到的问题:)如果你发现答案正确,你可以使用勾号,这将有助于其他人理解。谢谢你提供的信息!我很感谢您编写我的代码,但由于某种原因,我无法打印字典中的键。我想在我能有效地使用字典之前,我需要更多地了解字典。谢谢你的链接!我很感谢您编写我的代码,但由于某种原因,我无法打印字典中的键。我想在我能有效地使用字典之前,我需要更多地了解字典。谢谢你的链接!不幸的是,代码似乎无法绕过'or'语句。我不知道是我没有安装正确的东西还是什么。无论如何,感谢您的帮助,这似乎比我的代码干净多了,我将尝试在将来使用您的建议。不幸的是,代码似乎无法绕过'or'语句。我不知道是我没有安装正确的东西还是什么。不管怎样,谢谢你的帮助,这看起来比我的代码干净多了,我会尝试使用你想要的