1.a = “howareyou” a[1:3]的内容是? [1,3) 从0开始索引
- how
- ho
- ow
- owa
答:ow
2.在Python3中,下面选项为True的是
- (3>2)>1 # 3>2 -> True ,True ==1 -> False
- 2.0 == 2 # 内存地址中的值一样 True
- ‘2’== 2 # str 和 int 不能直接比较 , Flase
- 2.0 is 2 # id不一样 Flase
答:2.0 == 2
3.下面标识符规范的是
- and = 1 # and是逻辑运算符 不能当标识符
- 2my = 1 # 标识符不能以数字开头
- $money = 1 # 不能包含特殊字符
- num = 1
1.标识符是由字符(A~Z 和 a~z)、下划线和数字组成,但第一个字符不能是数字。
#2.标识符不能和 Python 中的保留字相同。
#3.Python中的标识符中,不能包含空格、@、% 以及 $ 等特殊字符
答:num = 1
4. Python3运行如下代码将会输出
a=2.34
a+=2 #a+=2 等价于a = a+2 结果为 4.34
print(int(a)) #int(4.43) = 4 int()是向下取整
- 4.34
- 4
- 2
- 报错
答:4
5.下面哪个选项可将s = “hello my friends”的左边第一个I替换为i
- s[2]=’i’ #字符串是不可变对象
- s.replace(‘l’, ‘i’) #将字符串里所有的’l’替换为’i’
- s.replace(‘l’,’i’,1) #将字符串里左边第1个的’l’替换为’i’
- 以上都可
6.len(“江西移动”)和len(“江西移动\nCMCC”)返回的结果分别是()。
#\n为换行符 只占一个字符
- 8和13
- 8和14
- 4和8
- 4和9
答:4和9
7.下列有关break语句与continue语句不正确的是
- 当多个循环语句彼此嵌套时,break语句只适用于最里层的语句
- continue语句类似于break语句,也必须在for、while循环中使用
- continue语句结束循环,继续执行循环语句的后继语句
- break语句结束循环,继续执行循环语句的后继语句 #break退出当前循环,不执行循环语句中的后继语句
答:break语句结束循环,继续执行循环语句的后继语句
8.for item in__: #for循环只能遍历可迭代对象
print(item)
哪个选项不符合上述程序空白处的语法要求?
- range(0,10)
- “Hello”
- (1,2,3)
- 12345 #int不可遍历
答:12345
9.以下不属于函数作用域的是:
- local
- built-in
- enclosing
- nonlocal
‘’’
L (Local) 局部作用域
E (Enclosing) 闭包函数外的函数中
G (Global) 全局作用域
B (Built-in) 内建作用域
以 L –> E –> G –>B 的规则查找,即:在局部找不到,便会去局部外的局部找(例如闭包),再找不到就会去全局找,再者去内建中找。
nolocal 和 global为关键字
global声明变量为全局变量
nonlocal声明的变量不是局部变量,也不是全局变量,而是外部嵌套函数内的变量
注意:使用global关键字修饰的变量之前可以并不存在,而使用nonlocal关键字修饰的变量在嵌套作用域中必须已经存在,否则会报错。
‘’’
答:nonlocal
10.
def test(): #step4
print(“—5—“) #step5
def test2(): #step2
print(“—3—“) #step3
test() #step4
print(“—4—“)
def test3():
print(“—1—“) #step1
test2() #step2
print(“—2—“) #step6
test3()
以上代码输出的顺序是:
- 12345
- 53412
- 13542
- 13524
答:13542
11.li = [‘h’, ‘e’, ‘l’, ‘l’, ‘o’, ‘ ‘, ‘w’, ‘o’, ‘r’, ‘l’, ‘d’]
将该li拼接为字符串”hello world”输出
原答案:
li = ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
s = ''
for i in range(li): #报错 range()函数用错了 应直接用for i in li:
s += i
print(s)
改:
li = ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
s = ''
for i in li:
s += i
print(s)
12.实现阶乘。比如5的阶乘为:5!=54321
n = 1
for i in range(1, 6):
n *= i
print(n)
13.使用列表推导式生成一个[0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 5.5, 6.0, 6.5, 7.0, 7.5, 8.0, 8.5, 9.0, 9.5, 10.0]的列表
li = [i*0.5 for i in range(1,21)]
print(li)
14.随机生成10个1-50之间的元素,并且进行去重。
import random
set1 = {random.randint(1, 50) for i in range(10)} #[1,50]
print(set1)
15.简述你对面向对象的了解。主要从self参数,面向对象三大特性,面向对象常用魔法方法介绍。
答:
self参数: self是实例参数,代表实例本身,是个形参
实例方法第一个参数必须为自建的实例参数,默认为self
面向对象三大特性:
封装.:封装是一个隐藏的过程,隐藏对象的属性和实现细节,只暴露公共的方法,通过私有方法和是有属性来实现。也可以设置权限访问
继承:子类继承父类公共的方法和属性,减少代码的冗余
单继承先找自己的.再找父类的 多继承不同根先左后右,同根先左后右最后根
多态:不同对象的同一方法的调用,结果可能会不同封装和继承是为了代码重用,多态是为了接口重用
常用魔法方法:
init方法:创建对象时(对象实例化后)自动调用方法,实现初始化
del方法:所有对象被删除或者代码全部执行完时自动调用方法
str方法:将对象返回为指定的字符串
new方法:创建对象并返回对象给init方法,在类准备实例化时调用
doc方法:查看类的说明文档 _
dict方法:查看类或实例的展性字典
call方法**:将对象转为可调用的对象