我创建了一个程序里面有缩进(你知道,就像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