测验1: 执行这两个函数的时候分别做了几次乘法运算?
print square(5)
print square(2*5)
其中 square 函数就是个求方的函数
def square(x)
return x*x
这里重点测试的是对python函数的参数的理解。第二个print语句的参数25被传入的时候要不要取值?如果是直接以表达式的形式传入的话肯定会执行2525共三次乘法运算。但若是求值后进入,则只做两次,25 和1010。
正确答案:
测验2: 以下代码的输出是什么?
x = 1
def f():
return x
print x
print f()
这里函数内部的x是局部变量,还未被初始化,函数被调用时会不会报错?
正确答案
不会, python 在局部作用域中找不到某变量时会从全局作用域中去找,因此输出是: 1、 1
但要知道函数中无法改变全局变量的值
测验3: 以下代码的输出是什么?
x = 1
def f():
x = 2
return x
print x
print f()
print x
正确答案
1、2、1
测验4: 以下代码的输出是?
x = 1
def f():
y = x
x = 2
return x + y
print x
print f()
print x
正确答案: 1、3、1
测验5: 一下代码的输出是?
x = 2
def f(a):
x = a * a
return x
y = f(3)
print x, y
正确答案: 2,9
方法
方法是在某些特殊的对象上面起作用的函数
比如字符串的upper()函数
x = "hello"
print x.upper()
HELLO