Python学习笔记
0x1字符串
- 相同引号间不能嵌套
- 引号不能混合使用
- 单引号和双引号都不能跨行使用
长字符串
- 使用三重引号来表示一个长字符串,且会保留字符串中的格式
转义字符
- \ '单引号
- \ "双引号
- \ t制表符
- \ n换行符
- \ \反斜杠
- \uxxxx表示UNicode编码(相当于ascll码,可打印各种特殊符号)
占位符
b = 'hello %s'%'world'
print(b)
# hello world
a = 'hello %3.5s'%'abcde'
# %3.5s字符串的长度限制在3-5之间,小于三个时不够的以空格补上
a = 'hello %s,I am %s' %('Tom','Patar')
# 两个字符之间用逗号隔开
字符串的输入
a = input()
库的调用
import random
# 表示调用一个能够产生随机数的函数的库
# import +库名 表示调用某个库
# 只有调用该库之后才能使用该库里的函数等
0x2判断和循环
判断
if True:
print('true')
else:
print('false')
# python用缩进表示某语句嵌套于另一语句中
# if条件后要加冒号:
# if和else连用
if (score >= 80 and score <= 100):
print('A')
elif(score >= 60):
print('B')
else:
print('c')
# 级联用elif(else与if的缩写)
# if、elif、else可以连用也可相互嵌套
循环
while循环
i = 1
sum = 0
while i<101:
sum += i
i +=1;
print(sum)
for循环
-
python的循环有两种:
-
for…in…循环
for project in projects: print project # 遍历列表或字典projects
-
for i in range(a,b,c):
a–循环变量初始值;
b–循环判断值
c–步进值
for i in range(0,10,3): print(i) # 循环变量i初始值为0;当i<10时,执行循环体内语句;每执行一次循环,循环变量i+=3 #-----------------------------------------------------------# for i in range(5): print(i) # 循环变量i默认初始值为0;i<5时执行循环体语句,i每执行一次循环完毕默认i+=1
-
0x3列表
-
列表是几个元素的组合,各个元素可以长度不等,类型不同:可以全是字符串,也可以全部是数字,抑或部分是字符串,部分是数字等等。
-
列表的使用主要在四个方面:增、删、改、查。
增
a = [1, 2, 3, 4]
b = [5, 6, 7, 8]
c = 10
>>> a.append(c)
print(a)
#将c加在a的末尾
#a = [1, 2, 3, 4, 10]
>>> a.append(b)
print(a)
# 将b保留原格式加在a的末尾
# a = [1, 2, 3, 4, [5, 6, 7, 8]]
>>> a.extend(b)
print(a)
# 将b拆开加在a的末尾
# a = [1, 2, 3, 4, 5, 6, 7, 8]
>>> a.insert(1,9)
print(a)
# 在a[1]的位置插入一个9
# a = [1, 9, 2, 3, 4]
删
a = [1, 2, 3, 4]
>>> del a[1]
print(a)
# 删除a中a[1]位置的元素
# a = [1, 3, 4]
>>> a.pop()
print(a)
# 删除a中最后一个元素
# a = [1, 3]
>>> a.remove(1)
print(a)
# 删除a中第一个元素“1”
# a = [3]
改
a = [1, 2, 3, 4]
a[2] = 7
print(a)
#将a[2]位置的元素替换为7
#a = [1, 2, 7, 4]
查
namelist = ['校长','班主任','教导主任','政教处主任']
print('查')
findName = input("请输入你要找的职位:")
if findName not in namelist:
print("找到了")
else:
print("没找到")
#--------------------------
a = [1, 2, 3, 1]
print(a.index(1,1,4))
#初始位置为1,结束位置为4的区间中第一个元素“1”的位置
#(所求元素,初始位置,结束位置)
print(a.count(2))
#a中所有元素“2”的个数
排序和反转
#排序和反转
a = [2,5,3,7,4,1,6]
>>>print(a)
# 2, 5, 3, 7, 4, 1, 6
>>> a.reverse()
print(a)
# 1, 2, 3, 4, 5, 6, 7
>>> a.sort(reverse=True)
print(a)
# 7, 6, 5, 4, 3, 2, 1
0x4元组
- 元组与列表类似,但元组的元素不可更改
- 元组元素为一个时,必须写成tup = (1,)样式,否则会被认为是括号里元素的类型而不是元组类型
tup1 = (1, 2, 3, 4, 5, 6)
>>> print(tup1)
# (1, 2, 3, 4, 5, 6)
>>> tup2 = (1)
print(type(tup2))
# <class 'int'>
>>> print(type(tup1))
# <class 'tuple'>
#tup1[0] = 4 编译无法通过
>>> for i in range(len(tup1)):
print(tup1[i])
# 1
# 2
# 3
# 4
# 5
# 6
tup1 = (9, 99, 999, 9999, 99999, 999999)
>>> print(tup1)
# (9, 99, 999, 9999, 99999, 999999)
>>> print(tup1[1:4:2])
# (99, 9999)
>>> print(max(tup1)) # 元组中最大值
# 999999
>>> print(min(tup1)) # 元组中最小值
# 9
0x5字典
# 定义字典
# 字典(dict)
ids = {"name": "应青山", "age": "68", "high": "159"}
增
# 增
>>> newid = input("输入学号:")
ids["id"] = int(newid)
print(ids)
# {'name': 'zoupeng', 'age': '68', 'high': '159', "id":123456}
删
# 删
>>> del ids["age"]
print(ids)
# 删除age键值对
# {'name': 'zoupeng', 'high': '159', "id":123456}
>>> del ids
# 删除字典ids
>>> ids.clear()
print(ids)
# 清除字典ids内所有元素
# {}
改
# 修改
>>> ids["name"] = "繁浅"
print(ids["name"])
# 繁浅
查
# 查
>>> info = {"name":"应青山","age":"68","high":"159"}
print(info["name"])
print(info.get("xingbie"))
# 应青山
# None
>>> print(ids.keys()) #所有的键
print(ids.values()) #所有的值
print(ids.items()) #所有的项(每个键值对是一个元组)
遍历
# 遍历
>>> for key,value in ids.items():
print(key,value)
列表枚举
# 列表枚举
mlist = ["abc","b","c","d"]
>>> for i,x in enumerate(mlist):
print(i, x)
# 同时输出i和mlist[i]项
# 0 abc
# 1 b
# 2 c
# 3 d
0x6函数
函数返回值
# 函数返回值
def sum(a,b):
c = a + b
#return c
return a+b
c = sum(1,1)
print(c)
# 多个返回值
def chufa(a,b):
shang = a / b
yu = a % b
return shang,yu
shang,yu = chufa(5,2)
print(shang)
print(yu)
全局变量和局部变量
- 在函数中使用全局变量可用global
0x7文件
文件的写入
f = open("text.txt","w")
# "w"表示允许写入的方式打开该文件,如果没有就创建一个
f.write("this is a warm world!,I like this world.")
f.close()
# 每次打开文件后都要关闭,以便后来的程序对文件进行操作
文件的读取
以字符为单位读取
f = open("text.txt","r")
content = f.read(100) #读取文件前一百位
print(content)
f.close()
#每次关闭后重新从第一位开始读取
高效读取
# 一行一行读取
f = open("text.txt","r")
content = f.readline() #一次读一行
print(content)
content = f.readline() #读取下一行
print(content)
f.close()
#每次关闭后重新从第一行开始读取
# 一次全部读取
f = open("text.txt","r")
content = f.readlines() #一次性全部读取为列表,每一行读为一个字符串元素
#print(content)
i = 0
for temp in content:
print(i,temp)
i += 1
f.close()
文件的其他操作
#文件重命名
import os #要先引入os库
os.rename("text.txt", "domo01.txt")
#os库中对文件的其他操作
删除文件
os.remove("02text.py")
创建文件夹
os.mkdir("文件夹名")
删除文件夹
os.rmdir("文件夹名")
获取当前目录
os.getcwd()
改变默认目录
os.chdir("../")
获取目录列表
os.listdir("./")
0x8错误与异常
异常捕获
# 单一类型异常捕获
try:
print(num)
except NameError:
print("产生Name错误")
try:
f = open("text1.py","r")
except IOError:
print('产生IO错误')
# 同时多种类型异常捕获--将可能产生的所有异常类型,都放到下方括号中去
try:
print(num)
f = open("text1.py", "r")
except (IOError, NameError):
print('产生错误')
错误信息获取
# 获取指定类型的错误信息
try:
# num = "234"
print(num)
f = open("text1.py", "r")
except (IOError, NameError) as result:
print('产生错误')
print(result)
# 一次性选择所有错误类型Exception
try:
# num = "234"
print(num)
f = open("text1.py", "r")
except Exception as result:
print('产生错误')
print(result)