前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python编程从入门到实践 学习笔记

python编程从入门到实践 学习笔记

作者头像
C_H
发布2022-11-15 14:57:48
4.1K0
发布2022-11-15 14:57:48
举报
文章被收录于专栏:笔记c笔记c

一、起步

安装python的相关内容

二、变量和简单数据类型

1变量

变量的命名:

  • 只能字母、数字和下划线
  • 不能包含空格
  • 不要将Python关键字和函数名用作变量名
  • 慎用小写字母l和大写字母O

2字符串

2.1修改大小写

  • 方法title()将每个单词的首字母都改为大写
  • 方法upper()将每个字母都转为大写
  • 方法lower()将每个字母都转为小写

例如a='abc defg'

  • print(a.title())输出Abc Defg
  • print(a.upper())输出ABC DEFG
  • print(a.lower())输出abc defg

2.2合并(拼接)字符串:使用+来拼接字符串

2.3使用制表符(\t)或换行符(\n)来添加空白

2.4删除空白

  • 使用rstrip()删除字符串末尾的空白
  • 使用lstrip()删除字符串开头多余的空白
  • 使用strip()删除字符串两端的空白

其他:

  • 使用函数str()避免类型错误
  • 编写注释:用#标识

三、列表

在Python中,用方括号([])来表示列表,并用逗号来分隔其中的元素。

1访问列表元素

  • 列表是有序集合,因此要访问列表的任何元素,只需将该元素的位置或索引告诉Python即可。
  • 索引从0 而不是1 开始。
  • 将索引指定为-1,可让Python返回最后一个列表元素。
  • 索引-2返回倒数第二个列表元素,索引-3返回倒数第三个列表元素,以此类推。

2 append()和insert()

  • 方法append()将元素添加到列表末尾;
  • 使用方法insert()可在列表的任何位置添加新元素。
  • 为此,你需要指定新元素的索引和值。
  • 例如a.insert(0,'abc'),在列表的索引0的位置插入该元素。

3删除元素

  • 使用del语句删除元素,如del a[0],删除第0个元素;
  • 使用方法pop()删除元素,列表就像一个栈,而删除列表末尾的元素相当于弹出栈顶元素;
  • 使用pop()来删除列表中任何位置的元素,只需在括号中指定要删除的元素的索引即可,如a.pop(2);
  • 根据值删除元素,使用方法remove()删除指定值的元素,如a.remove('abc')

4排序

  • 使用方法sort()对列表进行永久性排序,按照字母顺序排序,例如a.sort();
  • 如果按与字母顺序相反的顺序排列,则使用a.sort(reverse=True) 使用函数sorted()对列表进行临时排序,同时不影响它们在列表中的原始排列顺序,如sorted(a);
  • 同样,如果要与字母顺序相反的顺序显示列表,也可向函数sorted()传递参数reverse=True,如sorted(a,reverse=True)
  • 反转列表元素的排列顺序,使用方法reverse(),如a.reverse()

其他:len()方法快速确定列表的长度,如len(a)

四、操作列表

1 遍历整个列表

使用for循环,例如 a=['ac','ab','dc'] for i in a: print(i)

2 range()函数

  • 要得到数字1~5,需要使用range(1,6),如list(range(1,6));
  • 使用range()函数,还可以指定步长,如list(range(2,11,2))

3 一些数学运算

  • a=3,print(a**2),输出a的2次方。
  • a=[1,2,3,4,5,6],max(a)求列表a中最大值,min(a)求列表a中最小值,sum(a)求列表中所有值的总和
  • a= [i**2 for i in range(1,11)],print(a),结果为[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

4切片

切片:使用列表的部分元素。

  • 包含起始索引,不包含终止索引,如a=[1,2,3,4,5,6,7,8,9,10],a[1:3]即为[2,3];
  • 如果没有起始索引,则从索引0开始,a[:4]即为[1,2,3,4];
  • 如果没有终止索引,则到最后一个元素结束,a[4:]即为[5,6,7,8,9,10];
  • 如果想要得到最后三个元素,可以使用a[-3:]即为[8,9,10]。

5复制列表

复制列表,可创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引([:])。

  • 这让Python创建一个始于第一个元素,终止于最后一个元素的切片,即复制整个列表。
  • 如a=[1,2,3,4],b=a[:],此处为浅拷贝。
  • 如果将列表a赋列表b,而不是将列表a的副本存储到列表b,这种语法实际上是让Python将新变量b关联到包含在a中的列表,因此这两个变量都指向同一个列表,此处为赋值,不是拷贝。

python中深拷贝与浅拷贝 此处推荐(225条消息) Python 深拷贝和浅拷贝详解xzw96的博客-CSDN博客python 深拷贝

python中深拷贝、浅拷贝、赋值引用 (225条消息) python:深拷贝,浅拷贝,赋值引用bufengzj的博客-CSDN博客深浅拷贝python

6元组

元组:使用圆括号来标识,使用索引来访问元素。

  • 列表可以修改其元素,而元组不可以。
  • 不可变的列表被称为元组。如a=(10,20),取元组中的元素a[0]、a[1]。
  • for循环遍历元组 修改元组变量:虽然不能修改元组的元素,但可以给存储元组的变量赋值。如a=(10,20),后面直接给元组a赋值,a=(30,40)。

五、 if语句

  • 在Python中检查是否相等时区分大小写;
  • and,or,in,not in,True,False等的使用
  • if语句,if-else 语句,if-elif-else 结构(可以使用多个elif,else语句可以省略)
  • 确定列表是否为空,如a=[1,2],直接if a:

六、字典

在Python中,字典是一系列键值对,与键相关联的值可以是数字、字符串、列表乃至字典。事实上,可将任何Python对象用作字典中的值。

键—值对是两个相关联的值。

  • 指定键时,Python将返回与之相关联的值。
  • 键和值之间用冒号分隔,而键—值对之间用逗号分隔。如a={'color':'red','score':5}。

键值对

  • 添加键值对:依次指定字典名、用方括号括起的键和相关联的值。如a['name']='jack'。
  • 修改字典中的值:可依次指定字典名、用方括号括起的键以及与该键相关联的新值,如a['color']='blue'
  • 删除键值对:使用del语句进行删除,如del a['color']。
  • 遍历字典中所有的键值对:例如字典a={'color':'red','score':5},for key, value in a.items(): 当然key和value只是变量名,可以是任意名称,如k和v。
  • 遍历字典中的所有键:例如for k in a.keys(): 按顺序遍历字典中的所有键:例如for name in sorted(a.keys()):
  • 遍历字典中的所有值:例如for v in a.values(): 这种做法提取字典中所有的值,而没有考虑是否重复。为剔除重复项,可使用集合(set),集合类似于列表,但每个元素都必须是独一无二的。例如for v in set(a.values()):

嵌套:

  • 列表中嵌套元组:如a1={'color':'red','score':5},a2={'color':'blue','score':10},a3={'color':'green','score':15},b=[a1,a2,a3],b.append({'color':'black','score':20})。
  • 在字典中存储列表:如a1={'color':'red','score':[5,10,15]}。
  • 在字典中存储字典:如a1={'aa':{‘a1’:1,‘a2’:2,‘a3’:3}},'bb':{‘b1’:1,‘b2’:2,‘b3’:3}}}

七、用户输入和while循环

1函数input()让程序暂停运行,等待用户输入一些文本。使用函数input()时,Python将用户输入解读为字符串。函数int()可以将数字的字符串表示转换为数值表示。求模运算符(%),取余。

2for循环用于针对集合中的每个元素的一个代码块,而while循环不断地运行,直到指定的条件不满足为止。

3我们使用函数remove()来删除列表中的特定值,这之所以可行,是因为要删除的值在列表中只出现了一次。如果要删除列表中所有包含特定值的元素,该怎么办呢?例如:while 'cat' in pets: pets.remove('cat')

八、函数

def 函数名(形参): 可以有多个形参

形参与实参

  • 函数定义中的变量称为形参
  • 函数调用中的变量称为实参

使用参数

  • 调用函数时,可以不指出参数的名称,但是实参的位置一定要写对;
  • 指出参数的名称时,实参的位置不做要求。
  • 编写函数时,可给每个形参指定默认值,在调用函数中给形参提供了实参时,Python将使用指定的实参值;否则,将使用形参的默认值。

return返回值,也可以返回字典等。

结合使用函数和while 循环

将函数存储在模块中,再导入整个模块。

  • from a import b as c,从a.py中引入函数b,并给函数b一个别名c。
  • import a as c,给模块a一个别名c,c直接调用函数,c.b()。
  • from a import *,引入模块a中所有的函数。

给形参指定默认值时,等号两边不要有空格,对于函数调用中的关键字实参,也应遵循这种约定。

九、类

1方法__ init__(),当你根据类创建新实例时,Python都会自动运行它。在这个方法的名称中,开头和末尾各有两个下划线。该方法的定义中,形参self必不可少,还必须位于其他形参的前面。

2根据类创建实例,a=Cat(),访问实例的属性,调用类中定义的方法。

3继承:定义子类时,必须在括号内指定父类的名称

十、文件和异常

(1)从文件中读取数据

1读取整个文件:

代码语言:javascript
复制
with open('a.txt') as f:
    contents = f.read()
    print(contents)

你只管打开文件,并在需要时使用它,Python自会在合适的时候自动将其关闭。

要删除末尾的空行,可在print语句中使用rstrip(),print(contents.rstrip())

2文件路径

包含相对路径和绝对路径。在Windows系统中,在文件路径中使用反斜杠(\)而不是斜杠(/)。另外,由于反斜杠在Python中被视为转义标记,为在Windows中确保万无一失,应以原始字符串的方式指定路径,即在开头的单引号前加上r。

3逐行读取

代码语言:javascript
复制
with open('a.txt') as f:
    for line in f:
        print(line)

出现多余的空白行,改为print(line.rstrip())。

4创建一个包含文件各行内容的列表

代码语言:javascript
复制
with open('a.txt') as f:
    lines= f.readlines()
for line in lines:
    print(line.rstrip())

5使用文件的内容

readlines()从文件中读取每一行,并将其存储在一个列表中。为删除每行左边的这些空格,可使用strip()而不是rstrip()。

6包含一百万位的大型文件

对于你可处理的数据量,Python没有任何限制;只要系统的内存足够多,你想处理多少数据都可以。

(2)写入文件

1写入空文件

代码语言:javascript
复制
with open('a.txt','w') as f:
    f.write("I love programming.")

打开文件时,可指定读取模式('r')、写入模式('w')、附加模式('a')或让你能够读取和写入文件的模式('r+')。如果你省略了模式实参,Python将以默认的只读模式打开文件。

如果你要写入的文件不存在,函数open()将自动创建它。然而,以写入('w')模式打开文件时千万要小心,因为如果指定的文件已经存在,Python将在返回文件对象前清空该文件。

2写入多行

要让每个字符串都单独占一行,需要在write()语句中包含换行符。

3附加到文件

如果你要给文件添加内容,而不是覆盖原有的内容,可以附加模式('a')打开文件。

(3)异常

每当发生让Python不知所措的错误时,它都会创建一个异常对象。如果你编写了处理该异常的代码,程序将继续运行;如果你未对异常进行处理,程序将停止,并显示一个traceback,其中包含有关异常的报告。

异常是使用try-except代码块处理的。try-except代码块让Python执行指定的操作,同时告诉Python发生异常时怎么办。

使用了try-except代码块时,即便出现异常,程序也将继续运行:显示你编写的友好的错误消息,而不是令用户迷惑的traceback。

1处理ZeroDivisionError 异常

如print(5/0)会出现异常。

2使用try-except 代码块

代码语言:javascript
复制
try:
    print(5/0)
except ZeroDivisionError:
    print("You can't divide by zero!")

3使用异常避免崩溃

4else 代码块

5处理FileNotFoundError 异常

Python无法读取不存在的文件,因此它引发一个异常。

6分析文本

方法split()以空格为分隔符将字符串分拆成多个部分,并将这些部分都存储到一个列表中。

7使用多个文件

8失败时一声不吭:使用pass语句

(4)存储数据

一种简单的方式是使用模块json来存储数据。

模块json让你能够将简单的Python数据结构转储到文件中,并在程序再次运行时加载该文件中的数据。

还可以使用json在Python程序之间分享数据。

更重要的是,JSON数据格式并非Python专用的,这让你能够将以JSON格式存储的数据与使用其他编程语言的人分享。

使用json.dump()和json.load()

json.dump()来存储一组数字,json.load()将这些数字读取到内存中。

函数json.dump()接受两个实参:要存储的数据以及可用于存储数据的文件对象。

先导入模块json,import json,numbers.json中数据的存储格式与Python中一样。

代码语言:javascript
复制
import json
num = [2, 3, 5, 7, 11, 13]
file = 'numbers.json'
with open(file, 'w') as f:
    json.dump(num, f)

使用函数json.load()加载存储在numbers.json中的信息,并将其存储到变量numbers中。

代码语言:javascript
复制
import json
file = 'numbers.json'
with open(file) as f:
    num = json.load(f)
print(num)

十一、测试代码

单元测试和测试用例

Python标准库中的模块unittest提供了代码测试工具。单元测试用于核实函数的某个方面没有问题;测试用例是一组单元测试,这些单元测试一起核实函数在各种情形下的行为都符合要求。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-11-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、起步
  • 二、变量和简单数据类型
    • 1变量
      • 2字符串
        • 2.1修改大小写
        • 2.2合并(拼接)字符串:使用+来拼接字符串
        • 2.3使用制表符(\t)或换行符(\n)来添加空白
        • 2.4删除空白
    • 三、列表
      • 1访问列表元素
        • 2 append()和insert()
          • 3删除元素
            • 4排序
            • 四、操作列表
              • 1 遍历整个列表
                • 2 range()函数
                  • 3 一些数学运算
                    • 4切片
                      • 5复制列表
                        • 6元组
                        • 五、 if语句
                        • 六、字典
                        • 七、用户输入和while循环
                        • 八、函数
                        • 九、类
                        • 十、文件和异常
                          • (1)从文件中读取数据
                            • 1读取整个文件:
                            • 2文件路径
                            • 3逐行读取
                            • 4创建一个包含文件各行内容的列表
                            • 5使用文件的内容
                            • 6包含一百万位的大型文件
                          • (2)写入文件
                            • 1写入空文件
                            • 2写入多行
                            • 3附加到文件
                          • (3)异常
                            • 1处理ZeroDivisionError 异常
                            • 2使用try-except 代码块
                            • 3使用异常避免崩溃
                            • 4else 代码块
                            • 5处理FileNotFoundError 异常
                            • 6分析文本
                            • 7使用多个文件
                            • 8失败时一声不吭:使用pass语句
                          • (4)存储数据
                            • 使用json.dump()和json.load()
                            • 十一、测试代码
                            相关产品与服务
                            对象存储
                            对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
                            领券
                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档