如何带出缩进之外的变量?



我创建了一个程序里面有缩进(你知道,就像for和while循环,if, elif, else, def和其他任何后面有缩进的东西。)这个缩进里面有一些新创建的变量。像这样:

.
.
.
little_input = input()
big_input = input()
num = 10
def calculate() :
global num
num += 1
num2 = num * big_input
num3 = num2 / little_input
print(num3)
rmin = num2 % little_input
if rmin == 0 :
print(num3)
.
.
.

然后我看到我需要对num3变量做一些事情,但是它需要在定义之外当它在外面的时候,它说这个变量没有定义。你能帮我一下吗?谢谢。

编辑@Nesi:

print("chain wheel calculator")
print("enter the little diameter in mm :")
little_input = input()
print("enter the big diameter in mm :")
big_input = input()
little_input = int(little_input)
big_input = int(big_input)
num = 9
def calculate() :
global num
num += 1
num2 = num * big_input
num3 = num2 / little_input
print(num3)
rmin = num2 % little_input
if rmin == 0 :
print(num3)
while num <= 100 :
calculate()
print("chain wheel calculator")                                                                                                                                                     
print("enter the little diameter in mm :")                                      
little_input = input()                                                          
print("enter the big diameter in mm :")                                         
big_input = input()                                                             
          
little_input = int(little_input)                                                
big_input = int(big_input)                                                      
          
num = 9                                                                         
          
def calculate(little_input, big_input, num):                                    
num2 = num * big_input                                                      
num3 = num2 / little_input                                                  
rmin = num2 % little_input                                                  
if rmin == 0:                                                               
return num3                                                             
          
while num <= 100 :                                                              
num3 = calculate(little_input, big_input, num)                              
if num3:                                                                    
print(num3)                                                             
num += 1     

这个应该可以工作。我不确定你想要什么行为,但我假设你只想返回num3,如果rmin == 0。如果是rmin != 0,这将返回None。因此,语句if num3:检查num3是否不是None类型,然后打印结果值。您可以在这个条件语句中向num3添加任何您想要做的事情。一般来说,避免像以前那样混合作用域。

试试这个

def calculate(num) :
num2 = num * big_input
num3 = num2 / little_input
print(num3)
rmin = num2 % little_input
if rmin == 0 :
print(num3)
# after you do what you need with this function
# you will endup with value for num3, right?
# we will give it to the loop.
return num3
print("chain wheel calculator")
print("enter the little diameter in mm :")
little_input = input()
print("enter the big diameter in mm :")
big_input = input()
little_input = int(little_input)
big_input = int(big_input)

num = 9
while num <= 100 :
num3 = calculate(num)  # pass the num to function
print(num3)
num += 1

你需要在函数外部声明它,然后在函数内部使用它作为全局变量。

这里有个链接可能对你有帮助。

这里有一个例子

num3= 0

def calculate():
global num3
num3 = 133131


print(f"Num3 before calling func : {num3}")
calculate()
print(f"Num3 after calling func : {num3}")

输出

Num3 before calling func : 0
Num3 after calling func : 133131

最新更新