正如我的坏标题所描述的,我想检查我的新数据是否等于我的旧数据。 如果新数据等于旧数据:什么也不做。 如果新数据不等于旧数据:将旧数据更改为新数据。 然后用旧数据的新定义重复整个过程。你知道吗
制作了这段代码,但正如您所见,每次旧数据都会在末尾重新定义 当再次运行代码时,它被重新定义。你知道吗
def ask_data_change():
data_inn = 'old data'
my_data_input = input('What is your input?: ')
if data_inn == my_data_input:
#does nothing
print('Data input is equal to existing data')
print('data unchanged: ' + data_inn)
else:
#Changes data_inn to new data input
data_inn = my_data_input
print('Data is not equal to existing, changing data_inn to my_data_input')
print('New data is now: ' + data_inn)
while True:
ask_data_change()
这是因为在每次调用时都要重新定义
data_inn
,将while
循环移到函数本身,并在函数外部重新定义旧数据:另一个选项是将
data_inn
作为全局变量,这样,它也不会在函数中重新定义:每次在outer函数中调用
ask_data_change()
时,都会重置两个值假设您想在键入不同的输入时停止循环,请尝试以下操作
因为每次运行函数时,所有值都会重置。这称为作用域(函数调用中定义的值保留在该函数调用中,除非返回)。你知道吗
请看这里:
输出:
如您所见,
i
每次都在函数中被重新定义,它不保存以前的值。您需要返回新值,然后在每次迭代时将其传递给函数,如下所示:相关问题 更多 >
编程相关推荐