2017-02-20 93 views
1

当我运行这个Python代码时,我得到一个NameError。但是在这段代码中,我试图获得一个在循环外部使用的for循环(get)中定义的变量。如何在外部循环中使用此变量(获得)我如何获得循环外部for循环中定义的变量? -Python

file = open("f:/py/price.txt", "r") 

valRange = 0 
cal = 0 
totalCst = 0 
itmCnt = 0 
while (valRange < 10): 
    idNumber = int(input("Enter Id number: ")) 
    for line in file: 
      if line.startswith(str(idNumber)): 
       get = line.split("=")[1] 
      break 
    quantity = int(input("Enter qantity: ")) 
    cal = quantity * int(get) 
    totalCst += cal 
    itmCnt += quantity 

print (totalCst) 
+0

你不需要额外的东西。也许什么也没有分配给它。 – wwii

回答

1

只是在循环之前初始化变量。 break命令也不在if之内。 尝试:

file = open("f:/py/price.txt", "r") 

valRange = 0 
cal = 0 
totalCst = 0 
itmCnt = 0 
while (valRange < 10): 
    idNumber = int(input("Enter Id number: ")) 
    get = 0 
    for line in file: 
      if line.startswith(str(idNumber)): 
       get = line.split("=")[1] 
       break 
    quantity = int(input("Enter qantity: ")) 
    cal = quantity * int(get) 
    totalCst += cal 
    itmCnt += quantity 

print (totalCst) 
+0

它的工作。但是我在脚本中发现了一些错误。无论如何谢谢:) –

+0

太棒了!请不要忘记将答案标记为正确的答案。 – spilafis

0

缩进break更多。

for line in file: 
     if line.startswith(str(idNumber)): 
      get = line.split("=")[1] 
      break 

另外如果没有匹配的行呢?那么get就没有价值了。如果没有行匹配,请确保跳过后续代码。