IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python自学 -> 正文阅读

[Python知识库]python自学

我们将两个 print 语句放在同一行,此时必须在第一个 print 语句最后加分号,否则会导致语法错误。
从井号#开始,直到这行结束为止的所有内容都是注释
Python 对代码的缩进要求非常严格,同一个级别代码块的缩进量必须一样

常见的函数:
print 输出 ,int,str,float
不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)
常见的数字类型:
int(长整型)
float(浮点型)
complex(复数)
bool(布尔型) del 清除数据
type(s)查询是什么类型
pop():根据索引值删除元素
del:根据索引值删除元素
remove():根据元素值进行删除
clear():删除列表所有元素
copy() 方法 进行集合和字典的拷贝,b=a.copy();
strname[start : end : step] start默认是从0开始,end默认是截取最后一个字符所在的索引
len(string)返回字符串长度

字符串类型:s = a[i:j], 进行字符串截取 ,可以用+号进行字符串拼接,*字符复用
列表:多维列表,可以是数字也可以是字符串,同时还可以小列表

元组类型:只能读不能写,元组用 () 标识,但是元组操作和列表一样,可以进行拼接和截取,相当于string

字典类型:列表是有序的对象集合,字典是无序的对象集合,字典用"{ }"标识,字典由索引(key)和它对应的值value组成,
数据结构很像map

集合类型:基本功能是进行成员关系测试和删除重复元,创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典

集中数据类型的比较:
列表[ ](list):有序可改变集合,允许重复数据。可以进行拼接
append() 方法用于在列表的末尾追加元素,obj 表示到添加到列表末尾的数据,它可以是单个元素,也可以是 列表、元组等。
extend() 不会把列表或者元祖视为一个整体,而是把它们包含的元素逐个添加到列表中。
如果希望在列表中间某个位置插入元素,那么可以使用 insert() 方法。

元组( )(tuple):有序不可改变集合,允许重复数据。
集合{ }(set):无序无索引(索引为键值)集合,无重复数据。
字典{ }(dictionary):无序,可变,有索引集合,无重复数据。 是一种无序的、可变的序列,它的元素以“键值对(key- value),key值相同的修改,不同进行插入,转变list的时候可以根据key 也是可以根据values

python数据类型转换:
int(x) :将x转化为一个整数,向下取整,
float(x):将x转化为一个浮点数
complex(x [,imge]):将x转化为一个复数,
a=1,b=2,complex(a,b) ,1+2j一种复数形式

str(x):将x转化为一个字符串
repr(x):将对象 x 转换为表达式字符串
tuple(s):将序列s转化为一个元组
list(s):将序列s转化为一个列表
set(s):将序列s转化为可变集合,可用于列表去重

控制流语句

if 表达式 1:
代码块 1
elif 表达式 2:
代码块 2
elif 表达式 3:
代码块 3
…//其它elif语句
else:
代码块 n

python中的类:

class TheFirstDemo:
    '''这是一个学习Python定义的第一个类'''
    #构造方法
    def __init__(self):
        print("调用构造方法")
    # 下面定义了一个类属性
    add = 'http://c.biancheng.net'
    # 下面定义了一个say方法
    def say(self, content):
        print(content)

创建类对象的过程,又称为类的实例化。

字典:

#使用字符串作为key
scores = {'数学': 95, '英语': 92, '语文': 84}
print(scores)
#使用元组和数字作为key
dict1 = {(20, 30): 'great', 30: [1,2,3]}
print(dict1)
#创建空元组
dict2 = {}
print(dict2)

字典快速删除key values

scores = {'数学': 95, '语文': 89, '英语': 90}
print(scores.keys())
print(scores.values())
print(scores.items())

类的属性和方法:

类体中、所有函数之外:此范围定义的变量,称为类属性或类变量;
类体中,所有函数内部:以“self.变量名”的方式定义的变量,称为实例属性或实例变量;
类体中,所有函数内部:以“变量名=变量值”的方式定义的变量,称为局部变量。

class CLanguage :
    # 下面定义了2个类变量
    name = "C语言中文网"
    add = "http://c.biancheng.net"
    # 下面定义了一个say实例方法
    def say(self, content):
        print(content)
//调用和修改
CLanguage.name = "Python教程"
CLanguage.add = "http://c.biancheng.net/python"
print(CLanguage.name)
print(CLanguage.add)

实例变量调用时才能创建属性:只有调用了 say() 方法的类对象,才包含 catalog 实例变量。

class CLanguage :
    def __init__(self):
        self.name = "C语言中文网"
        self.add = "http://c.biancheng.net"
    # 下面定义了一个say实例方法
    def say(self):
    //定义一个局部变量
        self.catalog = 13

局部变量:
局部变量直接以“变量名=值”的方式进行定义,

class CLanguage :
    # 下面定义了一个say实例方法
    def count(self,money):
        sale = 0.8*money
        print("优惠后的价格为:",sale)
clang = CLanguage()
clang.count(100)

python描述符详解:
set(self, obj, type=None):在设置属性时将调用这一方法(本节后续用 setter 表示);
get(self, obj, value):在读取属性时将调用这一方法(本节后续用 getter 表示);
delete(self, obj):对属性调用 del 时将调用这一方法。
其中,实现了 setter 和 getter 方法的描述符类被称为数据描述符;反之,如果只实现了 getter 方法,则称为非数据描述符。

python封装 ;
只有public 和private
public:公有属性的类变量和类函数,在类的外部、类内部以及子类(后续讲继承特性时会做详细介绍)中,都可以正常访问;
private:私有属性的类变量和类函数,只能在本类内部使用,类的外部以及子类都无法使用。
默认情况下,Python 类中的变量和方法都是公有(public)的,它们的名称前都没有下划线(_);
如果类中的变量和函数,其名称以双下划线“__”开头,则该变量(函数)为私有变量(私有函数),其属性等同于 private。

#定义一个公有方法
   def setname(self, name):
        if len(name) < 3:
            raise ValueError('名称长度必须大于3!')
        self.__name = name
  
    #定义个私有方法
    def __display(self):
        print(self.__name,self.__add)

python继承:
Python 却支持多继承
class 类名(父类1, 父类2, …):

class People:
    def say(self):
        print("我是一个人,名字是:",self.name)
class Animal:
    def display(self):
        print("人也是高级动物")
#同时继承 People 和 Animal 类
#其同时拥有 name 属性、say() 和 display() 方法
class Person(People, Animal):
    pass
zhangsan = Person()
zhangsan.name = "张三"
zhangsan.say()
zhangsan.display()
运行结果,结果为:

方法重写:

class Bird:
    #鸟有翅膀
    def isWing(self):
        print("鸟有翅膀")
    #鸟会飞
    def fly(self):
        print("鸟会飞")
class Ostrich(Bird):
    # 重写Bird类的fly()方法
    def fly(self):
        print("鸵鸟不会飞")
# 创建Ostrich对象
ostrich = Ostrich()
#调用 Ostrich 类中重写的 fly() 类方法
ostrich.fly()

调用父类的构造函数:
类可以看做一个独立空间,在类的外部调用其中的实例方法,可以向调用普通函数那样,只不过需要额外备注类名(此方式又称为未绑定方法);
使用 super() 函数。但如果涉及多继承,该函数只能调用第一个直接父类的构造方法。

class People:
    def __init__(self,name):
        self.name = name
    def say(self):
        print("我是人,名字为:",self.name)
class Animal:
    def __init__(self,food):
        self.food = food
    def display(self):
        print("我是动物,我吃",self.food)
class Person(People, Animal):
    #自定义构造方法
    def __init__(self,name,food):
        #调用 People 类的构造方法
        super().__init__(name)
        #super(Person,self).__init__(name) #执行效果和上一行相同
        #People.__init__(self,name)#使用未绑定方法调用 People 类构造方法
        #调用其它父类的构造方法,需手动给 self 传值
        Animal.__init__(self,food)    
per = Person("zhangsan","熟食")
per.say()
per.display()

类的多态:
CPython 和 CLinux 都继承自 CLanguage 类,且各自都重写了父类的 say() 方法。从运行结果可以看出,同一变量 a 在执行同一个 say() 方法时,由于 a 实际表示不同的类实例对象,因此 a.say() 调用的并不是同一个类中的 say() 方法,这就是多态。

class CLanguage:
    def say(self):
        print("调用的是 Clanguage 类的say方法")
class CPython(CLanguage):
    def say(self):
        print("调用的是 CPython 类的say方法")
class CLinux(CLanguage):
    def say(self):
        print("调用的是 CLinux 类的say方法")
a = CLanguage()
a.say()
a = CPython()
a.say()
a = CLinux()
a.say()

python常用的方法:
new() 是一种负责创建类实例的静态方法,它无需使用 staticmethod 装饰器修饰,且该方法会优先 init() 初始化方法被调用

repr() 会返回和调用者有关的 “类名+object at+内存地址”信息。当然,我们还可以通过在类中重写这个方法,从而实现当输出实例化对象时,输出我们想要的信息。

调用 init() 方法构造当前类的实例化对象,而本节要学的 del() 方法,功能正好和 init() 相反,其用来销毁实例化对象。

提到了 dir() 函数,通过此函数可以某个对象拥有的所有的属性名和方法名,该函数会返回一个包含有所有属性名和方法名的有序列表。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-05-08 08:03:10  更:2022-05-08 08:04:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 15:33:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码