-
def bar(multiple):
def foo(n):
return
multiple ** n #意思是开方
return
foo
print bar(
2
)(
3
) # 结果是8
- Python 中的标识符不能以数字开头,这也是普遍编程语言的通用规则
-
将
x = (y = z + 1)
中右半部分括起来后,相当于把一个赋值表达式赋值给变量x
,因此出现语法错误。正确的赋值语法应把括号去掉,即:
1
x = y = z +
1
这种赋值方式可称为 连续赋值、批量赋值、多元赋值、多变量赋值 等。
-
Python 中字符串的前导
r
代表原始字符串标识符,该字符串中的特殊符号不会被转义,适用于正则表达式中繁杂的特殊符号表示。最典型的例子,如要输出字符串
\n
,由于反斜杠的转义,因此一般的输出语句为:1
print
"\\n"
这里的
\\
将被转义为\
。而采用原始字符串输出时,则不会对字符串进行转义:1
print r
"\n"
因此本题答案为 C,输出
\nwoow
。注意前导标识符r
不会被输出,只起标记作用。 -
(1)会被python认为是int类型,所以必须是(1,)
-
__name__这个系统变量显示了当前模块执行过程中的名称,如果当前程序运行在这个模块中,__name__ 的名称就是__main__如果不是,则为这个模块的名称。
第二行foo1 = foo,是将fool的地址赋予给fool,即foo与foo1指向内存中同一地址。
第三行当执行foo.append时,因为python中列表的值是可以变化的。所以就在原来的存放foo的内存地址改变了foo的值,由最初的[1, 2]变为[1, 2, 3]。由于foo1和foo 是指向同一地址空间的索引,所以当foo内存地址所存储的值被改变时,打印foo1时,foo1的值也变化了。
8.理解a=range(100)是什么意识?
range(start, end, step),start:起始值;end:终值;step:步长,默认为1。
a:0、1、2、3、4、5、......99。
所以,正索引范围为:a[0] -a[end-1],
即 a[0] = 0,a[1] = 1,......,依次类推;
负索引范围为:a[-1] -a[-end],
即 a[-1] = 99,a[-2] = 98,......,依次类推。