Python记忆

1、ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符:

ord(‘A’)
65

ord(‘中’)
20013

chr(66)
‘B’

chr(25991)
‘文’

把bytes变为str,就需要用decode()方法:

b’ABC’.decode(‘ascii’)
‘ABC’

b’\xe4\xb8\xad\xe6\x96\x87’.decode(‘utf-8’)
‘中文’
如果bytes中包含无法解码的字节,decode()方法会报错:

b’\xe4\xb8\xad\xff’.decode(‘utf-8’)
Traceback (most recent call last):

UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xff in position 3: invalid start byte
如果bytes中只有一小部分无效的字节,可以传入errors='ignore’忽略错误的字节:

b’\xe4\xb8\xad\xff’.decode(‘utf-8’, errors=‘ignore’)
‘中’
要计算str包含多少个字符,可以用len()函数:

len(‘ABC’)
3

len(‘中文’)
2
len()函数计算的是str的字符数,如果换成bytes,len()函数就计算字节数:

len(b’ABC’)
3

len(b’\xe4\xb8\xad\xe6\x96\x87’)
6

len(‘中文’.encode(‘utf-8’))
6

list是一个可变的有序表,所以,可以往list中追加元素到末尾:

classmates.append(‘Adam’)
classmates
[‘Michael’, ‘Bob’, ‘Tracy’, ‘Adam’]
也可以把元素插入到指定的位置,比如索引号为1的位置:

classmates.insert(1, ‘Jack’)
classmates
[‘Michael’, ‘Jack’, ‘Bob’, ‘Tracy’, ‘Adam’]
要删除list末尾的元素,用pop()方法:

classmates.pop()
‘Adam’

classmates
[‘Michael’, ‘Jack’, ‘Bob’, ‘Tracy’]
要删除指定位置的元素,用pop(i)方法,其中i是索引位置:

classmates.pop(1)
‘Jack’

classmates
[‘Michael’, ‘Bob’, ‘Tracy’]
要把某个元素替换成别的元素,可以直接赋值给对应的索引位置:

classmates[1] = ‘Sarah’
classmates
[‘Michael’, ‘Sarah’, ‘Tracy’]
list里面的元素的数据类型也可以不同,比如:

L = [‘Apple’, 123, True]
list元素也可以是另一个list,比如:

s = [‘python’, ‘java’, [‘asp’, ‘php’], ‘scheme’]
len(s)

一个“可变的”tuple:

t = (‘a’, ‘b’, [‘A’, ‘B’])
t[2][0] = ‘X’
t[2][1] = ‘Y’
t
(‘a’, ‘b’, [‘X’, ‘Y’])

age = 3
if age >= 18:
print(‘adult’)
elif age >= 6:
print(‘teenager’)
else:
print(‘kid’)

注意不要少写了冒号:。

elif是else if的缩写

input()返回的数据类型是str,str不能直接和整数比较,必须先把str转换成整数。Python提供了int()函数来完成这件事情:

s = input('birth: ')
birth = int(s)

d = {‘Michael’: 95, ‘Bob’: 75, ‘Tracy’: 85}

d[‘Michael’]
95

in判断key是否存在:

‘Thomas’ in d
False
二是通过dict提供的get()方法,如果key不存在,可以返回None,或者自己指定的value:

d.get(‘Thomas’)
d.get(‘Thomas’, -1)
-1
注意:返回None的时候Python的交互环境不显示结果。

要删除一个key,用pop(key)方法,对应的value也会从dict中删除:

d.pop(‘Bob’)
75

d
{‘Michael’: 95, ‘Tracy’: 85}
请务必注意,dict内部存放的顺序和key放入的顺序是没有关系的。

重复元素在set中自动被过滤

通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果:

s.add(4)
s
{1, 2, 3, 4}

s.add(4)
s
{1, 2, 3, 4}
通过remove(key)方法可以删除元素:

s.remove(4)
s
{1, 2, 3}
set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作:

s1 = set([1, 2, 3])
s2 = set([2, 3, 4])
s1 & s2
{2, 3}

s1 | s2
{1, 2, 3, 4}

比如list,对list进行操作,list内部的内容是会变化的,比如:

a = [‘c’, ‘b’, ‘a’]
a.sort()
a
[‘a’, ‘b’, ‘c’]
而对于不可变对象,比如str,对str进行操作呢:

a = ‘abc’
a.replace(‘a’, ‘A’)
‘Abc’

a
‘abc’
虽然字符串有个replace()方法,也确实变出了’Abc’,但变量a最后仍是’abc’,应该怎么理解呢?

我们先把代码改成下面这样:

a = ‘abc’
b = a.replace(‘a’, ‘A’)
b
‘Abc’

a
‘abc’

在Python中,定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回。

我们以自定义一个求绝对值的my_abs函数为例:

def my_abs(x):
if x >= 0:
return x
else:
return -x

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值