Pythonfdu学习

本文是笔者根据fdu的python课程ppt总结的知识点,权当python基本知识的备忘录。第一次整理难免有很多疏漏与不足之处,希望能与大家多多交流、共同进步。

转义字符

在这里插入图片描述
isinstance(object,class)
用来判断object是否是指定类型:isinstance(3,int)

标识符对大小写敏感

整数可以为任意大的数值

c.real 返回实部
c.imag 返回虚部
c.conjuate 返回共轭复数

整除 // 浮点除法/ 取余%

数学函数

比较运算符: 返回bool值在这里插入图片描述
内置数学函数:
在这里插入图片描述
import math 或者 from math import *
在这里插入图片描述
sin() cos()默认是弧度值
在这里插入图片描述

字符串

字符串转义
在这里插入图片描述

Range

在这里插入图片描述
range([start,]stop[,stop])
第一个参数表示起始值–(-1/0)
第二个参数表示终止值
第三个参数表示步长(默认为 1)

列表

用list表征-------- eg: list(range(10))
del 删除列表操作: del a_list

列表元素的增加:
可以使用 + 运算符来实现将元素增加到列表中的功能——actually 创建一个新列表
例: a_list = [3,4,5]
a_list = [3,4,5] + [7]

append()
alist.append(9) ——在列表的尾部添加元素

extend() -------在列表尾部添加多个元素
a = [5,2,4]
a.extend([7,8,9])
a>>> [5,2,4,7,8,9]

insert() ——将元素添加至列表的指定位置

在这里插入图片描述
用数乘的方式复制列表:
在这里插入图片描述
在这里插入图片描述
列表元素的删除:(删除特定位置的元素)
在这里插入图片描述
在这里插入图片描述

利用for循环删除列表中元素的重复

循环+remove :remove() 删除首次出现的指定元素
x = [1,2,1,2,1,2,1,2,1]
for i in x:
if i == 1:
x.remove(i)
————然而代码逻辑是错误的

在这里插入图片描述
所以合乎逻辑的代码:

x = [1,2,1,2,1,1,1]
for i in x[::]
if i == 1
x.remove(i)

切片操作返回是和被切片对象相同类型对象的副本————当步长省略时可以顺便省略最后一个冒号

通常一个切片操作要提供三个参数 [start_index: stop_index: step]

start_index是切片的起始位置

stop_index是切片的结束位置(不包括)

step可以不提供,默认值是1,步长值不能为0,不然会报错ValueError。

当 step 是正数时,以list[start_index]元素位置开始, step做为步长到list[stop_index]元素位置(不包括)为止,从左向右截取,

start_index和stop_index不论是正数还是负数索引还是混用都可以,但是要保证 list[stop_index]元素的【逻辑】位置

必须在list[start_index]元素的【逻辑】位置右边,否则取不出元素。

比如下面的几个例子都是合法的:

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

alist[1:5]

[1, 2, 3, 4]

alist[1:-1]

[1, 2, 3, 4, 5, 6, 7, 8]

alist[-8:6]

[2, 3, 4, 5]

当 step 是负数时,以list[start_index]元素位置开始, step做为步长到list[stop_index]元素位置(不包括)为止,从右向左截取,

start_index和stop_index不论是正数还是负数索引还是混用都可以,但是要保证 list[stop_index]元素的【逻辑】位置

必须在list[start_index]元素的【逻辑】位置左边,否则取不出元素。

比如下面的几个例子都是合法的:

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

alist[-1: -5: -1]

[9, 8, 7, 6]

alist[9: 5: -1]

[9, 8, 7, 6]

alist[-1:1:-1]

[9, 8, 7, 6, 5, 4, 3, 2]

alist[6:-8:-1]

[6, 5, 4, 3]

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
成员资格判断: 常在循环中使用关键字in对可迭代对象的元素进行遍历
在这里插入图片描述

切片操作:

在这里插入图片描述
切片返回的是列表元素的浅拷贝

aList = [3, 5, 7]
bList = aList[::] #浅复制
aList == bList
True

aList is bList
False

id(aList) == id(bList)
False >>> bList[1] = 8

bList
[3, 8, 7]

aList
[3, 5, 7]

在这里插入图片描述

使用切片来原地修改列表内容

使用del与切片结合来删除列表元素:

alist = [3,5,7,9,11]
del alist[:3] #从第零个元素开始,到第个元素,全部删掉
alist>>> [9,11]

列表排序:

sort
引用random库在这里插入图片描述

**使用内置函数sorted对列表进行排序并返回新列表:

aList
[9, 7, 6, 5, 4, 3, 17, 15, 13, 11]

sorted(aList)
[3, 4, 5, 6, 7, 9, 11, 13, 15, 17]

sorted(aList,reverse = True) #由大到小排列
[17, 15, 13, 11, 9, 7, 6, 5, 4, 3]
使用内置函数reversed方法对列表元素进行逆序排列并返回迭代对象**

reverse = True

序列大小比较:
在这里插入图片描述
sum对非数值型列表运算则出错

alist = [1,2,3]
blist = [4,5,6]
clist = zip(alist,blist)

list(clist)
[(1,4),(2,5),(3,6)]

在这里插入图片描述
enumberate
在这里插入图片描述

格式字符

%s 字符串采用str()的显示 %x 十六进制整数
%r 字符串(repr())的显示 %e 指数(基底写e)
%c 单个字符 %E 指数(基底写E)
%b 二进制整数 %f,%F 浮点数
%d 十进制整数 %g 指数(e)或浮点数(根据显示长度)
%i 十进制整数 %G 指数(E)或浮点数(根据显示长度)
%o 八进制整数 %% 字符%

字符串格式化
format_string%obj

x**y 幂运算
x==y x!=y 相等不等比较
x or y 逻辑或
x and y 逻辑与
not x 逻辑非

random函数库

基本输入输出
input(prompt) 首先promp 等待用户输入 直到用户按回车结束 返回用户输入的字符串
print()

import 模块名 as 别名

Python代码编写规范–利用代码块的缩进来体现代码之间的逻辑关系
建议以四个空格为基本缩进单位,不建议采用tab来缩进
运算符两侧建议用空格分开 逗号在其后面添加一个空格 不同功能的代码块之间、不同的函数定义之间建议增加一个空行以提高可读性

每个import直到如一个模块

import math 
x = input('输入两边长及夹角(度),以逗号分隔:') 
a, b, sita = eval(x) #序列解包 
c = math.sqrt(a**2 + b**2 - 2*a*b*math.cos(sita*math.pi/180)) 
print('c=', c)

id() 函数返回对象的唯一标识符,标识符是一个整数。 CPython 中 id() 函数用于获取对象的内存地址。

Python序列

列表 元祖 字典 字符串 集合 range 等等
列表 其中数据类型可以各不相同
[10,‘20’,‘thirty’,40.00]
通过下标来访问元素

列表元素修改

元组:

属于不可变序列

元素放在()中

如果创建只有一个元素的元组,需要在元素后面加上一个括号: a_tuple = (‘a’,)

使用del删除元组对象 不能删除元组元素

在这里插入图片描述
元组中的元素不可变 但当元素所指向的对象可变 则该对象的值是可变的
在这里插入图片描述

选择与循环:

条件表达式:

算术关系符:
关系运算符:
测试运算符: in not in is is not
逻辑运算符:and or not
位运算符: ~ & | ^ << >>

比较特殊的运算符和逻辑运算符 and or 具有短路求值特点 只计算必须计算表达式的值
注意= 和 ==的区别

选择结构: 单分支 双分支 多分支 嵌套分支

双分支结构: value1 if condition else value2
在这里插入图片描述

利用多分支选择结构将成绩从百分制变换到等级制的用法:

在这里插入图片描述选择结构的嵌套:注意缩进一致

循环结构:

for循环 while循环

while 表达式:
循环体
else:
else 字句

for 变量 in 序列或迭代对象:
循环体
else:
else子句

while not (,条件)
在这里插入图片描述
在这里插入图片描述
break 和 continue
在这里插入图片描述
在这里插入图片描述

循环嵌套
在这里插入图片描述
在这里插入图片描述两维列表与循环嵌套

两维列表

循环嵌套的break

在这里插入图片描述

字符串与正则表达式:

字符串:
在这里插入图片描述
python字符串的驻留机制:——将其赋值给多个不同的对象时 内存中只有一个副本 多个对象共享该副本

判断s是否是字符串: isinstance(s, str)

在这里插入图片描述import string

在这里插入图片描述
在这里插入图片描述
import string
s = input("请任意输入: ")
charset = string.ascii_letters + string.digits (将字母、数字构成一个集合)
t = “”
for x in s:
if x in charset:
t = t + x
print(t)

字符串转换函数:

str.lower()

• lower() • 得到小写格式字符串
• upper() • 得到大写格式字符串
• capitalize() • 得到首字母大写格式
• title() • 得到每个单词首字母大写格式
• swapcase() • 得到大小写互换格式

字符与asc_ii的互相转换函数:
ord(‘h’) ord(‘5’) -------- 将字符转换为asc_ii
chr(55)----‘7’ --------将asc_ii码转换为字符

字符串联接join()

在这里插入图片描述
print(" ".join(input("请输入一串字符: "))) #输入一个字符串 输出以空格间隔的字符序列

获取字符串表达式的值:eval(.)
在这里插入图片描述将数字转换成字符串 str(.)
在这里插入图片描述
简单的加密与解密——可以理解成:报数出圈

**** pop函数

在这里插入图片描述
在这里插入图片描述
字符串对齐的方法:
center(.) ljust(.) rjust(.)
在这里插入图片描述

打印三角形图案:
常用函数:
join eval()
在这里插入图片描述
记得对字符串进行这类类运算操作

字符串格式化:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Python字符串格式化之format()方法:

基本格式: <模板字符串>.format(<逗号分隔的参数>)

调用format()方法后会***返回一个新的字符串***,同时参数从0开始编号:

从0编号举例:

a = 3
b = 4
print('a={1},b={0}'.format(a,b))

输出:a=4,b=3

a = 3
b = 4
print('a={0},b={1}'.format(a,b))

输出: a=3,b=4

用大括号

s = input('输入你在干啥: ')
print('肖炳楠在{}'.format(s))

“{}:计算机{}的CPU 占用率为{}%。”.format(“2016-12-31”,“PYTHON”,10)
Out[10]: ‘2016-12-31:计算机PYTHON的CPU 占用率为10%。’

format()方法连接不同类型的变量与内容

print('the number {0:,} in hex is: {0:#x},the number {1} in oct is {1:#o}'.format(5555,55))

{0:,}中的逗号 使得输出三位一个逗号隔开–只能对十进制采用此操作

对数组、列表进行输出:
在这里插入图片描述
在这里插入图片描述
字符串分割:
字符串替换:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
正则表达式:

1.普通字符:包括ascii字符 unicode字符 转义字符

python中 re模块提供正则表达式操作所需要的功能
re.finall(pattern,string) 以列表形式列出字符串中模式的所有匹配项
即使用时:
import re
re.findall(‘d’,‘goddness’)

2.正则表达式元字符: 字符类 预定义字符类 边界匹配符 重复限定符 分组符 选择符

(1)字符类:

函数设计与使用:

(一)函数定义与调用

定义格式:

def 函数名([形参列表]): #注意冒号
“注释”
函数体

函数调用:
函数名([实参列表])

在这里插入图片描述
在定义函数时,开头部分要写上注释,后调用函数时 输入左侧圆括号后 立即就会得到该函数的使用说明
在这里插入图片描述
函数可以返回值 也可以不返回 如果函数体中包含return语句 则返回值 否则不返回 即返回值为空

(二)形参与实参
多个形参 用逗号进行分隔
• 绝大多数情况下,在函数内部直接修改形参的值不会影响实参
• 在有些情况下,可以通过特殊的方式在函数内部修改实参的值

在这里插入图片描述
即:如果传递给函数的是Python可变序列,并且在函数内部使用下标或其他方式为可变序列增加、删除元素或修改元素值时,可以使得实参得到相应的修改。

(三) 参数类型:
普通参数 默认值参数 关键参数 可变长度参数等,
在定义函数时 不需指定参数的类型

Python函数的定义非常灵活,在定义函数时不需要指定参数的类型
,形参的类型完全由调用者传递的实参类型以及Python解释器的理解和推断来决定,类似于重载和泛型;
• 函数编写如果有问题,只有在调用时
才能被发现,传递某些参数时执行正确,而传递另一些类型的参数时则出现错误。

(1)默认值参数:
在这里插入图片描述

使用 函数名.defaults 以元组形式查看所有默认参数的值

默认值参数必须出现在函数参数列表的最右端,且任何一个默认值参数右边不能有非默认值参数。
在这里插入图片描述

(2)关键参数
(3)可变长度参数

在这里插入图片描述

(四)return语句

• return语句
用于从一个函数中返回并结束函数的执行,同时还可以通
过其从函数中返回一个值。

• 无论return语句
出现在函数的什么位置,一旦得到执行将直接结束函数的
执行。

函数的返回值类型由return语句返回值的类型来决定
• 如果函数没有return语句或者没有执行return语句,
执行了不带任何值的return语句,则函数都默认为返回
空值None。

在这里插入图片描述

(五)变量作用域——变量起作用的范围 可分为 局部变量、全局变量

局部变量:只在对应函数内部起作用 函数结束时自动被删除
全局变量:其作用域为全局的 能同时作用于函数内外 用关键字global来定义

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(六)lambda表达式 在这里插入图片描述

用来声明匿名函数 既没有函数名字的临时使用的小函数 只可以包含一个表达式 且该表达式的计算结果为函数的返回值,不允许包含其他复杂的语句 但在表达式中可以调用其他函数
在这里插入图片描述
高级话题:

文件操作:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
文件打开详解:
在这里插入图片描述
在这里插入图片描述

#filename property.py
import os
def printfp():
 fh = open('sample.txt')
 try:
    print('file name : %s' % fh.name)
    print('access mode: %s' % fh.mode)
    print('encoding : %s' % fh.encoding)
    print('closed : %s' % fh.closed)
 finally:
     fh.close()
#end printfp
if __name__=='__main__':
 printfp()
#end if

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
向文本文件写入内容:
在这里插入图片描述
二进制文件: 使用pickle写入数据
import pickle

异常处理结构与程序调试:

常用的异常类:
在这里插入图片描述
常见的异常处理结构:
try…except结构 (base exception基本异常类)
在这里插入图片描述
try…except…else结构
在这里插入图片描述
for arg in sys.argv[1:]:
try:
f = open(arg,‘r’)
except IOError:
print(‘cannot open’,arg)
else:
print(arg,‘has’,len(f.readlines()),‘lines’)

猜你喜欢

转载自blog.csdn.net/xbn20000224/article/details/108538848