Python Learning Note Day 09

2018-03-29 0 条评论 323 次阅读 2 人点赞

今天是Python学习第九天,今天事情较多,所以学习时间少了一些。

今天主要是看另一本书:Python基础教程(第3版) (个人觉得这一本对基础部分讲的更详细),想通过这本书把基础部分没学到的东西补充一下。今天主要看了两章:基础知识,列表和元组。这两章看下来个人觉得收获比较多的是一些新的Python函数,序列的一些方法。这些都是上一本书中没有提到的,个人感觉这部分也很重要。

第一章补充知识:

1. Unicode、bytes和bytearray

每个Unicode字符都用一个码点(code point)表示,而码点是Unicode标准给每个字符指定的数字。

Unicode字符的通用机制:使用16或32位的十六进制字面量(分别加上前缀\u或\U)或者使用字符的Unicode名称(\N{name})。

Python提供了bytearray,它是bytes的可变版。从某种意义上说,它就像是可修改的字符串——常规字符串是不能修改的。

 

2. 新函数

函 数描述
abs(number)
返回指定数的绝对值
bytes(string, encoding[, errors]) 对指定的字符串进行编码,并以指定的方式处理错误
cmath.sqrt(number)返回平方根;可用于负数
float(object)将字符串或数字转换为浮点数
help([object])提供交互式帮助
input(prompt)
以字符串的方式获取用户输入
int(object)将字符串或数转换为整数
math.ceil(number) 以浮点数的方式返回向上圆整的结果
math.floor(number)
以浮点数的方式返回向下取整的结果
math.sqrt(number) 返回平方根;不能用于负数
pow(x, y[, z])
返回x的y次方对z求模的结果
print(object, ...)
将提供的实参打印出来,并用空格分隔
repr(object)
返回指定值的字符串表示
round(number[, ndigits]) 四舍五入为指定的精度,正好为5时舍入到偶数
str(object)将指定的值转换为字符串。用于转换bytes时,可指定编码和错误处理方式

 

第二章补充知识:

1. 切片可以指定步长

步长不能为0,否则无法向前移动,但可以为负数,即从右向左提取元素。

# 切片可以指定步长
# 例如可以只取列表中的奇数部分(步长为2)
number=[1,2,3,4,5,6,7,8,9]
print(number[::2])

# 步长不能为0,否则无法向前移动,但可以为负数,即从右向左提取元素。
print(number[::-2])

2. 可使用加法运算符来拼接序列

一般而言,不能拼接不同类型的序列。

number_2=[10,11,12,13,14,15]
print(number+number_2)
# print(number+'hello')

3. 将序列与数x相乘时,将重复这个序列x次来创建一个新序列

# 将序列与数x相乘时,将重复这个序列x次来创建一个新序列
print('fyx'*34)
print(number*3)
print([2]*3)
print(['fyx']*34)
print(['']*4)
print([None]*5)

4. 给切片赋值

# 给切片赋值
lists=list('Perl')
lists[1:]='ython'
print(lists)
lists[1:3]=[]# 等同于lists[1:3]
print(lists)

5. 使用切片赋值还可在不替换原有元素的情况下插入新元素。

# 使用切片赋值还可在不替换原有元素的情况下插入新元素。
number=[1,5]
number[1:1]=[2,3,4]
print(number)

6. 列表操作的各种方法

# append
# 方法append用于将一个对象附加到列表末尾。

# 方法clear就地清空列表的内容。
lst = [1, 2, 3]
lst.clear()
print(lst)

# copy
# 这类似于使用a[:]或list(a),它们也都复制a。
a = [1, 2, 3]
b = a.copy()
b[1] = 4
print(a)

# count
# 方法count计算指定的元素在列表中出现了多少次。
lsts=[1,2,3,4,[1,[2,1]],3,[2,1],1,1,3,4]
print(lsts.count([2,1]))

# extend
# 方法extend让你能够同时将多个值附加到列表末尾
# 用+拼接得到的是一个全新的list
# 用extend会直接改变使用extend的list
a=[1,2,3]
b=[4,5,6]
print(a+b)
print(a)
a.extend(b)
print(a)

# index
# 方法index在列表中查找指定值第一次出现的索引。
number=[0,3,2,1,4,5,6,7,1,2]
print(number.index(1))# 3

# insert
# 方法insert用于将一个对象插入列表。


# pop
# 方法pop从列表中删除一个元素(末尾为最后一个元素),并返回这一元素。
# 注意 pop是唯一既修改列表又返回一个非None值的列表方法。


# push和pop是大家普遍接受的两种栈操作(加入和取走)的名称。Python没有提供push,但可
# 使用append来替代。方法pop和append的效果相反,因此将刚弹出的值压入(或附加)后,得到的
# 栈将与原来相同。

x=[1,2,3,4]
x.append(x.pop())
print(x)

# remove
# 方法remove用于删除第一个为指定值的元素。
# remove是就地修改且不返回值的方法之一。不同于pop的是,它修改列表,但不返
# 回任何值。
lists=['be','c','be']
lists.remove('be')
print(lists)

# reverse
# 方法reverse按相反的顺序排列列表中的元素。
# 注意到reverse修改列表,但不返回任何值(与remove和sort等方法一样)。
lists=[1,2,3,4]
lists.reverse()
print(lists)

# sort
# 方法sort用于对列表就地排序。就地排序意味着对原来的列表进行修改,使其元素按顺序
# 排列,而不是返回排序后的列表的副本。
lists=[1,2,5,7,8,3,6,9]
lists.sort()
print(lists)
lists.sort(reverse=True)
print(lists)

x = [4, 6, 2, 1, 7, 9]
y = x.sort() # Don't do this!
print(y)# none

x=[1,2,7,4,6,5,3]
y=sorted(x,reverse=True)
print(x)
print(y)

7. 创建只有一个值的元组

# 创建只有一个值的元组
a=(42)
b=(42,)
print(a)
print(b)
# 42和(42)等效,要创建只有一个值的元组就必须要在值后面加一个,

8. 函数tuple()

# 函数tuple的工作原理与list很像:它将一个序列作为参数,并将其转换为元组①。如果参数
# 已经是元组,就原封不动地返回它。

a=[1,2,3,4]
b=(1,2,3)
c=tuple(a)
d=tuple(b)
print(c)
print(d)

9. 新函数

函数描述
len(seq)返回序列的长度
list(seq)
将序列转换为列表
max(args)返回序列或一组参数中的最大值
min(args)
返回序列和一组参数中的最小值
reversed(seq)
让你能够反向迭代序列
sorted(seq)返回一个有序列表,其中包含指定序列中的所有元素
tuple(seq)
将序列转换为元组

 

感觉还要补充的很多,继续加油!

Kiwi

Valar Morghulis

文章评论(0)