我正在尝试编写一个程序,它将接受用户的输入(在本例中,他们从列表中选择一个同位素),将其与列表进行匹配,然后打印出同位素及其半衰期。这一切都工作得很好,除了我无法使用与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;发布于 2020-04-04 00:12:46
欢迎来到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;我希望它会像你想要的那样工作,如果你有更多的疑问,你可以与我分享。?
发布于 2020-04-04 00:14:34
当您在字典https://www.geeksforgeeks.org/python-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发布于 2020-04-04 02:17:50
你可以试试这个简单的方法……
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()结果将是..
Enter selection: Oxygen-22
Isotope:Oxygen-22Half-life:2.25seconds
(or)
Enter selection: Iron
Isotope not foundhttps://stackoverflow.com/questions/61015740
复制相似问题