Day 9 20190124 老男孩python学习第9天 内容整理

看视频一个小时,码代码2小时。

浮点数

浮点数是有理数,不包括无理数,平时科学计数法1.37*10^13,在计算机里面就用1.37E13表示,如1299=1.299e3,

复数

复数是指能写成a+bi的数,a和b为实数,i为虚数,在python里面用 (a+bj)表示,如(1+2j),可以用来做物理和量子力学等等,

浮点数的精确度问题:

扫描二维码关注公众号,回复: 5056358 查看本文章

python里只能储存17位的精度(即小数16位+1位整数),同时小数数目越多精确度可能越低,浮点数所占的空间是远大于整数的,

如 1.12345678901234567 就变成了1.1234567890123457(四舍五入),

如果想使用高精度的话,需要额外引入第三方模块

数据类型--列表

1.创建列表

names = list()

names = [] 

两种都是创建空列表方式,[]较为常用

names = ['jack', 'nick', 123, 123, 1, 1, 2, 2, 3, 3, 3e2, [1, 2, 3]]

列表内可以放各类数据类型,包括字符串,数字,列表,等等

列表内每个元素都有一个index(索引),索引从0开始,1,2,3,4... 一直接下去,调用索引为0的元素命令为

names[0] --> 会显示 jack

names[-5] --> 会显示倒数第5个元素,

如果要查找某个元素的索引,输入

names.index('jack') --> 返回结果为0,即索引为0是'jack',

如果列表内有两个相同元素,则默认只显示排名靠前的那个元素的索引号,如此处

names.index(2) -->返回为6,而实际上6和7都是2

 names[names.index(2)] --> 6

names.count('jack') --> 1

names.count(6) --> 2

切片:取列表中的第a到b个元素

names[0:3] --> ['jack', 'nick', 123],只取0,1,2这三个索引的元素,护头不护尾,实际取的是0-2的元素

names[-5:-1] --> 倒数第5个到倒数第2个

names[-5:] ,不写就是到底

names[:-5],不写就是从头开始

names[-1:-5] 或者names[2:1],都是返回空集合[]

names[0:7:n],就是取索引0-7中的0, 0+n, 0+2n... 0+an的数,n叫步长,这个动作叫切片

当然,names[0::2]也可以,从0开始到底,步长为2,即索引值为0, 2, 4, 6...到底的数都会被切片

增加:

names.append('peiqi'),在尾部增加'peiqi'

names.insert(6, 'peiqi'),在索引为6的位置插入'peiqi',插入后names[6] --> 'peiqi'

修改:

names[2] = 333,赋值就是修改

批量修改

names[2:5] = '333'

首先,批量修改的赋值只能为字符串,同时这一串里面的任意一个字符都会被分别拆开来填入其中,2-4(护头不护尾)这几个元素都会被抹除,然后将字符串里的3个‘3’、‘3’、‘3’填入其中,不够数就会导致列表元素的数量减少,多了就会导致元素数量增加,把后面的挤后面去,如果用names[8:],就会先把第9个元素以后所有元素抹除,然后插入赋值拆开的字符串,如果是names[8:7],就会在第9个元素抹除,然后插入

删除:

names.pop()  删除最后一个元素

names.remove('abc'),删除abc元素,如果有多个‘abc’,删除从左数起第一个,remove只能一个一个删

del names[2],删除索引为2的元素

del names[2:6],批量删除索引为2-5的元素

pop和remove都是names的后缀功能,因此必须定义names之后才能使用,pop删除后,返回被删除的值

del是全局性功能,可以直接 del names 来删除,可以删任意东西

循环:

names = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

for i in names:

  print(‘loop‘,i)

把names里面的每一个元素都打印。

range(0, 10)等同于

for i in range(10):

  print(i)

range(10)就是生成一个0-9的列表

死循环:

while True:

 

while和for的区别:1. while可以是死循环,for是有边界的

排序:

names.sort(),将纯字母,或者纯数字的列表进行排序(可以加入特殊字符),混合的会报错,字母就从所有大写字母开始,然后再所有小写字母,都是A-Z排序,如果有“aA”和“bB”和“Aa”和“bC”之类的,先按第一个字母排序,第一个字母相同的,再按第二个字母排序,等等等等,特殊字符排在前面,因为都是按ASCII码表排序

倒过来:

names.reverse()

拼接:

names + name2

或者

names.extend(name2)

在names列表后面加上name2列表

清空:

names.clear()

names就变为空集合[]

复制:

names.copy()

n1 = names

names[2] = Alex

n1也改为了Alex

列表跟变量不同,n1列表指向的就是names列表,而不是names列表的值

但是如果

n1 = names.copy()

n1就独立于names了,复制了一份独立的列表,不与names相关了

# 请用代码实现: 利用下划线将列表的每一个元素拼接成字符串, li = ['alex', 'eric', 'rain']

# 查找列表中元素,移除每个元素的空格,并查找以a或A开头并且以c结尾的所有元素。

li = ['alex', 'eric', 'rain']

# 计算列表长度并输出
print(len(li))

# 列表中追加元素"seven",并输出添加后的列表
li.append("seven")
print(li)

li = ['alex', 'eric', 'rain']
# 请在列表的第一个位置插入元素“Tony”,并输出添加后的列表
li.insert(0, 'Tony')
print(li)

# 请修改列表第2个位置的元素为"Kelly",并输出修改后的列表
li[1] = "Kelly"
print(li)

# 请删除列表中的元素"eric",并输出修改后的列表
li.remove("eric")
print(li)

# 请删除列表中的第2个元素,并输出删除的元素的值和删除元素后的列表
ele_deleted = li.pop(1)
print(ele_deleted)
print(li)

# 请删除列表中的第3个元素,并输出删除元素后的列表
li = ['alex', 'eric', 'rain']
del li[2]
print(li)

# 请删除列表中的第2-4个元素,并输出删除元素后的列表
li.append("alex")
li.append("seven")
li.append("eric")
print(li)
del li[1:4]
print(li)

# 请将列表所有的元素反转,并输出反转后的列表
li = ['alex', 'eric', 'rain']
li.reverse()
print(li)

# 请使用for、len、range输出列表的索引
for i in range(len(li)):
print(i)

# 请使用enumerate输出列表元素和序号(序号从100开始)
for i, element in enumerate(li, start=100):
print(i, element)

# 请使用for循环输出列表的所有元素:
for i in range(len(li)):
print(li[i])

  

አդᎱਫሿғڥአӥښᕚਖ਼ڜᤒጱྯӞӻزᔰ೪ള౮ਁᒧԀ҅
li
Җ
['alex', 'eric', 'rain']

猜你喜欢

转载自www.cnblogs.com/Jack1314/p/10312809.html