Python 3级

2021-08-17  本文已影响0人  不会飞的程序员

一、进制转换

1.其他进制转10进制

2. 10进制数转其他进制

3.非10进制之间的转化

二、文件处理

文件处理的步骤一般如下:

1.打开文件

使用open(name[, mode[, buffering]])方法打开文件,其参数说明如下:

2.操作文件

file对象方法如下:

3.关闭文件

关闭文件 f.close()

4. 文件操作一般步骤

5.一维数据的操作

什么是一维数据

答:由对等关系的有序或无序数据构成,采用线性方式(一条直线排开)组织。对等关系:这些数据平级关系(不是包含、从属关系)

一维数据的写入

思路:将列表中的一维数据先转化为字符串,再将字符串写入文件中。

data = ['上海','北京','重庆','天津']
# 写数据
with open('test.txt','w',encoding='utf-8') as f:
  # 将列表转化为字符串
  data = ','.join(data)
  # 写入文件
  f.write(data)

一维数据的读取

思路:打开文件,使用f.read()方法将文件中的内容读取成字符串,再将这个字符串按照‘,’分割成列表。

data = []
with open('test.txt','r',encoding='utf-8') as f:
  data_str = f.read() # 读取内容
  data = data_str.split(',') # 将内容以逗号分割

6.二维数据的操作

什么是二维数据?

答:由多个一维数据构成,是一维数据的组合形式。也称为表格数据,其中,表头是二维数据的一部分,也可以不作为其中的一部分。

二维数据的表示形式?

答:使用二维列表来表示二维数据、

姓名 年龄 性别 电话
孙悟空 500 18888888888
猪八戒 36 18877777777
沙和尚 28 18866666666
唐三藏 15 18855555555
白龙马 9 18844444444
白骨精 2000 18833333333

二维数据的写入

思路:将二维列表转化为储存字符串的一位列表,然后遍历列表,将每个字符串单独写到文件中的一行。

data = [
  ['孙悟空','500','男','18888888888'],
  ['猪八戒','36','男','18877777777'],
  ['沙和尚','28','男','18866666666'],
  ['唐三藏','15','男','18855555555'],
  ['白龙马','9','男','18844444444'],
  ['白骨精','2000','女','18833333333']
  ]
  
with open('test.csv','w',encoding='utf-8') as f:
  for item in data:
    f.write(','.join(item)+'\n')

二维数据的读取

思路:将所有数据先读取出来,然后按照换行分割,再将每个分割后的字符串按照逗号分割。

result = []
with open('test.csv','r',encoding='utf-8') as f:
  for i in f:
      result.append(i.strip('\n').split(','))
print(result)

三、异常处理

1.概念

python解释器检测到错误,触发异常(也允许程序员自己触发异常)。程序员编写特定的代码,专门用来捕捉这个异常(这段代码与程序逻辑无关,与异常处理有关)。如果捕捉成功则进入另外一个处理分支,执行你为其定制的逻辑,使程序不会崩溃,这就是异常处理。

python解释器去执行程序,检测到了一个错误时,触发异常,异常触发后且没被处理的情况下,程序就在当前异常处终止,后面的代码不会运行,谁会去用一个运行着突然就崩溃的软件。所以你必须提供一种异常处理机制来增强你程序的健壮性与容错性。良好的容错能力,能够有效的提高用户体验,维持业务的稳定性。

程序运行中的异常可以分为两类:语法错误和逻辑错误。首先,我们必须知道,语法错误跟异常处理无关,所以我们在处理异常之前,必须避免语法上的错误。

2.异常种类

在python中不同的异常可以用不同的类型(python中统一了类与类型,类型即类)去标识,不同的类对象标识不同的异常,一个异常标识一种错误。

常见异常:

AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x

IOError 输入/输出异常;基本上是无法打开文件

ImportError 无法引入模块或包;基本上是路径问题或名称错误

IndentationError 语法错误(的子类) ;代码没有正确对齐

IndexError 下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5]

KeyError 试图访问字典里不存在的键

KeyboardInterrupt Ctrl+C被按下

NameError 使用一个还未被赋予对象的变量

SyntaxError Python代码非法,代码不能编译(个人认为这是语法错误,写错了)

TypeError 传入对象类型与要求的不符合

UnboundLocalError 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,
导致你以为正在访问它

ValueError 传入一个调用者不期望的值,即使值的类型是正确的

其他异常

ArithmeticError

AssertionError

AttributeError

BaseException

BufferError

BytesWarning

DeprecationWarning

EnvironmentError

EOFError

Exception

FloatingPointError

FutureWarning

GeneratorExit

ImportError

ImportWarning

IndentationError

IndexError

IOError

KeyboardInterrupt

KeyError

LookupError

MemoryError

NameError

NotImplementedError

OSError

OverflowError

PendingDeprecationWarning

ReferenceError

RuntimeError

RuntimeWarning

StandardError

StopIteration

SyntaxError

SyntaxWarning

SystemError

SystemExit

TabError

TypeError

UnboundLocalError

UnicodeDecodeError

UnicodeEncodeError

UnicodeError

UnicodeTranslateError

UnicodeWarning

UserWarning

ValueError

Warning

ZeroDivisionError

3.基本语法

try:
  语句...
  ...
except <异常名称(如果不写则捕获所有异常)>:
  处理异常语句...
  ...
else:
  没有发生异常,则执行的语句...
  ...
finally:
  无论有没有捕获到异常,都要执行的代码...
  ...

4.例子

inp1 = input('请输入一个数字:')
inp2 = input('请输入一个数字:')
try:
  sum_inp = int(inp1)+int(inp2)
  print('您输入的数字之和为:'+str(sum_inp))
except ValueError:
  print('您输入的内容不合法')
finally:
  print('这是finally语句')

四、常用内置函数

1.数学运算类

求一个数的绝对值。

abs(-68) # 输出68

返回一个整除结果和取模结果的二元组。(先整除,后取模)

divmod(10,3) # 返回(3,1)

n可以是一个字符串或列表或元组或集合或可变长参数,求他们当中的最大值。

max(1,5,8,9,7) # 返回9
max([1,6,9,8,7]) # 返回9
max('asdgasdey') # 返回y

求最小值,用法和max一样

n是一个可变长参数,传入数字可求他们的和。

sum(1,2,3,4,5,6) # 返回21

将传入的浮点数n1,保留n2位小数。四舍五入

round(3.1415926,2) # 保留两位小数  返回3.14
round(3.1455926,2) # 保留两位小数  返回3.15
上一篇下一篇

猜你喜欢

热点阅读