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”输出

  1. 原答案:
  2. li = ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
  3. s = ''
  4. for i in range(li): #报错 range()函数用错了 应直接用for i in li:
  5. s += i
  6. print(s)
  1. 改:
  2. li = ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
  3. s = ''
  4. for i in li:
  5. s += i
  6. print(s)

12.实现阶乘。比如5的阶乘为:5!=54321

  1. n = 1
  2. for i in range(1, 6):
  3. n *= i
  4. 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]的列表

  1. li = [i*0.5 for i in range(1,21)]
  2. print(li)

14.随机生成10个1-50之间的元素,并且进行去重。

  1. import random
  2. set1 = {random.randint(1, 50) for i in range(10)} #[1,50]
  3. print(set1)


15.简述你对面向对象的了解。主要从self参数,面向对象三大特性,面向对象常用魔法方法介绍。
答:
self参数: self是实例参数,代表实例本身,是个形参
实例方法第一个参数必须为自建的实例参数,默认为self
面向对象三大特性:
封装.:封装是一个隐藏的过程,隐藏对象的属性和实现细节,只暴露公共的方法,通过私有方法和是有属性来实现。也可以设置权限访问
继承:子类继承父类公共的方法和属性,减少代码的冗余
单继承先找自己的.再找父类的 多继承不同根先左后右,同根先左后右最后根
多态:不同对象的同一方法的调用,结果可能会不同封装和继承是为了代码重用,多态是为了接口重用
常用魔法方法:
init方法:创建对象时(对象实例化后)自动调用方法,实现初始化
del方法:所有对象被删除或者代码全部执行完时自动调用方法
str方法:将对象返回为指定的字符串
new方法:创建对象并返回对象给init方法,在类准备实例化时调用
doc方法:查看类的说明文档 _
dict方法:查看类或实例的展性字典
call方法**:将对象转为可调用的对象