我有一个生成列表的程序,然后我让他们告诉我他们想从菜单上做什么,这就是我的问题开始,我能够从用户那里得到不同函数的输入,但是当我尝试使用if-else条件时,它没有检查,下面是我的代码
def menu(x,l):
print (x)
if x == 1:
return make_table(l)
if x == 2:
y= input("enter a row (as a number) or a column (as an uppercase letter")
if y in [ "1",'2','3']:
print("Minmum is:",minimum(y,l))
if x== 3:
print ('bye')
def main():
bad_filename = True
l =[]
while bad_filename == True:
try:
filename = input("Enter the filename: ")
fp = open(filename, "r")
for f_line in fp:
f_str=f_line.strip()
f_str=f_str.split(',')
for unit_str in f_str:
unit=float(unit_str)
l.append(unit)
bad_filename = False
except IOError:
print("Error: The file was not found: ", filename)
#print(l)
condition=True
while condition==True:
print('1- open\n','2- maximum')
x=input("Enter the choice")
menu(x,l)
main()
从底部的功能,我可以得到列表,我可以得到用户的输入,我可以得到数据,并在第二个功能移动它,但它不会工作后那。谢谢你呢
我认为你的问题很简单,与你如何在函数之间传递值无关。你知道吗
在
main
中,您从用户处读取的值如下:^{} 函数:
因此,如果用户在提示符处键入
1
,则返回字符串"1"
。你知道吗现在,将该值完全正确地传递给
menu
。你知道吗在
menu
中,然后尝试将其与各种数字进行比较,如下所示:但这永远不会是真的。一个字符串,如
"1"
,从不等于一个数字,如1
。它们甚至不是同一种价值,更不是同一种价值。你知道吗所以,你需要做两件事之一:
menu(x,l)
更改为menu(int(x), l)
。或者menu
以期望字符串。例如,将if x == 1:
更改为if x == "1":
。你知道吗您可能想知道为什么
print (x)
没有帮助您调试问题。你知道吗print(x)
打印出最终用户友好的字符串表示形式。也就是说,它会自动为您调用^{str
,以获得程序员友好的字符串表示,而不是最终用户友好的字符串表示。你知道吗例如,
print(str("10"))
将打印出10
-就像print(str(10))
,所以您无法区分它们。但是print(repr("10"))
会打印出'10'
,不像print(repr(10))
,同时打印10
,所以你可以把它们区分开来。repr
还可以帮助您发现一些东西,比如字符串中包含不可见的字符,从解析器中获得特殊的“node”对象,而不仅仅是字符串,等等相关问题 更多 >
编程相关推荐