【Hello Python World】Class Notes of Week 2

2024-08-30 08:58
文章标签 python class hello world notes week

本文主要是介绍【Hello Python World】Class Notes of Week 2,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • 列表 (3.14 update)
      • 1.数组下标错误会抛出异常(与C++不同)
      • 2.一个list里可以有不同的数据结构
      • 3.插入方法
      • 4.删除方法
        • 第一种方法:pop(),有返回值
        • 第二种方法:del,没有返回值
        • 第三种方法:remove(),没有返回值,而且会抛出异常
      • 5.操作方法
        • 用sort()和sorted()从小到大排序
        • 翻转列表reverse()
        • 求长度len()
      • 6.列表的数据处理
        • 求和sum()和范围函数range()
        • 求极值min()和max()
      • 7.通过列表解析来生成列表
      • 8.列表切片
      • 9.列表复制辨析
        • 片面地复制:用=
        • 全面地复制:new_list = list[:]
      • 10.元组:只读的列表,被阉割了列表的编辑操作
      • 11.题外话:如何使print()不换行?

列表 (3.14 update)

1.数组下标错误会抛出异常(与C++不同)

li = [1,2,3,4,5]的下标范围是[-5,···,-1,0,4],越界会马上报错(C++不会)

2.一个list里可以有不同的数据结构

li = [[1,2,3],1,'2']
print(li)
#输出 [[1,2,3],1,'2']
print(1i[0][1])
#输出 2

3.插入方法

li = [['w','j'],'p']
li[0].insert(0,12)
print(li)
#输出 [[12, 'w', 'j'], 'p']

4.删除方法

第一种方法:pop(),有返回值
li = [1,2,3]
x = li.pop(1) # x = 2
print(li)
#输出 [1,3]
#pop是会返回值的
第二种方法:del,没有返回值
li = [1,2,3]
del li[1]
print(li)
#输出 [1,3]

为什么del的用法不是li.del(1)
因为del不是列表特有的方法,就像C++里的deletefree一样

第三种方法:remove(),没有返回值,而且会抛出异常

当我们不知道列表里的某个值的元素的下标是什么,但是又想删除的时候,就使用remove()

li = [1,2,1,3,4]
li.remove(1)
#输出 [2,1,3,4]
li.remove(5)
#抛出异常,输出:ValueError: list.remove(x): x not in list

remove()只能删掉第一个元素,不会重复删除,重复删除需要循环

5.操作方法

sort()sorted()从小到大排序
li = [5,3,6,2,1,9]
print(sorted(li))
#sorted() 返回一个新的列表
#输出 [1,2,3,5,6,9]
print(li)
#输出 [5,3,6,2,1,9]
li.sort()
print(li)
#输出 [1,2,3,5,6,9]

sorted()返回一个临时的新列表,排序不对原列表产生影响,注意是sorted(li)而不是li.sorted()(会报错)
sort()不返回任何东西,对原列表产生操作
li = [5,3]
print(li.sort())
输出:None

如果是不同类型的数据放在同一个列表里面排序,结果会怎么样呢?
li = [5,3,'1']
print(sorted(li))

报错:TypeError: '<' not supported between instances of 'str' and 'int'

翻转列表reverse()
li = [5,3]
print(li.reverse())
#输出:None
#print(reverse(li)) 报错
li.reverse()
print(li)
#输出:[3,5]
求长度len()
li = [5,3]
print(len(li))
#输出:2#print(li.len()) 报错
#print(lens(li)) 报错,没有lens()
#print(length()) 报错:没有length()
#print(size()) 报错:没有size()

len()这样调用的函数称为内置函数,为了使它能适用于不止list的容器,不是list特有的函数,比如

word = 'Hello'
print(len(word))
#输出:5

同理,前面讲到的sorted()也是内置函数

word = 'hello'
print(sorted(word))
#输出:['e', 'h', 'l', 'l', 'o']
#注意,【字符串】已经变成了【字符数组】了

但是字符串里面没有listappend()等类成员,也就是说字符串字符列表是不等价的,虽然说一些list的操作也能用在字符串里面,比如负数的下标

word = 'Hello'
print(word[-1])
#输出:o

6.列表的数据处理

求和sum()和范围函数range()
print( sum( range(1, 101) ) )
#输出 5050

注意:
1. range()的表示方式是左闭右开 [---),右边界要多算一个
2. range()的第三个参数是缺省的,用于指定步长,如

range(1, 20, 2) #步长为2,[1,19]
求极值min()max()
nums = [1,2,3,4,5]
print( min(nums) ) #max同理
#输出 1

7.通过列表解析来生成列表

例如:输出 1 - 10 的平方

nums = [ i ** 2 for i in range(1,11) ]

8.列表切片

当需要访问列表的一部分元素时,可以用list[a:b]来访问区间 [a,b) = [a,b-1] ,返回的也是一个列表,所以可以采用之前的对列表的操作来操作列表。

print(nums[:4]) #这样也是可以的

负数呢?比如求倒数的四个数的和:

print( sum( nums[-4:] ) )

又比如从头开始取,直到倒数第二个(也就是除了最后一个)

print(num[:-1]) #最后一个数是不包含的(开区间)

冒号两端两个数字都可以缺省:

print(nums[:]) #打印整个列表

注意:切片是一个独立于原列表的新列表:

nums = [1,2,3,,4,5]
nums[:].append(6)
print(nums)
#输出 [1,2,3,4,5] 可以看出并不受切片操作的影响

9.列表复制辨析

片面地复制:用=
nums = [1,2,3,4,5]
new_nums = nums
new_nums.append(6)
print(nums) #输出什么呢?
#输出 [1,2,3,4,5,6] !!!!

这个例子说明了Python在列表复制时使用·=是一种类似于“换名”的操作,直接赋值创造出来的列表并不独立
注意:在Python中单个变量的复制就不是换名了:num = 5new_num = num,改new_num不影响num

全面地复制:new_list = list[:]
nums = [1,2,3,4,5]
new_nums = nums[:]
new_nums.append(6)
print(nums)
#输出:[1,2,3,4,5] 可以看出两个列表是独立的,终于正常了

10.元组:只读的列表,被阉割了列表的编辑操作

元组切片是可用的,因为切片并不损伤原始数据

arr = (3,2,1)
print(arr[0:1])
#输出 [3,2]

想对元组动手?那就只能对整体下手:

arr = (3,2,1)
arr = [4,3] #这样并不违反规定

11.题外话:如何使print()不换行?

print()函数的第二个参数被省去,若不想让它换行,就加上, end = "",把默认的换行符改掉,如:

print("Hello", end = "")
print(", world!")
#输出 Hello, world!

这篇关于【Hello Python World】Class Notes of Week 2的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1120370

相关文章

python版本切换工具pyenv的安装及用法

《python版本切换工具pyenv的安装及用法》Pyenv是管理Python版本的最佳工具之一,特别适合开发者和需要切换多个Python版本的用户,:本文主要介绍python版本切换工具pyen... 目录Pyenv 是什么?安装 Pyenv(MACOS)使用 Homebrew:配置 shell(zsh

Python自动化提取多个Word文档的文本

《Python自动化提取多个Word文档的文本》在日常工作和学习中,我们经常需要处理大量的Word文档,本文将深入探讨如何利用Python批量提取Word文档中的文本内容,帮助你解放生产力,感兴趣的小... 目录为什么需要批量提取Word文档文本批量提取Word文本的核心技术与工具安装 Spire.Doc

Python中Request的安装以及简单的使用方法图文教程

《Python中Request的安装以及简单的使用方法图文教程》python里的request库经常被用于进行网络爬虫,想要学习网络爬虫的同学必须得安装request这个第三方库,:本文主要介绍P... 目录1.Requests 安装cmd 窗口安装为pycharm安装在pycharm设置中为项目安装req

Python容器转换与共有函数举例详解

《Python容器转换与共有函数举例详解》Python容器是Python编程语言中非常基础且重要的概念,它们提供了数据的存储和组织方式,下面:本文主要介绍Python容器转换与共有函数的相关资料,... 目录python容器转换与共有函数详解一、容器类型概览二、容器类型转换1. 基本容器转换2. 高级转换示

使用Python将PDF表格自动提取并写入Word文档表格

《使用Python将PDF表格自动提取并写入Word文档表格》在实际办公与数据处理场景中,PDF文件里的表格往往无法直接复制到Word中,本文将介绍如何使用Python从PDF文件中提取表格数据,并将... 目录引言1. 加载 PDF 文件并准备 Word 文档2. 提取 PDF 表格并创建 Word 表格

使用Python实现局域网远程监控电脑屏幕的方法

《使用Python实现局域网远程监控电脑屏幕的方法》文章介绍了两种使用Python在局域网内实现远程监控电脑屏幕的方法,方法一使用mss和socket,方法二使用PyAutoGUI和Flask,每种方... 目录方法一:使用mss和socket实现屏幕共享服务端(被监控端)客户端(监控端)方法二:使用PyA

Python列表的创建与删除的操作指南

《Python列表的创建与删除的操作指南》列表(list)是Python中最常用、最灵活的内置数据结构之一,它支持动态扩容、混合类型、嵌套结构,几乎无处不在,但你真的会创建和删除列表吗,本文给大家介绍... 目录一、前言二、列表的创建方式1. 字面量语法(最常用)2. 使用list()构造器3. 列表推导式

Python使用Matplotlib和Seaborn绘制常用图表的技巧

《Python使用Matplotlib和Seaborn绘制常用图表的技巧》Python作为数据科学领域的明星语言,拥有强大且丰富的可视化库,其中最著名的莫过于Matplotlib和Seaborn,本篇... 目录1. 引言:数据可视化的力量2. 前置知识与环境准备2.1. 必备知识2.2. 安装所需库2.3

Python数据验证神器Pydantic库的使用和实践中的避坑指南

《Python数据验证神器Pydantic库的使用和实践中的避坑指南》Pydantic是一个用于数据验证和设置的库,可以显著简化API接口开发,文章通过一个实际案例,展示了Pydantic如何在生产环... 目录1️⃣ 崩溃时刻:当你的API接口又双叒崩了!2️⃣ 神兵天降:3行代码解决验证难题3️⃣ 深度

Python+FFmpeg实现视频自动化处理的完整指南

《Python+FFmpeg实现视频自动化处理的完整指南》本文总结了一套在Python中使用subprocess.run调用FFmpeg进行视频自动化处理的解决方案,涵盖了跨平台硬件加速、中间素材处理... 目录一、 跨平台硬件加速:统一接口设计1. 核心映射逻辑2. python 实现代码二、 中间素材处