当我把下面的代码放在def中时,我得到了错误:“UnboundLocalError:局部变量'czy_to_palindrome‘在赋值之前引用”--如果没有。
不起作用:
while True:
print("Podaj liczbe: ", end="")
number = input()
czy_to_palindrome = True
def palindrome_check(number):
for i in range(len(number)):
if number[i] != number[len(number)- i - 1]:
print("No, ", number, "is NOT a palindrome.")
czy_to_palindrome = False
break
if czy_to_palindrome:
print("Yes, ",number, "is a palindrome.")
palindrome_check(number)作品:
while True:
print("Podaj liczbe: ", end="")
number = input()
czy_to_palindrome = True
# def palindrome_check(number):
for i in range(len(number)):
if number[i] != number[len(number)- i - 1]:
print("No, ", number, "is NOT a palindrome.")
czy_to_palindrome = False
break
if czy_to_palindrome:
print("Yes, ",number, "is a palindrome.")
# palindrome_check(number)请解释一下我不明白的功能改变。谢谢Begginer的编码。
发布于 2022-10-27 21:22:20
正如他们在注释中所说的,只需添加一个全局变量或将变量传递给函数即可。以下是两种选择:
while True:
print("Podaj liczbe: ", end="")
number = input()
czy_to_palindrome = True
def palindrome_check(number, czy_to_palindrome):
for i in range(len(number)):
if number[i] != number[len(number)- i - 1]:
print("No, ", number, "is NOT a palindrome.")
czy_to_palindrome = False
break
if czy_to_palindrome:
print("Yes, ",number, "is a palindrome.")
palindrome_check(number, czy_to_palindrome)或
while True:
print("Podaj liczbe: ", end="")
number = input()
czy_to_palindrome = True
def palindrome_check(number):
global czy_to_palindrome
for i in range(len(number)):
if number[i] != number[len(number)- i - 1]:
print("No, ", number, "is NOT a palindrome.")
czy_to_palindrome = False
break
if czy_to_palindrome:
print("Yes, ",number, "is a palindrome.")
palindrome_check(number)选择取决于您想要实现什么,如果变量确实是您需要在程序的其余部分中更改并保持不变的变量,则使用“全局”,否则使用use参数传递。
https://stackoverflow.com/questions/74228248
复制相似问题