重难点知识汇总
python使用的是动态语言,也就是说在变量定义时不需要指定对应的数据类型。但是输入进来还是用int()函数把输入字符串变成整形数据。
多行字符串可以用
‘’’ … ‘’’
表示。 前面有r前缀时可以直接将字符串完全输出,不需要考虑转义字符的问题。
同时要了解不同字符编码之间的关系。在编写python代码时需要在最开始指定
当Python解释器读取源代码时,按UTF-8编码读取。
python中有关格式化的特殊点:
- 采用%实现,并且用%联系。举例
‘Hi, %s, you have $%d.’ % (‘Michael’, 1000000)
- format()方法:
‘Hello, {0}, 成绩提升了 {1:.1f}%’.format(‘小明’, 17.125)
- f-string方法:
>>> r = 2.5
>>> s = 3.14 * r ** 2
>>> print(f'The area of a circle with radius {r} is {s:.2f}')
The area of a circle with radius 2.5 is 19.62
列表和元组: list:list是一种有序的集合,可以随时添加和删除其中的元素。索引号从0开始。符号可以实现倒索引。用[]列出。
classmates.append(‘Adam’) classmates.insert(1, ‘Jack’) classmates.pop() #删除最后一个元素 classmates.pop(1) #指定 可以实现多维索引(有多维列表时)
tuple:tuple和list非常类似,但是tuple一旦初始化就不能修改。用()列出。要注意定义只有一个元素的tuple时直接表示这个元素本身。但是tuple里面定义的元组可变。
字典和set: dict:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储。用{}表示。
>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
>>> d['Michael']
95
判断key是否存在用in表示。或者用get()方法。如果key不存在,可以返回None,或者自己指定的value:
>>> d.get('Thomas')
>>> d.get('Thomas', -1)
-1
删除:pop 请务必注意,dict内部存放的顺序和key放入的顺序是没有关系的。需要牢记的第一条就是dict的key必须是不可变对象。
set:set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。重复对象自动被过滤。
>>> s = set([1, 1, 2, 2, 3, 3])
>>> s
{1, 2, 3}
add(key):添加数据 remove(key):删除元素
set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等。 字符串是不可变对象。
多重条件判断格式:
if <条件判断1>:
<执行1>
elif <条件判断2>:
<执行2>
elif <条件判断3>:
<执行3>
else:
<执行4>
循环:python的for循环比较特殊
for x in …:statement
函数: 自带函数直接调用即可。如
abs()
函数定义:
def my_abs(x):
if not isinstance(x, (int, float)):
raise TypeError('bad operand type')
if x >= 0:
return x
else:
return -x
可以用pass来定义空函数。 如果你已经把my_abs()的函数定义保存为abstest.py文件了,那么,可以在该文件的当前目录下启动Python解释器,用from abstest import my_abs来导入my_abs()函数
返回多个值时返回的是一个元组。
递归:最好采用尾递归的形式。
参数:位置参数、默认参数(默认参数最好采用不可变参数)、可变参数、关键字参数、命名关键字参数
def person(name, age, **kw):
print('name:', name, 'age:', age, 'other:', kw)
def person(name, age, *, city, job):
print(name, age, city, job)
>>> person('Jack', 24, city='Beijing', job='Engineer')
Jack 24 Beijing Engineer
如果函数定义中已经有了一个可变参数,后面跟着的命名关键字参数就不再需要一个特殊分隔符*了
|