Python的期末速效救心丸

(注:该版本仅适用于nwfauers的期末复习抱佛脚免挂科专享)
本期速通专章可以分为以下几个部分:(注,记住这些,会用,基本能且只能不挂科,最好可以学会举一反三)(建议全篇学习程序设计基础)

  1. 输入输出数据类型
  2. 数据处理、控制方式
  3. 组合数据类型
  4. 函数
  5. 文件与异常

一、输入输出数据类型

在编程里,一般秉承着ipo的程序设计理念
即:input——输入;process——处理;output——输出
在我们所学的课程中,编程过程一定会有至少一个输出结果,同时,在有的情况下也会存在需要输入一些元素的情况,在输入的元素中,又会存在数据类型不同的问题,所以在第一部分我们来讲解数据的输入输出和数据类型。
一般情况下,数据的输入可以分为数值型和字符串型,即可以直接用于运算的数字和由一系列字母符号组成的字符串,当然了,字符串也可以是看起来是数字的字符串。例如:

a=12#此时,a的数据类型是数值型
b="12"#此时,a的数据类型为字符串

(一)、数据的输入

在Python中,数据的输入可以有多种形式,一般情况下我们可以无脑记住以下的输入形式:

a=input()

运用此种方式输入的数据为字符串型,不能直接用于计算,只能用于字符串类型的处理
但是如果将其嵌套进eval()中,则可以进行处理

a=eval(input())

此时,若输入数据12,则a为数值型,可以用于算数运算
(以上为必须要记住的)
在有些题目中,可能会涉及要有特殊的输入类型,例如:连续输入两个数,以空格/逗号隔开45 12或45,12
此时我们可以这么处理:

a,b=input().split(" ")#输入后以空格隔开
a,b=input().split(",")#输入后以逗号隔开

(以上方式都可以无脑背下来)

(二)、数据的输出

在编程过程中,最重要的一环,也就是输出,在我们目前所学,可以没有输入,但是一定会有一个输出的内容(除“文件”部分),输入方式也有很多种,以下介绍笔者认为比较简单易记的一种:

print()#括号里添入需要输出的内容。
print("srgerth")#输出一个字符串srgerth
print(b)#输出变量b的内容

当你需要输出的内容是一个浮点数,即小数时,例如π,有时会存在小数位数的问题,那么我们可以采用format方法:

print("{}".format())#花括号起占位作用,将format中的内容传入花括号中
print("{:.1f}".format(a))#将a的内容保留一位小数
print("{:.8f}".format(a))#将a的内容保留八位小数

更多的可以参考:format的更多用法

(三)、数据类型

在输入节,我们讲过,数据可以分为数值型、字符串型等
对于数字而言,字符串型的数字无法用于直接算术运算,只有转换成数值型才能进行算数处理。
例如:

a='12'
b='24'

此时a+b无法进行运算

a=12
b=24

此时a、b可以用于算术运算
如此,我们便需要采用数据类型转换的方式,将字符串型转换成数值型,将数值型转换成字符串型······
一般我们常用的有,将字符串型转换成数值型:int()、float();将数值型转换成字符串型:str()
例如:

a='12'
int(a)#把a转换成数值型的整型,即a=12
float(a)#把a转换成数值型的浮点型,即a=12.0
a=12
str(a)#把a转换成字符串型,即a='12'

除此之外还有很多其他的类型转换方式,以上的三个是必须要记住的,更多的可以移步程序设计基础

二、数据处理、控制方式

当我们输入了数据之后,就要对数据进行一些列处理,以达到我们所需要的结果,对数据进行处理我们可以通过算术运算、字符串处理以及多种控制结构进行复杂处理·····

(一)、数据处理

在我们进行数据处理时,难免会进行算术运算和字符串处理,相关的知识需要详细理解和记忆,可以参考程序设计基础中的部分内容

(二)、控制方式

若要对数据进行较复杂的处理,则需适当采用程序流程控制方式,可分为两种:选择结构和循环结构,这两种结构间也可相互嵌套使用。
该部分内容可见程序流程控制

三、组合数据类型

数据类型已学可以分为四个(也包括字符串)

  • 列表
  • 字典
  • 元组
  • 集合

(一)列表

形如[1,2,3,4]的由中括号括起来的,由逗号分割开的数据类型叫做列表,列表的元素编号,切片等与字符串方法别无二致,值得指出的是列表的建立、元素的添加等内容。

列表的建立

我们可以直接建立一个空列表

a=[]

也可以用eval(input())输入一个列表

a=eval(input())#此时a可以识别并存储一个列表形式的内容

(更多的不再赘述)

列表的一些处理方法

append()元素添加
sort()元素排序
remove()元素删除
inside()元素按位置加入
[0,1,2]*5列表的拓展

print([0,1,2]*5)
#[0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2]

(二)字典

字典是形如{a:b,c:d}的由花括号括起来的,以逗号分隔每组数据,每组数据由冒号分开,在冒号左边的为键,冒号右边的为值。
键和值一一对应,键不能重复,值可以重复

调用字典的内容

#假设有一个字典a,字典里有一个键是“中国”
print(a["中国"])#用字典名,后跟中括号,里面写键,就能调用字典的键对应的值

字典内容的添加

a={}#定义一个空字典
a["俄罗斯"]=2
print(a)#输出{'俄罗斯': 2}

在字典中添加键值对,只需要a[键]=值,即可在字典中添加一个新键值对

字典中内容的获取

a={"China":1,"Russia":2,"Amirican":3}
b=a.get("China")
print(b)#输出1

可以使用keys()、values()和items()方法分别获取字典中所有的键、所有的值以及所有的键值对,例如:

  • 获取所有的键
 print(d.keys())  # dict_keys(['name', 'age']) 
  • 获取所有的值
 print(d.values())  # dict_values(['Alice', 20]) 
  • 获取所有的键值对
print(d.items())   # dict_items([('name', 'Alice'),('age', 20)])

需要注意的是,返回的键、值和键值对都是字典视图对象,可以通过转换成列表或其他数据类型来进行进一步处理。

四、函数

定义函数的作用在于可以随时调用,而不用再用代码呈现所需要实现的功能
在Python中函数分为内置函数和自定义函数

(一)、自定义函数

在数学中,函数中变量有自变量和因变量之分,例如一个一元一次方程:y=ax+b,y是因变量,x是自变量那么在Python中,Python里的函数可以没有输入值,也就是没有自变量,但是一定会有一个返回值,也就是因变量。
在Python中,可以使用def关键字来定义函数。函数由函数名和代码块组成,其中函数名是标识符,它用于调用函数。代码块中包含了函数的操作。
例如:

def f(n):    #定义一个函数名为f,输入的变量参数为n的函数,冒号必不可少
def f():      #定义一个函数名为f,无输入变量参数的函数,冒号必不可少

然后经过一系列的处理后,使用return引出返回值,例如:

def f(a,b):
    if a>b:
        a,b=b,a
    return b

这个函数的作用是输入a,b两个值,返回其中较大的值
当如上定义完一个函数之后,接下来就需要调用函数了,调用函数时,只需要写出函数名和需要调用的变量参数,例如:

def f(a,b):
    if a>b:
        a,b=b,a
    return b
m=14
n=26
print(f(m,n))

在这段程序中,调用了定义的f函数,需要传入的变量参数为m和n.

(二)、内置函数

在Python中有很多其自带的函数,也有很多库函数,需要调用相关的库。
不用调用库,可以直接使用的函数,一定要记住的有:

  • max()求最大值,括号里可以是一系列数字,也可以是一个列表max(1,5,8,9)或max([1,5,8,9,6])
  • min()求最小值,使用方法如上
  • sorted()和sort()一般用于组合数据类型,如列表等不同在于:
  • sort()sorted() 都是 Python 中用于排序的函数,但它们在使用上有区别。
  1. sort() 属于列表对象的方法,会直接对原列表进行排序,不会生成一个新的列表。例如:

    numbers = [3, 2, 1]
    numbers.sort()
    print(numbers)  # 输出 [1, 2, 3]
    
  2. sorted() 是 Python 内置函数,会返回一个新的排序后的列表,原列表不受影响。例如:

    numbers = [3, 2, 1]
    sorted_numbers = sorted(numbers)
    print(sorted_numbers)  # 输出 [1, 2, 3]
    

此外,还有一些其他的区别:

  • sort() 是方法,需要在列表对象上调用,而 sorted() 是函数,可以对任何可迭代对象排序。
  • sort() 的返回值是 None,即它只是原地对列表进行排序,没有返回值;而 sorted() 返回一个新的排好序的列表。
  • sort() 可以接收一些参数(例如 keyreverse)来指定排序方式,而 sorted() 则只接受一个可迭代对象作为参数。例如:
 a.sort()#a为变量名,直接使用排序从小到大`
 a.sort(reverse=True)#a为变量名,排序从大到小

因此,如果需要排序一个列表且不需要保留原来的顺序,则可以使用 sort() 方法;如果需要保留原来的顺序或者需要对任何可迭代对象排序,则可以使用 sorted() 函数。

  • len()求数据类型的长度,应用于字符串、列表等len('aefcwcg')或len([7,8,5,9,8,6])
  • sum()求括号内元素的和,必须为数值型sum(4,5,8,6,1,18)或sum([7,4,5,6,9,7])
  • abs()求括号内元素的绝对值
    (以上内容均建议记住)

五、文件与异常

在某些情况下,我们需要去处理一个文件类型的,诸如txt文件和csv文件,此时我们就有一些列的方式包括打开、读取、写入、关闭等。

(一)文件的操作模式

文件可以分为文本文件、二进制文件,处理的方式也可分为只读、只写等,此处我们一定要记住两种基本就够用了:

  • 只读模式(‘r’):用于从文件中读取数据。
  • 只写模式(‘w’):用于将数据写入文件,如果文件已存在,则覆盖原内容;如果不存在,则创建新文件。

文件的操作模式一般要写在文件的打开部分

(二)文件的打开

文件的打开可以使用两种方式:

  • open方法
    open(文件名,操作模式)这是最基础的打开方式
a=open("abc.txt","r")
  • with open 方法
    with open(文件名,操作模式)as 变量名:
with open('abc.txt', 'r') as file_obj:
#最后的冒号不能忘记

在with open方法打开的文件,可以直接对变量名的内容进行处理

with open('abc.txt', 'r') as file_obj:
    
    for line in file_obj:
        print(line)
#分行打印了'abc.txt'文件中的每一行内容

(三)文件的读取

读文件有两种方法

  • read()
    一般用于直接读取文件里的全部内容,读取后为字符串型
  • readline()
    一般用于读取文件里的一行(段)内容,读取后为字符串型
    类似的,实现readline的功能还可以像上文中直接open文件之后:
with open('abc.txt', 'r') as file_obj:
    
    for line in file_obj:
        print(line)

(四)文件的修改(写入)

文件的写入有两种方式,分别为write()和writelines()

  • write()方法用于写入单行文本或二进制数据到文件中。
    变量名.write(内容)
  • writelines()方法用于写入多行文本或二进制数据到文件中。
    变量名.writelines(内容)
    例如:
# 打开文件
file = open('example.txt', 'w')
# 写入单行文本
file.write('Hello, world!\n')
# 关闭文件
file.close()
# 打开文件
file = open('example.txt', 'w')
# 写入多行文本
lines = ['Hello, world!\n', 'Welcome to Python!\n']
file.writelines(lines)
# 关闭文件
file.close()

(五)文件的关闭

在Python中打开文件后,最后一定要记得关闭文件。关闭文件的目的是释放系统资源并刷新输出缓冲区,确保写入的数据被正常保存到文件中。
关闭文件可以使用close()方法:

变量名.close()

除了手动关闭文件,还可以使用with语句来自动管理文件的打开和关闭,这样可以确保文件在使用完后自动关闭,避免出现文件句柄泄漏等问题。

with open('example.txt', 'r') as file:
    # 读取文件内容
    content = file.read()
    # 文件自动关闭

上述代码中,open()函数返回文件对象,然后使用with语句将该文件对象赋值给变量file,在with块内读取文件内容,with块执行完毕后会自动关闭文件。

(六)csv文件的处理

要处理csv文件,一定要记住最开头加上“import csv”,要调用csv库,才能处理csv文件
例如:

import csv
with open('example.csv', 'r') as file_obj:
    reader = csv.reader(file_obj)#此处一定要使用“csv.reader”,csv.writer是csv库里专门处理csv文件读取的方法
    for row in reader:#这里读取的就是csv文件的一行内容,以列表的形式展现出来
        print(row)

以上代码使用csv.reader()函数将csv文件对象转换为csv.reader对象,并使用for循环逐行读取csv文件内容并打印为列表形式。

如果需要将数据写入csv文件中,可以使用csv.writer()函数。以下是一个将二维列表写入csv文件的示例:

import csv
data = [['Name', 'Age', 'City'],
        ['Alice', '20', 'Beijing'],
        ['Bob', '22', 'Shanghai'],
        ['Charlie', '25', 'Guangzhou']]
with open('example.csv', 'w', newline='') as file_obj:
    writer = csv.writer(file_obj)#csv.writer是csv库里专门处理csv文件写入的方法
    for row in data:
        writer.writerow(row)

以上代码将一个二维列表data写入example.csv文件中,每个列表元素占据csv文件的一行,用,隔开。注意,在打开csv文件时需要指定newline=”参数,否则写入的csv文件将会有重复空行

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
青葱年少的头像青葱年少普通用户
上一篇 2023年6月13日
下一篇 2023年6月13日

相关推荐