Python_学习
准备安装
安装python下载可执行安装程序,其他两个有安装失败
安装开发工具
Python的基本数据类型
Number:数字、int:整数、浮点数:float(不存在双精度double、short、long),bool布尔类型:true/false
complex复数
str字符串
10进制,2进制,8进制,16进制
0,1,2,。。。9,10:满10进一
0,1,10:满2进一
0,1,2,。。。7,10:满8进一
0,1,2,。。。9,A,B,C,D,E,F,10:满16进制
转义字符(不可见的字符)
\n换行
\'单引号
\t横向制表符
\r回车
“HelloWorld”[0]得到H
“HelloWorld”[1]得到e
“HelloWorld”[0:5]得到Hello
“HelloWorld”[6:11][6:]得到World
Python中“(数)组(序列)”的概念
列表list:
type([1,2,3,4,5])得到list
['a','b']+['c','d']得到['a','b','c','d']
a = [1,2,3]
a.append(4)(元组不可变)
print(a)
元组和列表的区别?tuple不可改变(值类型),list可改变(引用类型)
元组tuple:
(1,"1",True),(1,2)+(1,2),(1,2)*2,(1,2,3,4,5)[0]
3 in [1,2,3]
2 not in [1,3]
a = (1,2,3,['a','b','c'])
a[3]
a[3][2]得到c
集合set(无序)
{1,2,3}
{1,2,3} - {3}排除
{1,2,3} & {1,2}交集
{1,2,3} | {2,3,4}并集
type({})得到dict
type(set())
字典dict
很多个key value,是集合类型set,不是序列是无序不能切片
type({})得到dict
{‘Q’:‘新月打击’,'W','苍白之瀑'}注:key不能有重复的,而value可以是任何类型
{‘Q’:‘新月打击’,'W','苍白之瀑',1:'月之降临','1',[1,2,3]}['Q']访问字典
Python变量与运算符
Python中没有常量概念:Python形式上的常量为:所有字母是大写的
Python变量区分大小写
定义变量:A = [1,2,3,4]
B = [1]
pring(A*3+B+A)
a=[1,2,3]
b=a
a[0]='1'
print(b)
int str tuple值类型,list set dict引用类型,list是会更改的
算数运算符:+ - * / // % **
赋值运算符:= += *= /= %= **= //=
关系运算符:== != > < >= <=
逻辑运算符:and or not
成员运算符:in not in
身份运算符: is is not
位运算符 :&并且 |或者 ^按位异或 ~取反 <<左移动 >>右移动
Python分支、循环、条件、枚举
Python没有switch
一个正常的Python项目是有多个模块构成的
#单行注释
''' '''多行注释
if else for while
mood = True
if mood :
print(0)
else :
print(1)
username = 'kai'
password = '111111'
print('请输入用户名:')
user_name = input()
print('请输入用户密码:')
pass_word = input()
if username == user_name and password == pass_word:注:冒号前不加空格
print("登录成功")
elif username == '':
print("等待~")
else:
print("登录失败")
#递归时使用较多,
count = 1
while count <= 10:
count +=1
print(count)
else:
pring('终于满级了')
#主要用来遍历、循环 序列或者集合、字典
a = [['apple','orange','banana','grape'],(1,2,3)]
for x in a:
for y in x:
if y == 'orange':
break
print(y)
else: //python中for循环包含了else,一般情况不写else
print("最后执行")
a = [1,2,3]
for q in a:
if q == 2:
continue
print(q)
else:
print('EOF')
a = [1,2,3,4,5]
for i in range(0,len(a),2)://类似foreach,0起始值,a循环数,2间隔数,倒序循环range(len(a),0,-2):
print(a[i], end=' | ')
//任意模块都能当做main()程序入口吗?
包->(多个)模块.py->(多个)类class classname(object):->函数变量
python中:包下需创建__init__.py(本身也代表一个模块)
__init_.py的所在包被引用时,__init__.py会自动初始执行
第一种导入form seven.c7 import a //使用c7模块下的变量,
print(a)
第二种导入_all_ = ['a']:写在__init__.py中
form seven.c7 import * 只引入了导入时指定的变量
避免循环引入会报错!p1->p2,p2->p1
Python函数(类似Java方法)
print(“HelloWorld”)打印
type(1)得到变量的数据类型
bin(10)其他进制转换为2进制
int(0b111)其他进制转换10进制
hex(888)其他进制转换16进制
oct(0b111)其他进制转换16进制
bool(1)bool('a')true
bool('')bool(0)false
len((1,2,3))
max((1,2,3))
min((1,2,3))
min('hellworld')
ord('w')转换为ascll码,
id()某一个变量在内存的地址
str()转换字符串,toString()
a = 3.1415926
result = round(a,2)变量,保留小数点2位
print(result)
def add(x,y,): //默认返回是tuple元组
result = x + y
return result
add(1,2)
def name(name='王路凯',age='21',sex)://默认参数
print(name)
name(sex='女')
Python的面向对象(pass占位符)
在模块中,定义类和实例对象一般分开
class Student():
name = ''
__age = 0
def __init_(self,name,age):#Python中的构造函数,初始化对象的属性
self.__name = name#如没有self则为类变量,有为实例变量,python会先找实例变量->如果没有则使用类变量->如果还没有去父类查找
self.__age = age
def print_file(self): #定义时必须加self,代表一个实例对象(只是python中的特征,类似Java中的this关键字,但不是关键字,是可以任意定义的)
print('名称'+ self.name)
print('年龄'+ str(self.__age))
student1 = Student('王路凯',21) #实例化、new对象
student1.print_file()
print(student1.name)#实例变量
pring(Student.name)#类变量
概念:类变量 和类相关的变量
实例变量 和对象关联的如:self.name / self.age
实例方法 def print_file(self): 实例方法调用类变量:Student.name和self.__class__.name
类方法 @classmethod
def plus_sum(cls):
print(cls.name)
静态方法 @staticmethod
def add(x,y):
print(Student.name)
def marking(self,age):建议通过方法更改数据,不过变量多的话方法同样多
if age > 100:
return '年龄不能大于100岁'
self.__age = age
将变量和方法设置 public private,Python中:方法和变量名字前加入__marking(),__name为私有的,
因动态语言的特性,有时调用私有变量是添加变量,不可以动态添加私有变量,严格意义上说python没有私有变量,调用私有变量方式为:student1._Student__age
Python封装、继承、多态
Python私有属性@property方法
class Person(object):
def __init__(self,name,age):#在定义对象属性的时候,私有属性不加__
self.name = name
self.age = age
@property#相当于getName()方法
def name(self):
return self.__name#但是返回的时候还是要self.__私有属性名
@name.setter#相当于setName()方法
def name(self,name):
if len(name) > 6:
print("非法")
else:
self.__name = name#赋值的时候也要self.__属性名 = 属性名
p1 = Person("张三12358",13)
print(p1.name)
'''
总结:1、在定义对象属性的时候不需要在对象属性加__
2、要先定义@property相当于get方法
3、再定义@属性名.setter相当于set方法
4、在对象调用的时候直接是对象名.属性名
form c6 import Student
class People(Student):#继承
Student.__init__(self,name,age) #子类调父类构造函数
super(Student,self).__init__(name,age)
Python中正则表达式与JSON
import re#Python默认模块中提供的正则表达式
a = 'C|C++|Java|Python'
r = re.findall('Python',a)正则匹配
pring(r)
数词量
re.sub('C','GO',lanuage,1)正则替换
把函数作为参数传递
search与match函数
re.search()
re.match()
group()分组
JSON
json = '{"name":'a',"age":10}'
pythonstr = json.loads(json)#将json字符串转换为python数据结构,也称为反序列化
整理
jsonpython
objectdict
array list
stringstr
numberint
number float
true True
falseFalse
nullNone
student = [{'name':'a','age':10},{'name':'b'}]
jsonstr = json.dumps(student)#将python数据结构转换为json字符串,也称序列化
Python高级语法及用法
枚举也是类,
form enum import Enum
class VIP(Enum):
YELLOW = 1
Y_ELLOW = 1 #如值相同,python至识别第一个
GREEN = 2
BLACK = 3
RED = 4
print(VIP.YELLOW.value)
VIP.YELLOW = 2#枚举中的变量不可以更改
@unique:枚举的装饰器
Python一切皆对象(类、对象、结构)
lambada(表达式)只能是表达式
三元表达式
Python操作三大数据库Mysql、Mongodb、Redis
......
Python学习False框架
......
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现