为什么这个代码老是显示a没有定义

def say():
x=input('请输入一句英文')
a=''.join(reversed(x.split()))
print(a)
say()

因为函数里的a是局部变量,作用域在函数内,而且没有调用函数,这是a并没有初始化或赋值,所以会出现没有定义错误。如果要获取a值,可以在函数内将其声明为全局变量,且在调用say函数后,输出打印a.

def say():

    global a
    x = input('请输入一句英文')
    a = ''.join(reversed(x.split()))

say()
print(a)


请输入一句英文ab 
ab

如有帮助,请采纳。

a是say()函数中的局部变量, print(a) 是在函数外面自然不能访问函数中的局部变量
要在print(a)前加一个缩进放在函数里才行

def say():
    x=input('请输入一句英文')
    a=''.join(reversed(x.split()))
    print(a)
say()