# 80后0基础学python-记录5

80后0基础学python-记录5
时间:时间开始:2020.06.26
记录周期: 2020.07.03-2020.07.05
昨天看了另外一本,想两本书结合的看,同时看,看了一章感觉现在这本书看着更方便,就改这本书了。
下面的就是今天看的书,下面的内容,可以算是看这本书所记的笔记吧。
在这里插入图片描述
二、基本语法及结构控制
逃逸符

’ 单引号“’” ‘’ 双引号“ " ”
\ 反斜杠 \ \n 换行
\r 光标移到行首 \t TAB键
\v 垂直定位 \a 响铃
\b 后退键(BackSpace) \f 换页
\x 以十六进制表示字符 \o 以八进制表示字符

print及type命令:

print(对象1[,对象2,…,sep=分隔字符,end=x终止符]])
例:print(100,60.sep="&",end" ") #100&60

参数格式化功能:%s 代表字符串; %d 代表整数; %f 代表浮点数;
print(对象 %(参数行))
%5d:固定输出为5个字符的宽度,小于5个会在左边填入空格,大于5时全部输出
%5s:固定输出为5个,同上
%8.2f: 固定输出8个字符宽度含小数部分,其中小数输出为2位,若整数部分小于8-3=5个时,左边填空格,若小数位少于2位,会右方填入“0”

例如:
1格式化输出23.8
price=23.8
print(“价格为%8.2f” % price)
#价格为 23.80, 左边3个空格,右边0

format方法,用一对"{}"表示参数位置,语法为:
print (字符串.format(参数行))

例如:用字符串的format方法输出
name=“林小明”
score=80
print("{}的成绩为{}".format(name,score))
#林小明的成绩为80

type(对象)
print(type(56)) #<class ‘int’>
print(type(”How are you!“)) #<class ‘str’>
print(type(Ture)) #<class ‘bool’>

例如:
1 print(“姓名 座号 语文 数学 英文”)
2 print("%3s %2d %3d %3d %3d" % (“林大明”,1,100,87,79))

数据类型的转换
整数+浮点 =浮点
整数+布尔值=整数 (Ture=1 False=0l) num2=5+Ture #6
int() 强制转为整数型
float() 转为浮点型
str() 转为字符串型

eg:
score=60
print(“小明的成绩”+str(score))

表达式

算术运算符:
// 取商的整数部分 32/5=6
%取余 32%5=2
** 次方 7** =7的2次方= 49 10**6=10的6次方

+= -=
//= 相除得到整除商数后,再赋值给原变量 i//5 i=10 2
**
i**=3 1000
%= i%=5 0

条件嵌套(外层条件 内层条件)

score = input(“请输入成绩:”)
if(int(score)>-=90):
print(“优秀”)
elif(int(score)>-=80):
print(“优秀”)
elif(int(score)>-=70):
print(“优秀”)
else:
print(“不及格”)

三、循环、数据结构及函数

循环
FOR 执行固定次数的循环
WHILE 执行次数不固定的循环
列表List
列表名称=[元素1,元素2,元素3,…]
list=[1,”香蕉“,True] #包含不用数据类型的元素
print(list[-1]) #-1为最后一个元素 如-3倒数第三个

多维列表
list5=[[“iok”,“1234”],[“mray”,“abcd”],[“fdsf”,“fdsfdg”]]
print(list5[1]) #[“mray”,“abcd”],元素为列表
print(list[1][1]) #abcd

range函数
一个参数:列表变量=range(整数型) list1=range(5) #list1=[0,1,2,3,4]
二两参数:列表变量=range(起始值,终止值) list2=range(3,8) #list2=[3,4,5,6,7]
值可以为负整数 list3=range(-10,-2)
三个参数 列表变更=range(起始值 ,终止值,间隔值) 值 都可以为负数
list6=range(8,3,-1) #list6=[8,7,6,5,4]
for循环
for 变量 in 列表:
程序块
list1=[“香蕉”,“苹果”,“橘子”]
for s in list1:
print(s,end=",") #香蕉,苹果,橘子,
for i in range(1,31): #1起始值 ,31是终止值,1~30
print(i) #30行数字1~30分30行

sum=0
n= int(input(“请输入正整数:”))
for i in range(1,n+1):
sum += i
print(i,end=" ")
print(sum)
print (“1 到 %d 的整数u总和为 %d” % (n,sum))

请输入正整数:5
1 1
2 3
3 6
4 10
5 15
1 到 5 的整数u总和为 15

for 循环嵌套
if…elif…else
n=0
for i in range (1,10001):
for j in range(1,10001):
n +=1
print (n)
案例:99乘法表两层for循环
for i in range(1,10):
for j in range(1,10):
product = ij
print("%d
%d =%-2d “%(i,j,product),end=”")
#-2d表示输出占2个字符的整数,并靠左对齐;end=""不换行在本行输出。
print()

break及continue命令
for i in range(1,11):
if (i==6):
break #当i=6时,跳出循环而结束,后续不执行。
print(i,end=",") #执行结果:1,2,3,4,5,

for i in range(1,11):
if (i==6):
continue #当i=6时,从continue处直接跳到循环开始处继续执行,因此未输出6。
print(i,end=",") #执行结果:1,2,3,4,5,7,8,9,10,

for…if…else循环
for…if…else
for 变量 in 列表:
程序块一
if(条件表达式):
程序二
break
else:
各程序三

例:判断质数

while循环
total = person=score = 0
while (score != -1):
person += 1
score = int(input(“请输入第%d 位学生的成绩:” % person))
total += score
average = total / person
print(“本班总成绩:%d 分,平均成绩:%5.2f 分” % (total,average))

列表、元组结构及字典结构
高级列表操作:
list1=[1,2,3,4,5,6],x=[8,9],n、n1、n2、n3为整数
方法 含意 示例 示例结果
list1*n 列表重复n次 list2=list1 list2=[1,2,3,4,5,6,1,2,3,4,5,6]
list1[n1:n2] 取出n1到n2-1元素
list1[n1:n2:n3] 同上,间隔为n3 list2=list1[1:4:2] list2=[2,4]
del list1[n1:n2] 删除n1到n2-1元素 del list1 [1:4]
del list1[n1:n2:n3] 同上,间隔为n3 list2=list1[1:4:2] list2=1,3,5,6]
n=len(list1) 返回列表中元素数量 n=len(list1) n=6
n=min(list1)
n=max(list1)
n=list1.index(n1) 取首个值为n1的元素下 标 n=list1.index(3) n=2
n=list1.count(n1) n1元素出现的次数 n=list1.count(3) n=1
list1.append(n1) 将n1作为元素加到列表最后; n1也可以为一个列表,并保持列表增加入原有列表。 list1.append(8) list1=[1,2,3,4,5,6,8]
list1.extend(x) 将x中的元素逐一元素加到列表最后,x为列表 list1.extend(x)extend([8,9]) list1=[1,2,3,4,5,6,8,9]
list1.insert(n,n1) 在位置n加入n1元素 list1.insert(3,8) list1=[1,2,3,4,5,6]
n=list1.pop() ()取列表最后元素并删除(3)删除n=4的元素 n=list1.pop() n=6,list1=[1,2,3,4,5]
list1.remove(n1) 删除首次现的n1元素 list1.remove(3) list1=[1,2,4,5,6]
list1.reverse() 反转列表顺序 list1.reverse() list1=[6,5,4,3,2,1]
list1.sort() 将列表升序排列 list1.sort() list1=[1,2,3,4,5,6]

list1.extend([8,9]) #list1=[1,2,3,4,5,6,8,9]
list1.append([8,9]) #list1=[1,2,3,4,5,6,7,[8,9] ]

元组Tuple ( )
元组名称 = (元素1,元素2,… )
元组的结构与列表完全相同,(),而列表为[],不能修改的列表。 不能删除,增加,不能替换,修改。
元组转为列表:
tuple=(1,2,3,4,5)
list1=list(tuple1) #f元组转为列表,可增加
list1.append(9)
列表转元组:
list2=[1,2,3,4,5,6]
tuple2 = tuple(list2) #列表转元组,不能修改了

字典(Dict){ }
字典名称 = {键1:值1,键2:值2,键3:值3,…}
不存在下标,不用能位置作业下标

dict1={“香蕉”:20,“苹果”:50,”橘子“:44}
print(dict1[“苹果”]) #50
dict1([“橘子”])= 60 #修改字典
print(dict1[“橘子”]) #60

del 字典名称[键] #删除字典中 特定元素
字典名称.clear() #删除字典中的所有元素
del 字典名称 #删除字典,该字典变量就不存在了

高级字典操作:
dict1={“joe”:5,“mary”:8},n为整数,b为布尔变量

len(dict1) 返回字典元素数量 n=len(dict1) n=2
dict1.clear() 删除所有字典中的元素 dict2=dict1.clear() dict2 为空字典
dict1.copy() 复制字典 dict2=dict1.copy() dict2={“joe”:5,“mary”:8}
dict1.get(键,值) 返回”键“所对应的”值“,若键不存在,就返参数中的”值“ n=dict1.get(“joe”) n=5
键 in dict1 检查 ”键“是否存在 b=“joe” in dict1 b=Ture
dict1.items() 返回以”键:值“组为元素的组合 dict2=dict1.items() dict2=[(“joe”:50),(“mary”:8)]
dict1.keys 返回以”键“为元素的组合 dict2=dict1.keys dict2=[“joe”,“mary”]
dict1.setdifault(键,值) 与get()类似,若”键“不存在就以参数的”键-值“创建新元素 n=dict1.setdefailt(“joe”) n=5
dict1.values() 返回以”值“,为元素的组合 dict2=dict1.values() dict2=[,]

keys方法,values方法 及items方法
keys() 可获取所有“键”组成的组合,数据类型为dict_keys;
values()方法可获取所有“值”组成的组合,数据类型为 dict_values。
可用list,将keys()及values()方法近回的数据转换为列表,
转成列表才能获取元素值,将两者组合就可以输出字典全部内容。
dict1={“林”:85,“曾山水”:93,“郑美丽”:67}
dict1[“黄明品”]=71 #用程序新增2组数据
dict1[“天何品”]=72
listkey=list(dict1.keys()) #用keys方法取"键",同时转为列表
listvalue =list(dict1.values()) #用values方法取"值 “,同时转为列表
for i in range(len(listkey)): #用for循环逐对 显示字典数据。
print(”%s 的成绩为 %d 分" % (listkey[i],listvalue[i]))
print(dict1)
‘’’
林 的成绩为 85 分
曾山水 的成绩为 93 分
郑美丽 的成绩为 67 分
黄明品 的成绩为 71 分
天何品 的成绩为 72 分
{‘林’: 85, ‘曾山水’: 93, ‘郑美丽’: 67, ‘黄明品’: 71, ‘天何品’: 72}
‘’’
items()
items()方法,可返回 由所有键-值对 组成的组合,
dict1={“林”:85,“曾山水”:93,“郑美丽”:67}
dict1[“黄明品”]=71 #用程序新增2组数据
dict1[“天何品”]=72

listitem=dict1.items()
for name,score in listitem:
print("%s 的成绩为 %d 分" % (name,score))
#结果同上一个案例
‘’’
林 的成绩为 85 分
曾山水 的成绩为 93 分
郑美丽 的成绩为 67 分
黄明品 的成绩为 71 分
天何品 的成绩为 72 分
‘’’

get:
字典名称.get(键[,缺省值])
dict1={“香蕉”:20,“苹果”:50,“橘子”:30}
dict1={“香蕉”:20,“苹果”:50,“橘子”:30}
n=dict1.get(“苹果”) #n=50
print(n)
n=dict1.get(“苹果”,100) #n=50
print(n)
n=dict1.get(“菠萝”) #n=None
print(n)
n=dict1.get(“菠萝”,100) #n=100
print(n)

setdefault
用法、功能及返回值与get相同,
不同:在于字典的内,get不改变字典的内容,setdefault若“键”存在,字典内容不变,若“键”不存在,内里会把“键-值”对加入字典作为字典元素:
若设缺省值 ,加入的是“键:缺省值”;若没有缺省值,加入的是“键:None”

dict1={“香蕉”:20,“苹果”:50,“橘子”:30}
n=dict1.setdefault(“苹果”)
print(n)
n=dict1.setdefault(“苹果”,100) #n=50 ,dict1未改变
print(n)
n=dict1.setdefault(“菠萝”) #n=None, dict1={“香蕉”:20,“苹果”:50,“橘子”:30,“菠萝”:None}
print(n)
n=dict1.setdefault(“菠萝”,100) #n=None, dict1={“香蕉”:20,“苹果”:50,“橘子”:30,“菠萝”:100}
print(n)

函数

自定义函数的语法:
def 函数名称 ([参数1,参数2,…]): #参数列表可有可无,多个时必须用“,”分开
程序块
[return 返回值1,返回值2,…] #返回值列表可有可无,多个时必须用“,”分开

调用函数:
[变量=] 函数名称([参数表])

eg:
def GetArea(width, height):
area=width * height
return area
ret1=GetArea(6,9) #ret1=54
ret1=GetArea(width=6,height=9) #ret1=54
ret1=GetArea(height=9,width=6) #ret1=54
以上三种调用结合相同

参数缺省值:
def GetArea(width, height=12): #参数缺省值,必须放在后面
area=width * height
return area
ret1=GetArea(6) #ret1=72 612
ret1=GetArea(6,9) #ret1=54 6
9

不定参函数:
参数数量不确定。
def add(n1,n2):
return n1+n2
def 函数名称(*参数): #例 def func1(*args):

案例:多数值加法器

def calsum(*params):
total=0
for param in params: #param 可以为任意代号,同时下一行也相同即可
total += param
return total
print(“不定参数函数示例”)
print(“2个不定参数:4+5 = %d” % calsum(4,5))
print(“3个不定参数:4+5+12 = %d” % calsum(4,5,12))

‘’’
不定参数函数示例
2个不定参数:4+5 = 9
3个不定参数:4+5+12 = 21
‘’’

变量有效范围:
全局变量: 定义在函数外的变量,有交范围是整个python文件。
函数次级套里时,用global关键字进行声明,可变为全局变量。
局部变量:定义在 一个函数中的变量,有效范围限于该函数内部。

系统内置函数
函数 功能 示例 示例结果
abs(x)
chr(x) 返回整数x所表示的字符 chr(65) A
divmod(x,y) 返回x除以y的商及余数组成元组 divmod(44,6) (7,2)
float(x)
hex(x) 将x转换为16进制数 hex(34) 0x22
int(x)
len(x)
max(列表型参数)
min(列表型参数)
oct(x) 将x转换为八进制 oct(34) 0o24
ord(x) 返回字符x的Unicode编码 ord(“我”) 25105
pow(x,y) 返回x的y次方
pow(x,y,z) x的y次方,除以z的余数 pow(3,4,7) 4
round(x) 返回x 四舍六入值
round(x,y) y用于设定小数位数,无y是返回整数,四舍六入,五取偶 round(3.45,1)round(3.75,1) 3.43.8
sorted(列表) 由小到大排序
sorted(列表,reverse=Ture) 若用‘reverse=Ture”作为第二参数,则会有大到小排序。 sorted([3,1,7,5],reverse=Ture) [7,5,3,1]
srt(x)
sum(列表) 计算列表 中元素的总和
type(对象) 返回对象的数据类型

.format(sorted(list1,reverse=Ture)) 调用由大到小数 print(“请输入大到小排序为:{}”.format(sorted(list1,reverse=Ture))) format方法,用一对"{}"表示参数位置,语法为:print (字符串.format(参数行))

内建包(package,包,也称模块),以第三方开发包
用import命令导入, 第三方开发包先安装后才能使用import导入。
第一种调用:
import 包名称
import random
包名称.函数名称 ###通常包中许多函数可使用时,
random包中包含了seed,random,choise等函数,使用seed函数的代码为:
random.seed()
另一种调用方法:
from 包名称 import * #包名称可不写,但易因函数重名而出错
第三种调用方法:
from 包名称 import 函数1,函数2,…

eg:from random imort seed,random,choice
包名称另取简短名字
import 包名称 as 别名 #别名.函数名称,避免长包名称
eg:
import random as r
r.seed()

四。文件处理及SQLite数据库
python,使用:
os包 进行目录的、文件创建及删除,执行操作系统命令等操作;
open() 函数(#python内建函数)打开指定的文件,并进行读取、写入或修改。
内建嵌入式数据库SQLite以文件的形式存储整个数据库。
4.1文件和目录管理
os、shutil、glob等实用开发包。
4.1.1 OS: #先导入
remove()方法:
删除指定文件。一般结合os.path的exists()方法使用,先检查是否存在,再决定是否删除。
import os
file=“myFile.txt”
if os.path.exists(file):
os.remove(file)
else:
print(file + “文件未找到!”)

mkdir()方法:
创建指定名称的目录。
imort os
os.mkdir(“myDir”) #如已存则错误,所以最好先检查。

import os
dir=“myDir”
if not os.path.exists(dir):
os.mkdir(dir)
else:
print(dir + “目录已存在”)

rmdir()方法:
删除指定目录,删除先必须先删除该目录下的文件。一般先检查是否存在。

system()方法:
执行操作系统命令。
import os
cur_path=os.path.dirname(file) #取得当前路径
os.system(“cls”) #清楚屏幕
os.system(“mkdir dir2”) #创建dir2 目录
os.system(“copy ossystem.py dir2\copyfile.py”) #复制文件
file= cur_path + “\dir2\copyfile.py”
os.system (“notepad”+file) #以记事本打开copyfile.py文件

4.1.2 os.path
os.path用来处理文件路径及路径名称,检查文件或路径是否存在 或计算文件大小。先导入。

import os.path
cur_path=os.path.dirname(file) #取得当前目录路径
print(“当前目录路径为:”+ cur_path)

filename=os.path.abspath(“print111.py”)
if os.path.exists(filename):
print(“完整路径名称:”+ filename)
print(“文件大小:”,os.path.getsize(filename))

basename= os.path.basename(filename)
print("路径最后的文件名为:"+ basename)

dirname= os.path.dirname(filename)
print("当前文件目录路径:"+ dirname)

print("是否为目录:",os.path.isdir(filename))

fullpath,fname= os.path.split(filename)
print("目录路径:"+ fullpath)
print("文件名:"+ fname)

Drive,fpath=os.path.splitdrive(filename)
print("盘名:"+ Drive)
print("路径名称:"+ fpath)

fullpathh = os.path.join(fullpath+"\\"+fname)
print("合并路径名称:"+ fullpath)

‘’’
RESTART: C:/Users/a/AppData/Local/Programs/Python/Python37/test2020/print111.py
当前目录路径为:C:/Users/a/AppData/Local/Programs/Python/Python37/test2020
完整路径名称:C:\Users\a\AppData\Local\Programs\Python\Python37\test2020\print111.py
文件大小: 3390
路径最后的文件名为:print111.py
当前文件目录路径:C:\Users\a\AppData\Local\Programs\Python\Python37\test2020
是否为目录: False
目录路径:C:\Users\a\AppData\Local\Programs\Python\Python37\test2020
文件名:print111.py
盘名:C:
路径名称:\Users\a\AppData\Local\Programs\Python\Python37\test2020\print111.py
合并路径名称:C:\Users\a\AppData\Local\Programs\Python\Python37\test2020
‘’’

4.1.3 os.walk
用来 搜索指定目录及其子目录,会返回一个饱含3个元素的元组,
分别为文件夹名称、下一层文件夹列表和文件夹中所有文件的列表。
类似递归的方式进行处理。

import os
cur_path=os.path.dirname(file) #取得当前路径
sample_tree=os.walk(cur_path)

for dirname,subdir,files in sample_tree:
print(“文件路径:”,dirname)
print(“目录列表:”,subdir)
print(“文件列表:”,files)
print()

4.1.4shutil包
跨平台的文件处理包,使用前先导入。import shutil
属性或方法 说明
copy(src,dst) 复制src(源文件)至dst(目标文件)
copytree(src,dst) 将src目录和目录中所有文件复制到dst
rmtree(dir) 删除dir目录和目录中所有文件
move(src,dst) 将src目录或文件转移到dst(转移后源文件被删除)

案例:将shutil.py文件复制newfile.py文件
import os,shutil
cur_path=os.path.dirname(file) #取得当前路径
destfile =cur_path +"\"+“newfile.py”
shutil.copy(“shutil.py”,destfile) #文件复制

4.1.5glob包
glob可以返回指定条件的文件列表,先导入。
glob.glob(“路径名称”) 路径名称中可明确,也可使用通配符“ * ”。
eg:获取<glob.py>文件、 文件名中前两个字符是以os开发的所有py文件,及所有扩展名为txt的文件。
import glob
files=glob.glob(“glob.py”)+glob.glob(“os*.py”)+glob.glob("*.txt")
for file in files:
print(file)

4.2 open()打开文件
内建函数open()可以打开指定的文件,用于对文件读取、修改或添加内容。
4.2.1用open()打开文件
open(filename[,mode][,encode])
共有8个参数,其中常用的上述三个

filenamecd 参数:
代表要读官的文佚名,字符串,其中可以包含相对路径工或绝对路径 。如没有路径,默认当前运行程序所在的目录路么。
mode参数:
用于设置文件打开模式、字符串类型,省略时时会默认只读,
r 只读,文件不可改,不存在时提示错误
w 以写模式打开文件,覆盖原文件;若文件不存在,自动会创建一个文件。
a 以增加模式打文件。可以写,内容将会被增加至原文件属部;若文件不存,则自动创建文件并会入内容。
f=open(‘file1.txt’,‘r’)

f.close()

eg:
import os
cur_path=os.path.dirname(file) #取得当前路径
sample_tree=os.walk(cur_path)

for dirname,subdir,files in sample_tree:
print(“文件路径:”,dirname)
print(“目录列表:”,subdir)
print(“文件列表:”,files)
print()

content=’’‘Hello Python
中文字测试
Welcome
‘’’ #’’’ 之间的内容会保留格式输出,content变量内容为两’’'号之前的多行内容。
f=open(‘file1.txt’,‘a’)
f.write(content)
f.close
print(files)

可以close()函数关闭文件,
也可以用with语句关闭文件,因with语句结束后会自动关闭文件。with语句内代码,必须要缩进。
with open(‘file1.txt’,‘r’) as f: #with语句内代码,必须要缩进。
for line in f:
print(line,end=" ")

encode
指定文件的编码模式,一般可设cp950或UTF-8. windows简体中文系统,默认编码是cp936,也就是记事本“储存为”界面中显示的ANIS编码。
import locale
print(locale.getpreferredencoding()) #cp936

f=open(‘file1.txt’,‘r’,encoding = ‘cp936’) #确指定用cp936编码打开文件
f=open(‘file2.txt’,‘r’,encoding = ‘UTF-8’) #确指定用 编码打开文件 建议用UTF-8

f.close()

共同努力进步!
–dushi-8d
20200705 23:00晚

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值