python基础语法学习笔记
一、变量和简单数据类型
print("hello world")
message = "hello pycharm "
print(message)
message="hello"
print(message)
print("*********************************")
name="ada loveLace"
print(name)
print(name.title())#令首字母大写
print(name.upper())#令全部字母大写
print(name.lower())#令全部字母小写
print("*********************************")
first_name="ada"
last_name="lovelace"
full_name=first_name+" "+last_name
print(full_name)
full_name=f"{first_name} {last_name}" #f是fomat(设置格式的缩写)
print(full_name)
message=f"Hello, {full_name.title()}"
print(message)
print("*********************************")
favorite_language=" python "
print(favorite_language)
favorite_language=favorite_language.rstrip()
print(favorite_language)
print("*********************************")
message="One of Python's strengths is its diverse community."
print(message)
message= 'One of Python\'s strengths is its diverse community. ' #单引号需要转译
print(message)
print("*********************************")
number=19_000_000_000#下划线可以提高可读性,不影响最终的值
print(number)
MAX_CONECTIONS = 5000 #python没有内置的常量类型,一般用全大写来表示某个变量为常量
print(MAX_CONECTIONS)
import this #Python之禅
二、列表简介
#打印自行车列表
bicycles=['trek','cannondale','redline','specialized']
print(bicycles)
#访问列表元素
print(bicycles[0]+" "+bicycles[3].title())
#修改添加和删除
bicycles[0]="fenghuang"#修改
print(bicycles)
bicycles.append("yueye")#增加
print(bicycles)
bicycles.insert(1,"yundong")#插入
print(bicycles)
del bicycles[0]#删除
print(bicycles)
poped=bicycles.pop()#pop删除最后一个,赋予给变量poped
print(bicycles)
print(poped)
bicycles.remove('yundong')#根据值删除元素
print(bicycles)
#排序
bicycles.append("aaa")
print(bicycles)
print(sorted(bicycles))#sorted暂时性排序
print(bicycles)
bicycles.sort()#sort永久性排序
print(bicycles)
#反序
bicycles.reverse()
print(bicycles)
#确定列表长度
print(len(bicycles))
三、操作列表
#遍历整个列表
magicians=['alice','david','carolina']
for magician in magicians:
print(magician)
for magician in magicians:
print(f"{magician.title()},that was a great trick!")
print(f"I can't wait to see your next trick,{magician.title()} \n")
print("Think you,every.That was great magic show!")###Python根据缩进来判断代码和前一行代码之间的关系
for value in range(0,8):
print(value)
#用range函数创建数字列表
number=list(range(1,9))#用list()函数将range()的结果直接转换为列表
print(number)
squares=[]
for value in range(1,11):
square = value**2
squares.append(square)
print(squares)
#对数字列表执行简单的统计计算
digits=[1,2,3,4,5,6,7,8,9,0]
print(min(digits))
print(max(digits))
print(sum(digits))
print(digits[2:7])#切片
#复制列表
a=digits[:]
print(a)
#元组:和列表雷士但是列表是可以修改的,元组内的值是不可变的--->不可便的列表被称为元组
dimensions=(20,50)
print(dimensions[0])
print(dimensions[1])
#dimensions[0]=111#这是错的,元组内容是不可修改的
for dimension in dimensions:
print(dimension)
四、if语句
cars = ['audi', 'bmw', 'subaru', 'toyota']
for car in cars:
if car == 'bmw':
print(car.upper())
elif car == 'subaru':
print(car.lower())
else:
print(car.title())
五、字典
#字典
info={"name":"吴彦祖","age":18}
#字典的访问
print(info["name"])
print(info["age"])
#访问了不存在的键
#print(info["gender']) #直接访问,会报错
print(info.get("gender")) #使用get方法,没有找到对应的键,默认返回:None
print(info.get("age","m"))
print(info.get("gender","m")) #没有找到的时候,可以设定默认值
#增删改查
#增
newID=input("请输入ID:")
info["id"]=newID
print(info)
#删
#[del]
print("删除前:",info)
del info["id"]
print("删除后:%s"%info)
#clear
info.clear()
print("清空后:%s"%info)
#改
info={"name":"吴彦祖","age":18}
info["age"]=30
print(info["age"])
#查
print(info.keys()) #得到所有的键(列表)
print(info.values()) #得到所有的值(列表)
print(info.items()) #得到所有的项(列表),每个键值对是一个元组
#遍历所有的值
for key in info.keys():
print(key)
for value in info.values():
if value == 30:
print("年龄:%d"%value)
else:
print("姓名:%s"%value)
#遍历左右键值对
for key,value in info.items():
print("key=%s,value=%s"%(key,value))
#使用枚举函数,同时拿到列表中的下标和元素内容
mylist=["a","b","c","d","e","f","g"]
for i,x in enumerate(mylist):
print(i+1,x)
六、函数
##函数
def printinfo():
print("--------------------")
print("心有猛虎,细嗅蔷薇!")
print("-"*20)
printinfo()
#-------------------------------------------------
#带参函数
def add2Num(a,b):
return a+b
print(add2Num(11,22))
#返回多个值的函数
def divid(a,b):
shang=a/b
yushu=a%b
return shang,yushu #多个返回值用逗号分隔
sh,yu=divid(5,2) #需要使用多个值来保存返回内容
print("商是:%d\n余数是:%d"%(sh,yu))
print(divid(5,2))
#---------------------------------------------------------
#全局变量和局部变量
def test1():
a=300
print("test1----修改前:a=%d"%a)
a=100
print("test1----修改后:a=%d" % a)
a=1
test1()
print(a)
def test2():
global a #global代表生命全局变量在函数中的标识符
a=666
print(a)
test1()
print(a)
test2()
print(a)#全局变量a在test2中被修改了
#以下是输出结果
'''
test1----修改前:a=300
test1----修改后:a=100
1
test1----修改前:a=300
test1----修改后:a=100
1
666
666
'''
七、文件操作
模式 | 描述 |
---|---|
r | 以只读⽅式打开⽂件。⽂件的指针将会放在⽂件的开头。这是默认模式。 |
rb | 以⼆进制格式打开⼀个⽂件⽤于只读。⽂件指针将会放在⽂件的开头。这是默认模式。 |
r+ | 打开⼀个⽂件⽤于读写。⽂件指针将会放在⽂件的开头。 |
rb+ | 以⼆进制格式打开⼀个⽂件⽤于读写。⽂件指针将会放在⽂件的开头。 |
w | 打开⼀个⽂件只⽤于写⼊。如果该⽂件已存在则打开⽂件,并从开头开始编辑,即原有内容会被删除。如果该⽂件不存在,创建新⽂件。 |
wb | 以⼆进制格式打开⼀个⽂件只⽤于写⼊。如果该⽂件已存在则打开⽂件,并从开头开始编辑,即原有内容会被删除。如果该⽂件不存在,创建新⽂件。 |
w+ | 打开⼀个⽂件⽤于读写。如果该⽂件已存在则打开⽂件,并从开头开始编辑,即原有内容会被删除。如果该⽂件不存在,创建新⽂件。 |
wb+ | 以⼆进制格式打开⼀个⽂件⽤于读写。如果该⽂件已存在则打开⽂件,并从开头开始编辑,即原有内容会被删除。如果该⽂件不存在,创建新⽂件。 |
a | 打开⼀个⽂件⽤于追加。如果该⽂件已存在,⽂件指针将会放在⽂件的结尾。也就是说,新的内容将会被写⼊到已有内容之后。如果该⽂件不存在,创建新⽂件进⾏写⼊。 |
ab | 以⼆进制格式打开⼀个⽂件⽤于追加。如果该⽂件已存在,⽂件指针将会放在⽂件的结尾。也就是说,新的内容将会被写⼊到已有内容之后。如果该⽂件不存在,创建新⽂件进⾏写⼊。 |
a+ | 打开⼀个⽂件⽤于读写。如果该⽂件已存在,⽂件指针将会放在⽂件的结尾。⽂件打开时会是追加模式。如果该⽂件不存在,创建新⽂件⽤于读写。 |
ab+ | 以⼆进制格式打开⼀个⽂件⽤于追加。如果该⽂件已存在,⽂件指针将会放在⽂件的结尾。如果该⽂件不存在,创建新⽂件⽤于读写。 |
#文件操作
f=open("test.txt","a+") #打开文件,w模式(写模式),文件不存在就新建
f.write("心有猛虎,细嗅蔷薇!\n") #将字符串写入文件当中
f.close() #关闭文件
#read 方法 读取指定的字符,开始时定位在文件头部,每执行一次向后移动指定字符数
f=open("test.txt","r")
s=f.read(5)
print(s)
s=f.read(5)
print(s)
f.close()
#---------------------------------------------
f=open("test.txt","r")
content=f.readlines() #一次性读取全部文件为列表,每行一个字符串元素
print(content)
i=1
for temp in content:
print("%d:%s"%(i,temp))
i+=1
f.close()
#----------------------------------------------
#readline 一次读取一行
f=open("test.txt","r")
s=f.readline()
print("1:%s"%s)
s=f.readline()
print("2:%s"%s)
f.close()
#-----------------------------------------------
#修改文件名
import os
os.rename("test.txt","修改后的名字.txt")
#删除文件
import os
os.remove("修改后的名字.txt")
八、异常处理
import time
try:
print("-----test---1-----")
open('123.txt', "r")
print("-----test---2-----")
except IOError:
open('123.txt', "w")
pass
#变量没有声明
try:
print(num)
except NameError:
print("产生错误了!")
#多种异常
try:
print("-----test---1-----")
print(num)
open('123.txt', "r")
print("-----test---2-----")
except (IOError,NameError) as result: #将可能产生的所有异常类型,都放到下面的小括号中,result是自己定义被变量,显示产生异常的类型
print("产生错误了!")
print(result)
finally:
print("结束!")
#捕获所用异常
# except Exception as result:
try:
f=open("123.txt","r")
#接下来若文件存在打开后,每秒两次打印一行
try:
while True:
content = f.readline()
if len(content) == 0:
break
time.sleep(2)
print(content)
finally:
f.close()
print("文件关闭")
except Exception as result:
print("发生异常。。。")
正则表达式
赞赏微信赞赏 支付宝赞赏