1.作用域+输出语句
执行下面代码,请问输出结果为:顺顺 顺顺
name = “顺顺”#全局变量
def f1():
print(name)
def f2():
name = “丰丰”#局部变量
f1()
f1()
f2()
2.filter()+map()+upper()
在Python3中,下列程序运行结果为:['ABC', 'PYTHON']
strs = ['a', 'ab', 'abc', 'python']
y = filter(lambda s: len(s) > 2, strs)#过滤不符合,返回符合
tmp = list(map(lambda s: s.upper(), y))#使用 list() 转换为列表
print(tmp)
filter(function,iterable)
map(function, iterable, ...)
function -- 判断函数 iterable -- 可迭代对象
upper() 为字符大写转换函数
3.endswith()
下列代码输出为:True
str = "Hello,Python"
suffix = "Python"
print (str.endswith(suffix,2))#判断从2开始的str是否以suffix结尾,结果为True
str.endswith(suffix[, start[, end]])
suffix -- 该参数可以是一个字符串或者是一个元素。
start -- 字符串中的开始位置。
end -- 字符中结束位置。
4.strip()+split()
在Python3中,下列程序结果为:['', 'I', 'like', 'python', ''],'I like python'
strs = ' I like python '
one = strs.split(' ')
two = strs.strip()#删除首尾空格
print(one)
print(two)
str.split(str="", num=string.count(str))
split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串
str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
num -- 分割次数。默认为 -1, 即分隔所有。
str.strip([chars])
chars -- 移除字符串头尾指定的字符序列。
5.dict()
在Python3中,关于程序运行结果说法正确的是:报错
dicts = {}
dicts[([1, 2])] = 'abc'
print(dicts)
字典的键要求可哈希,而列表list不可哈希,会报错
可哈希对象:数字类型(int,float,bool)、字符串str、元组tuple、自定义类的对象
不可哈希对象:字典dict,列表list,集合set,要使用tuple( iterable )来转换成元组
dicts = {}
dicts[tuple([1, 2])] = 'abc'
print(dicts)
6.range()
Which numbers are printed?(0, 1, 4, 5)
for i in range(2):
print i
for i in range(4,6):
print i
range(start, end[, step])
start: 计数从 start 开始。默认从 0 开始。
stop: 计数到 stop 结束,但不包括 stop。
step:步长,默认为1。
7.dict()
在python3中,下列程序结果为:1,报错
dicts = {'one': 1, 'two': 2, 'three': 3}
print(dicts['one'])
print(dicts['four'])#字典里没有的键访问数据,会报错
8.运算
下列哪个语句在Python中是非法的?C
A.x = y = z = 1B.x = (y = z + 1)C.x, y = y, xD.x += y
y = z + 1没有返回值
9.remove()+append()
在Python3中,程序运行返回结果为:[1,2,3,4,5,6,7]
lists = [1, 1, 2, 3, 4, 5, 6]
lists.remove(1)
lists.append(7)
print(lists)
Python3中
list.remove(obj):移除列表中某个值的第一个匹配项
list.append(obj):在列表末尾添加新的对象
10.表达式
执行下列选项的程序,输出结果与其他三个选项不同的是(B)
a = [['1']*3 for i in range(3)]
print(a)
b = [['1']]*3
print(b)
c=[]
for i in range(3):
lis = ['1']*3
c.append(lis)
print(c)
d = []
lis = ['1']*3
for i in range(3):
d.append(lis)
print(d)
B选项结果为[['1'], ['1'], ['1']],其他选项结果为[['1', '1', '1'], ['1', '1', '1'], ['1', '1', '1']]
11.不定长参数
以下程序输出为:11 22 (33, 44, 55, 66, 77, 88, 99)
# -*- coding:utf-8 -*-
def test(a, b, *args):
print(a)
print(b)
print(args)
test(11, 22, 33, 44, 55, 66, 77, 88, 99)#依次匹配输出
def 函数名([formal_args, ] *args, **kwargs):
"函数_文档字符串"
函数体
return 表达式
参数带名称,值分配给args变量
参数不带名称,值分配给kwargs变量
12.索引
在Python3中,下列程序运行结果为:[6, 4, 2]
tmp = [1, 2, 3, 4, 5, 6]
print(tmp[5::-2])#索引为5依次向前取值(步长为2)
13.zip()+fromkeys()
为输出一个字典dic = {‘a’:1,'b':2},下列选项中,做法错误的是(B)
lis1 = ['a','b']
lis2 = [1,2]
dic = dict(zip(lis1,lis2))
print(dic)
tup = ('a','b')
lis = [1,2]
dic = {tup:lis}
print(dic)#dic={('a', 'b'): [1, 2]}
dic = dict(a=1,b=2)
print(dic)
lis = ['a','b']
dic = dict.fromkeys(lis)
dic['a'] = 1
dic['b'] = 2
print(dic)
zip([iterable, ...])
zip() 将元素打包成元组,然后返回由这些元组组成的列表。
dict.fromkeys(seq[, value])
seq -- 字典键值列表。value -- 可选参数, 设置键序列(seq)的值,默认为 None。
fromkeys() 函数用于创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值。
14.join()+append()
在Python3中,下列continue的用法:'pyton'
res = []
for i in 'python':
if i == 'h':
continue
res.append(i)
print(''.join(res))
str.join(sequence)
sequence -- 要连接的元素序列。
alist.append( copy.deepcopy( num ) )
append():追加该对象的引用
15.re 模块
下列程序打印结果为(Pyth)
import re
str1 = "Python's features"
str2 = re.match( r'(.*)on(.*?) .*', str1, re.M|re.I)
print str2.group(1)
re.search(pattern, string, flags=0)
re.search 扫描整个字符串并返回第一个成功的匹配。
re.M:多行匹配,影响 ^ 和 $
re.I:使匹配对大小写不敏感
16.运算
如下代码,执行结果为:120
def f(x):
if x == 0:
return 0
elif x == 1:
return 1
else:
return (x*f(x-1))
print(f(5))
17.输出
Python3中,已知列表a = [2,3],则下列程序结果是:[2,3,2,3]
print(a*2)
18.字典浅拷贝
在python3中,对程序结果说明正确的是:
{'one': 1, 'two': 2, 'three': 3},{'one': 'abc', 'two': 2, 'three': 3}
dicts = {'one': 1, 'two': 2, 'three': 3}
tmp = dicts.copy()
tmp['one'] = 'abc'
print(dicts)
print(tmp)
19.tuple
下列哪种不是Python元组的定义方式?A
A.(1)B.(1, )C.(1, 2)D.(1, 2, (3, 4))
(1,) 当 tuple 中只含一个元素时,需要在元素后加上逗号。
20.fun
执行以下程序,输出结果为:((1,), [1, 1])
def fun(a=(),b=[]):
a += (1,)
b.append(1)
return a,b
fun()
print(fun())
元组是不可变数据类型
列表是可变数据类型
21.遍历求交集
有如下Python代码段:
b1=[1,2,3]
b2=[2,3,4]
b3 = [val for val in b1 if val in b2]
print (b3)
上述代码段的运行结果为:([2,3])
22.索引
下列程序运行结果为:13
a=[1, 2, 3, 4, 5]
sums = sum(map(lambda x: x + 3, a[1::3]))#按index创b=[2,5],变c=[5,8],sums=5+8=13
print(sums)
23.变量用前必赋值
关于Python内存管理,下列说法错误的是:B
A.变量不必事先声明
B.变量无须先创建和赋值而直接使用
C.变量无须指定类型
D.可以使用del释放资源
24.搜索模块顺序
当使用import导入模块时,按python查找模块的不同顺序可划分为以下几种:
①环境变量中的PYTHONPATH
②内建模块
③python安装路径
④当前路径,即执行Python脚本文件所在的路径
其中查找顺序正确的一组是(②④①③)
25.作用域+集合/列表定义
在python3.x执行下列选项的程序,不会抛出异常的是(B)
b = 1
def fn():
nonlocal b # global b
b = b + 1
print(b)
fn()
tup = (('onion','apple'),('tomato','pear'))
for _,fruit in tup:
print(fruit)
a = [b for b in range(10) if b % 2 == 0]
print(b)#b用完即毁
lis = [1,2,'a',[1,2]]
set(lis)#[1,2]可变不符
26.字典是Python中唯一的映射类型
下列哪种类型是Python的映射类型?D
A.str
B.list
C.tuple
D.dict
27.地址
已知a = [1, 2, 3]和b = [1, 2, 4],那么id(a[1])==id(b[1])的执行结果 (True)
注:== 比较的是两个对象的值是否相同
28.list索引
在Python3中,对于以下程序正确的是:[]
lists = [1, 2, 3, 4, 5, 6]
print(lists[6:])
注:索引从零开始,超出列表的索引范围会输出空列表
29.字典get
以下程序输出为:None 18
info = {'name':'班长', 'id':100, 'sex':'f', 'address':'北京'}
age = info.get('age')#不存在返回None
print(age)
age=info.get('age',18)
print(age)
注:dict.get(key, default=None)
30.序列
根据以下程序,下列选项中,说法正确的是(可以使用for i in foo:print(i)来遍历foo的元素)
class Foo():
def __init__(self):
pass
def __getitem__(self,pos):
return range(0,30,10)[pos]
foo = Foo()
A.<p>foo对象表现得像个序列</p>
B.<p>可以使用len(foo)来查看对象foo的元素个数</p>
C.<p>可以使用for i in foo:print(i)来遍历foo的元素</p>
D.不能使用foo[0]来访问对象foo的第一个元素
序列的两个方法:__len__和__getitem__
没有定义__len__方法
__getitem__方法--可迭代可索引
31.find和rfind
在Python3中,有关字符串的运算结果为:(12,15)
strs = 'I like python and java'
one = strs.find('n')
print(one)
two = strs.rfind('n')
print(two)
32.列表拼接
在Python3中,下列程序运行结果为:[1, 2, 3, 4, 5, 6]
a = [1, 2, 3]
b = [4, 5, 6]
print(a+b)
33.set
What gets printed?4
nums = set([1,2,2,3,3,3,4])
print len(nums)
注:列表转换成集合(确定性,无序性,互异性)
34.变量
执行以下程序,结果输出为([1, 2, 2], 2)
a = [1]
b = 2
c = 1
def fn(lis,obj):
lis.append(b)
obj = obj + 1
return lis,obj
fn(a,c)
print(fn(a,c))
注:列表为可变对象,str为不可变类型
35.列表
执行以下程序,输出结果为[['1', '3'], ['1', '2']] [['4', '2'], ['4', '2']]
a = [['1','2'] for i in range(2)]
b = [['1','2']]*2
a[0][1] = '3'
b[0][0] = '4'
print(a,b)
注:替换,重复,浅拷贝