面对洋洋洒洒的知识点,我往往 “一看就会,一写就废”,为了更有针对性的加深知识点的印象,我将以做题的形式继续总结 Python 系列,每篇 10 道问答,以下是本篇目录:

Python 系列总结都是我自己平时的学习笔记,如果有不正确的地方,希望各位佬儿哥指正纠偏🤗

问:列表的增删查改?

答:

问:字典的增删查改?

答:

d1 = {'name': 'Tom', 'age': 25}
print(d1.keys())
print(type(d1.keys()))
print()

print(d1.values())
print(type(d1.values()))
print()

print(d1.items())
print(type(d1.items()))
------------------------------------------------
dict_keys(['name', 'age'])
<class 'dict_keys'>

dict_values(['Tom', 25])
<class 'dict_values'>

dict_items([('name', 'Tom'), ('age', 25)])
<class 'dict_items'>

d[key] = value
d1.update(d2) ---将 d2 更新到 d1 中,相同的 key 则更改 d1 中的 value

问:元祖的增删查改

答:

因为元祖是不可变数据类型,所以不能不能在原元祖新增

t = (1,2,'hello')
t2 = (2,3,'world')

print(id(t))
t += t2

print(t)
print(id(t))
-------------------------
2049302192960
(1, 2, 'hello', 2, 3, 'world')
2049302145920

del t ---不能 del t[idx],否则报错:TypeError: 'tuple' object doesn't support item deletion

t[idx] ---idx 不能越界,否则报错:IndexError: tuple index out of range
可遍历元祖

for _ in t:
    print(_)

t.count(value) ---返回元祖中 value 的个数,value 不存在返回 0
t.index(value) ---返回元祖中首个 value 的索引,value 不存在则报错:ValueError: tuple.index(x): x not in tuple

元组是不可变的,因此不能修改元组中的任何元素。

问:例举 Python6 种基本的数据类型,并标出哪些是不可变数据类型?

答:整形-int-不可变、浮点型-float-不可变、字符型-str-不可变、列表-list-可变、元祖-tuple-不可变、字典-dict-可变;

问:请说明循环结构和异常处理中的 else 在什么情况下会执行?

答:
在 for.else 循环结构中,当循环提全部循环完毕后,没有 break 或者 return 的情况下,会执行 else 代码段;
在异常处理中,try 下的代码段没有出现异常的情况下,会执行 else 代码段;

条件分支语句用 else 来表示"否则执行某件事"

问:列举 python 函数定义中有哪些不同的参数类型?

答:
1.位置参数:根据参数在函数定义中的位置来确定。
2.默认参数:在函数定义中指定的参数值。
3.关键字参数:在调用函数时指定参数名称和对应的值。
4.星号参数:在函数定义中使用来捕获剩余的参数。
5.双星号参数:在函数定义中使用
* 来捕获剩余的关键字参数。

问:python 中==和 is 的区别?

答:
==比较的是两个对象的值,is 比较的是两个对象的内存地址。
不能用 is 替代==,仅当你需要判断某个对象是否是 None、False、True 时,使用 is,其他情况下请使用==。

a = [1,2,3]
b = [1,2,3]
print(id(a))
print(id(b))
print(a == b)
print(a is b)
--------------------
2278285654592
2278285654272
True
False
a = [1,2,3]
b = a
print(id(a))
print(id(b))
print(a == b)
print(a is b)
---------------------
2021576555072
2021576555072
True
True

额外:关于赋值或者复制后 id() 是否异同的知识点,结论:除了'='赋值,其余的 id() 都不一样,直接举例:

import copy

a = [1,2,3]
b = a
c = a.copy()
d = copy.copy(a)
e = copy.deepcopy(a)
f = a[:]
print(id(a))
print(id(b))
print(id(c))
print(id(d))
print(id(e))
print(id(f))
------------------
1927143455168
1927143455168
1927140937408
1927140937152
1927143557824
1927143558528

问:请描述 global 关键字在什么条件下必须被使用?

答:在函数局部要重新赋值全局变量之前,需要使用 global 关键字声明全局变量。

问:请说明 if name == 'main':语句的作用?

答:在 Python 中,当一个模块被执行时,if name == 'main':语句块会被执行。此语句块可以用来测试模块的代码,而不会影响模块的其他功能。
如果模块被其他模块导入,则name的值为该模块的名称,而不是main。如果该模块是主程序,则name的值为main,此时该语句块会被执行。
这样的语句使得可以在模块被其他模块导入时忽略测试代码,并且只在模块被独立运行时执行测试代码。

问:面向对象编程有哪三大特性?请说明各个特性的意义。

答:
封装:隐藏内部状态和实现细节,仅提供必要的接口给外部使用。
继承:允许创建新的对象类型,并基于现有的对象类型派生,从而继承其行为和状态。
多态:允许不同类型的对象对相同消息做出不同的响应。

测试基础-Python 篇 问&答②


↙↙↙阅读原文可查看相关链接,并与作者交流