本题考查变量的作用域。定义在函数内部的变量叫做局部变量, 局部变量只能函数内部使用, 不能在函数外部使用。A的说法是正确的。当函数外部和内部有相同的变量时, 该函数将优先使用自己的, 自己没有再去外部找, B的说法正确。全局变量能在整个程序的任意位置被使用, C的说法是正确的。可以使用global关键字在函数内部声明一个全局变量,所以D的说法是错误的, 故选D。
正确答案是 D: 函数内部不能定义全局变量。
分析:
A: 这句话是正确的。局部变量是在函数或代码块内部定义的变量,只能在其定义的范围内使用。
B: 这句话也是正确的。当函数内部和全局有一个重名的变量时,函数内部会优先使用局部变量。这是因为局部变量的作用域优先级高于全局变量。
C: 这句话也是正确的。全局变量是在函数或代码块之外定义的,可以在整个程序中被访问和使用。
D: 这句话是错误的。在函数内部可以使用 `global` 关键字来声明一个全局变量。例如:
```python
def my_function():
global x
x = 10
```
在这个例子中,`x` 被声明为全局变量,因此可以在函数外部访问和使用。因此,D 是错误的说法。