龙空技术网

python基础 day06

小悦 171

前言:

眼前看官们对“python空行回车结束录入怎么做到的”大体比较关心,你们都需要分析一些“python空行回车结束录入怎么做到的”的相关知识。那么小编在网摘上网罗了一些有关“python空行回车结束录入怎么做到的””的相关内容,希望朋友们能喜欢,各位老铁们一起来了解一下吧!

day05回顾 :

break语句

for 语句

for 变量 in 可迭代对象:

... do somthing...

else:

...

continue 语句

while i < 100:

pass

else:

pass

循环相关的语句:

while

for

break

continue

range 函数:

等差数列

1 3 5 7

for 嵌套:

列表:

列表是可变的序列

列表是容器

[] 空列表 等同于 list()

[1,2,3,4] 等同于 list(range(1,5))

列表的运算:

+ += * *=

列表的比较:

< <= > >= == != is is not

day06笔记:

列表的 in / not in运算符 (成员身份验证运算符)

作用:

判断一个值是否存在于列表中,存在返回True,不存在返回 False

同字符串的in运算符相同.

示例:

x = [1, "two", 3, "Four"]

3 in x # True

3 not in x # False

'two' in x # True

列表的索引操作:

语法:

列表[整数表达式]

用法:

等同于字符串的索引

索引分正向索引和反向索引(同字符串)

示例:

L = [1, 2, 3, 4]

print(L[0]) # 1

print(L[-1]) # 4

思考:

如何让列表从后向前依次打印列表的值:

# 正向的打印

for x in L:

print(x)

# 反向打印:

for x in L[::-1]:

print(x)

for i in range(3, -1, -1):

print(L[i])

列表的索引赋值:

列表是可变的序列,可以通过索引改变列表的元素

例:

L = [1,2,3,4]

L[2] = 3.14 # 索引赋值

print(L)

对比字符串:

L = [1,2,3,4]

L += [5] # 创建了新的列表,不是改变原列表

print(L) #

s = "ABCD"

s += "E"

print(s)

列表的切片

语法:

列表[开始索引:终止索引: 步长]

列表的切片取值规则等同于字符串切片规则.

示例:

x = [0,1,2,3,4,5,6,7,8]

y = x[1:9:2] # y = [1,3,5,7] 奇数

y = x[9:1:-2] # y = [8,6,4,2]

x[::-2]

列表的切片赋值:

作用:

可以改变原列表,可以插入和删除数据,也可以改变数据

说明:

切片赋值的等号运算符的右侧必须是一个序列

语法:

列表[(开始索引):(终止索引)(:(步长))] = 序列

示例:

L = [2,3,4]

L[0:1] = [1.1, 2.2]

L = [2,3,4]

L[2:] = [3.3, 4.4, 5.5]

L = [2,3,4]

L[3:] = [5.5, 6.6]

L = [2,3,4]

L[0:0] = [0, 1] # [0, 1, 2, 3, 4]

L = [2,3,4]

L[1:1] = [2.5, 2.6]

# 删除数据

L = [2,3,4]

L[1:] = []

L = [2,3,4]

L[1:2] = "ABC" # L=[2, 'A', 'B', 'C', 4]

L[1:2] = ["ABC"] # L=[2, "ABC", 4]

对于步长大于1 的切片赋值:

L = [1, 2, 3, 4, 5, 6]

L[::2] = [] # 错的

L[::2] = [1.1, 3.3, 5.5] # L = [1.1, 2, 3.3, 4, 5.5, 6]

L[::2] =[1,2,3,4] # ????

说明:

对于步长大于1的切片赋值,序列的个数要等于切出的段数

对于反向切片的赋值,规则同正向切片,同学们自己偿试

思考:

L = [1, 2, 3, 4, 5, 6]

能否将 1,3,5删除? 答案是用切片无法实现

L[::2] = [[], [], []]

del 语句

可以用del语句删除变量,也可以用它来删除列中的元素

语法:

del 列表[整数表达式] # 索引

del 列表[::] # 切片

示例:

L = [1,2,3,4,5,6]

del L[3] # 结果 L = [1,2,3,5,6]

L = [1,2,3,4,5,6]

del L[::2] # 结果 L = [2,4,6]

Python3中常用于序列的函数:

len(seq)

max(x)

min(x)

-----以上是我们以前学过的-----

sum(x) 返回序列中所有元素的和(元素必须是数值类型)

any(x) 真值测试,如果序列中其中一个值为真值则返回True,全为假返回False

all(x) 真值测试,如果序列中所有值为真值返回True,否则返回False

示例:

L = [1, 2, 3, 4, 6]

len(L) # 5

max(L) # 6

min(L) # 1

L = [1, 2.0, 3.14]

max(L) # 对的 返回值为3.14

L = [1, 2, "3"]

max(L) # 错的

练习:

任意输入五个数,存于列表中,打印出这五个数的最大值,最小值,平均值

常用的列表 方法 method:

对象.方法名(传参)

假设列表名为L

L.index(v[, begin[, end]]) 返回对应元素的索引下标,begin为开始索引,end为结束索引

L.insert(index, obj) 将某个元素插入到列表中的指定位置

L.count(x) 返回列表中的元素个数

L.remove(x) 从列表中删除第一次出现在列表中的值

L.copy() 复制此列表(只复制一层,不会复制深层对象)

L.append(x) 向列表中追加单个元素

L.extend(lst) 向列表追加另一个列表

L.clear() 清空列表,等同于 L[:] = []

L.sort(reverse=False) 将列表中的元素进行排序,默认顺序按值的小到大顺序排列

L.reverse() 列表的反转,用来改变原列表的先后顺序

L.pop([index]) 删除索引用对应的元素,如果不加索引,默认删除最后元素,同时返回删除的元素

详见: >>> help(list)

示例:

L = [5, 7, 9, 3, 1]

L2 = L.copy() # L2 = [5, 7, 9, 3, 1]

L[2] = 10

L2 # L2的值不变

L = [1,2,3]

L2 = L[:] # 切片实现复制

L[1] = 2.2

L2 # L2 = [1,2,3]

# append 和extend

L = [1,2,3]

L.append(4) # L = [1,2,3,4]

L.extend([5,6,7]) # L = [1,2,3,4,5,6,7]

# 思考

L = [1,2,3,4]

L.append([5,6,7]) # L = [1,2,3,4,[5,6,7]]

# 思考

L = [1,2,3]

L2 = L

# L = [] # 这算清空列表吗?答:不算清空列表

L[:] = [] # 同于L.clear()

print(L2) # [1,2,3]

# 排序

L = [5, 7, 9, 3, 1]

L.sort() # L = [1, 3, 5, 7, 9]

L = [5, 7, 9, 3, 1]

L.sort(reverse=True) # L = [9,7,5,3,1]

练习:

输入多行文字,存入列表中

每次输入后回车算作一行,

任意输入多行,当直接输入回车(即空行时算作输入结束)

1) 打印刚才输入的行数

2) 按原输出的内容在屏幕上输出内容

3) 打印刚才您共输出了多少字符

深拷贝 和 浅拷贝

浅拷贝 (shallow copy):

示例:

L = [3.1, 3.2]

L1 = [1, 2, L]

L2 = L1.copy()

L[0] = 3.14

print(L1) # L1 = [1, 2, [3.14, 3.2]]

print(L2) # L2 = [1, 2, [3.14, 3.2]]

深拷贝 (deep copy)

import copy # 导入copy 模块

L = [3.1, 3.2]

L1 = [1, 2, L]

L2 = copy.deepcopy(L1) # 深拷贝

L[0] = 3.14

print(L1) # [1, 2, [3.14, 3.2]]

print(L2) # [1, 2, [3.1, 3.2]] #此对象不会被修改

注:深拷贝通常只对可变对象进行复制,不可变对象通常不变

列表与字符串比较:

1) 列表和字符串都是序列,元素之间有先后关系

2) 字符串是不可变的序列,列表是可变的序列

3) 字符串中每个元素只能存储字符,而列表可以存储任意类型的元素

4) 列表和字符串都是可迭代对象

L = [1,2,3,4]

for x in L:

print(x)

练习:

已知有列表

L = [3,5]

用L的方法实现原列表变为:

L = [1,2,3,4,5]

将列表反转,删除最后一个后打印此列表

print(L) [5,4,3,2]

字符串文本解析方法:

S.split(sep=None) 将字符串,使用sep作为分隔符分割字符串,返回分割后的列表。

S.join(iterable) 用可迭代对像中的字符串,返回一个中间用s进行分隔的字符串

中文帮助文档:

示例:

# 字符拆成列表

s = "abcd abc ab a"

s.split(' ')

# 由字符串组成的序列合并为字符串

L = ["welcome", "to", "beijing"]

s = ' '.join(L) # s = "welcome to beijing"

练习:

1. 有字符串"hello"

生成字符串"h e l l o" 和 "h-e-l-l-o"

s = 'hello'

' '.join(list(s))

2. 有一些数存于列表中.如:

L = [1, 3, 2, 1, 6, 4, 2, ....., 99, 82]

要求将列表中只出现一次的元素存入另一个列表L2中

3. 将10000以内的所有素数存于列表中,求这些素数的和

标签: #python空行回车结束录入怎么做到的