首页 > 编程语言 >2.1python认知

2.1python认知

时间:2023-02-21 00:55:52浏览次数:37  
标签:变量 python 认知 运算符 类型 字符串 2.1 数据

2.1python认知

# ### (1)python 简介
    89年开发的语言,创始人范罗苏姆(Guido van Rossum),别称:龟叔(Guido). 
    python具有非常多并且强大的第三方库,使得程序开发起来得心应手. 
    Python程序员的信仰:人生苦短,我用python!
    开发方向: 机器学习人工智能 ,自动化运维&测试 ,数据分析&爬虫 ,python全栈开发
 
# ### (2)python 版本
    python 2.x 版本,官方在 2020 年停止支持,原码不规范,重复较多
    python 3.x 版本,功能更加强大且修复了很多bug,原码清晰,简单

# ### (3)编译型与解释型语言区别:
	编译型:一次性,把所有代码编译成机器能识别的二进制码,在运行
		代表语言:c,c++
		优点: 执行速度块
		缺点: 开发速度慢,调试周期长
		
	解释型:代码从上到下一行一行解释并运行 
		代表语言:python,php
		优点: 开发效率快,调试周期短
		缺点: 执行速度相对慢
	*linux 操作系统默认支持python语言,可直接使用

# ### (4)python的解释器:
    (1)Cpython(官方推荐)
    	把python转化成c语言能识别的二进制码
    (2)Jpython
    	把python转化成java语言能识别的二进制码
    (3)其他语言解释器
    	把python转化成其他语言能识别的二进制码
    (4)PyPy
    	将所有代码一次性编译成二进制码,加快执行效率(模仿编译型语言的一款python解释器)

2.2注释: 就是对代码的解释 方便大家阅读python代码

(1)注释的分类
(2)注释的注意点
(3)注释的排错性
(1)注释的分类 : 1.单行注释 2.多行注释

    # 1.单行注释   以#号开头 ,右边的所有东西都被当做说明文字 ,程序不进行编译运行。
    print(‘hello world’)
    
    # 2.多行注释   三个单引号 或 三个双引号
    '''
    这是第一行
    这是第二行
    '''
    
(2)注释的注意点
	如果外面使用三个单引号,里面使用三个双引号,反之亦然。
(3)注释的排错性
	先注释一部分代码,然后执行另外一部分,看看是否报错,逐层缩小报错范围,找到最终错误点。

2.3变量: 可以改变的量,实际具体指的是内存中的一块存储空间

(1)变量的概念
(2)变量的声明
(3)变量的命名
(4)变量的交换

* 常量就是不可改变的量,python当中没有明确定义常量的关键字,
  所以约定俗成把变量名大写就是常量,表示不可改变
(1)变量的概念: 可以改变的量就是变量。具体指代的是内存的一块空间
(2)变量的声明:
	#1. a = 1 , b = 2
	#2. a,b = 1,2
	#3. a = b = 3
(3)变量的命名:
    #字母数字下划线 ,首字符不能为数字
    #严格区分大小写 ,且不能使用关键字
    #变量命名有意义 ,且不能使用中文哦
(4)变量的交换:
    #a,b = b,a

2.4python六大标准数据类型:

# ### 数据类型分类:
(1)Number   数字类型 (int  float  bool  complex)
(2)str	    字符串类型    
(3)list		列表类型      
(4)tuple	元组类型     
(5)set		集合类型     
(6)dict		字典类型      

# ### Number数字类型分类:
int :    	整数类型    ( 正整数 0 负整数 )
float:   	浮点数类型  ( 1普通小数 2科学计数法表示的小数 例:a = 3e-5  #3e-05 )
bool:    	布尔值类型  ( 真True 和 假False )
complex: 	复数类型    ( 声明复数的2种方法 ) (复数用作于科学计算中,表示高精度的数据,科学家会使用)	
                    
# ### 容器类型分类:五个
str	   "nihao"
list   [1,2,3]
tuple  (6,7,8)
set    {'a',1,2}
dict   {'a':1,'b':2}                    

2.4.1自动类型转换

当2个不同类型的数据进行运算的时候,默认向更高精度转换
数据类型精度从低到高:  bool int float complex

2.4.2强制类型转换

# -->Number部分
int :     整型   浮点型 布尔类型  纯数字字符串
float:    整型   浮点型 布尔类型  纯数字字符串
complex:  整型   浮点型 布尔类型  纯数字字符串 (复数)
bool: 	  ( 容器类型数据  /  Number类型数据 都可以 )
# -->容器类型部分
str:	  ( 容器类型数据  /  Number类型数据 都可以 )
list:  	  字符串 列表 元组 集合 字典
tuple: 	  字符串 列表 元组 集合 字典
set:   	  字符串 列表 元组 集合 字典    (注意:相同的值,只会保留一份)
dict:	  使用 二级列表,二级元组,二级集合(里面的容器数据只能是元组)

2.4.3字典和集合的注意点

# ###哈希算法
#定义:
    把不可变的任意长度值计算成固定长度的唯一值,这个值可正可负,可大可小,但长度固定
    该算法叫哈希算法(散列算法),这个固定长度值叫哈希值(散列值)  

#特点:
	1.计算出来的值长度固定且该值唯一
    2.该字符串是密文,且加密过程不可逆
    
#用哈希计算得到一个字符串的用意?
    例如:比对两个文件的内容是否一致?
    例如:比对输入的密码和数据库存储的密码是否一致
    
#字典的键和集合中的值都是唯一值,不可重复:
	为了保证数据的唯一性,
    用哈希算法加密字典的键得到一个字符串。
    用哈希算法加密集合的值得到一个字符串。
	如果重复,他们都是后面的替换前面的。自动去重	

#版本:
    3.6版本之前都是 字典和集合都是无序的
    3.6版本之后,把字典的字面顺序记录下来,当从内存拿数据的时候,
    根据字面顺序重新排序,所以看起来像有序,但本质上无序

可哈希数据:
可哈希的数据  (不可变的数据):Number(int float bool complex) str tuple
不可哈希的数据 (可变的数据): list set dict

2.5python运算符

(1)算数运算符:  + - * / // % **
(2)比较运算符:  > < >= <= == !=   
(3)赋值运算符:  = += -= *= /= //= %= **=
(4)成员运算符:  in 和 not in (针对于容器型数据)
(5)身份运算符:  is 和 is not (检测两个数据在内存当中是否是同一个值)  
(6)逻辑运算符:  and or not
(7)位运算符:    & | ~ ^ << >>
python运算符 注意点
算数运算符 % 取余 , //地板除 , ** 幂运算
比较运算符 == 比较两个值是否相等 != 比较两个值是否不同
赋值运算符 a += 1 => a = a+1
成员运算符 in 或 not in 判断某个值是否包含在(或不在)一个容器类型数据当中
身份运算符 is 和 is not 用来判断内存地址是否相同
逻辑运算符 优先级 () > not > and > or
位运算符 优先级 (<<或 >> ) > & > ^ > | 5 << 1 结果:10 , 5 >> 1 结果:2

2.6数据的在内存中的缓存机制

2.6.1在同一文件(模块)里,变量存储的缓存机制 (仅对python3.6版本负责)

# -->Number 部分
1.对于整型而言,-5~正无穷范围内的相同值 id一致
2.对于浮点数而言,非负数范围内的相同值 id一致
3.布尔值而言,值相同情况下,id一致
4.复数在 实数+虚数 这样的结构中永不相同(只有虚数的情况例外)
# -->容器类型部分
5.字符串 和 空元组 相同的情况下,地址相同
6.列表,元组,字典,集合无论什么情况 id标识都不同 [空元组例外]

2.6.2不同文件(模块)里,部分数据驻留小数据池中 (仅对python3.6版本负责 了解)

小数据池只针对:int,str,bool,空元祖(),None关键字   这些数据类型有效
#(1)对于int而言
    python在内存中创建了-5 ~ 256 范围的整数,提前驻留在了内存的一块区域.
    如果是不同文件(模块)的两个变量,声明同一个值,在-5~256这个范围里,
    那么id一致.让两个变量的值都同时指向一个值的地址,节省空间。
#(2)对于str来说:
	1.字符串的长度为0或者1,默认驻留小数据池

1557740809484

	2.字符串的长度>1,且只含有大小写字母,数字,下划线时,默认驻留小数据池

1557740921885

	3.用*号得到的字符串,分两种情况。
        1)乘数等于1时: 无论什么字符串 * 1 , 都默认驻留小数据池       
        2)乘数大于1时: 乘数大于1,仅包含数字,字母,下划线时会被缓存,但字符串长度不能大于20       

1557741069674

#(3)指定驻留
	# 从 sys模块 引入 intern 函数  让a,b两个变量指向同一个值
    from sys import intern
    a = intern('大帅锅&*^^1234'*10)
    b = intern('大帅锅&*^^1234'*10)
    print(a is b)
#可以指定任意字符串加入到小数据池中,无论声明多少个变量,只要此值相同,都指向同一个地址空间   

2.6.3 缓存机制的意义

	无论是变量缓存机制还是小数据池的驻留机制,都是为了节省内存空间,提升代码效率

# ### (1)python 简介
    89年开发的语言,创始人范罗苏姆(Guido van Rossum),别称:龟叔(Guido). 
    python具有非常多并且强大的第三方库,使得程序开发起来得心应手. 
    Python程序员的信仰:人生苦短,我用python!
    开发方向: 机器学习人工智能 ,自动化运维&测试 ,数据分析&爬虫 ,python全栈开发
 
# ### (2)python 版本
    python 2.x 版本,官方在 2020 年停止支持,原码不规范,重复较多
    python 3.x 版本,功能更加强大且修复了很多bug,原码清晰,简单

# ### (3)编译型与解释型语言区别:
	编译型:一次性,把所有代码编译成机器能识别的二进制码,在运行
		代表语言:c,c++
		优点: 执行速度块
		缺点: 开发速度慢,调试周期长
		
	解释型:代码从上到下一行一行解释并运行 
		代表语言:python,php
		优点: 开发效率快,调试周期短
		缺点: 执行速度相对慢
	*linux 操作系统默认支持python语言,可直接使用

# ### (4)python的解释器:
    (1)Cpython(官方推荐)
    	把python转化成c语言能识别的二进制码
    (2)Jpython
    	把python转化成java语言能识别的二进制码
    (3)其他语言解释器
    	把python转化成其他语言能识别的二进制码
    (4)PyPy
    	将所有代码一次性编译成二进制码,加快执行效率(模仿编译型语言的一款python解释器)

2.2注释: 就是对代码的解释 方便大家阅读python代码

(1)注释的分类
(2)注释的注意点
(3)注释的排错性
(1)注释的分类 : 1.单行注释 2.多行注释

    # 1.单行注释   以#号开头 ,右边的所有东西都被当做说明文字 ,程序不进行编译运行。
    print(‘hello world’)
    
    # 2.多行注释   三个单引号 或 三个双引号
    '''
    这是第一行
    这是第二行
    '''
    
(2)注释的注意点
	如果外面使用三个单引号,里面使用三个双引号,反之亦然。
(3)注释的排错性
	先注释一部分代码,然后执行另外一部分,看看是否报错,逐层缩小报错范围,找到最终错误点。

2.3变量: 可以改变的量,实际具体指的是内存中的一块存储空间

(1)变量的概念
(2)变量的声明
(3)变量的命名
(4)变量的交换

* 常量就是不可改变的量,python当中没有明确定义常量的关键字,
  所以约定俗成把变量名大写就是常量,表示不可改变
(1)变量的概念: 可以改变的量就是变量。具体指代的是内存的一块空间
(2)变量的声明:
	#1. a = 1 , b = 2
	#2. a,b = 1,2
	#3. a = b = 3
(3)变量的命名:
    #字母数字下划线 ,首字符不能为数字
    #严格区分大小写 ,且不能使用关键字
    #变量命名有意义 ,且不能使用中文哦
(4)变量的交换:
    #a,b = b,a

2.4python六大标准数据类型:

# ### 数据类型分类:
(1)Number   数字类型 (int  float  bool  complex)
(2)str	    字符串类型    
(3)list		列表类型      
(4)tuple	元组类型     
(5)set		集合类型     
(6)dict		字典类型      

# ### Number数字类型分类:
int :    	整数类型    ( 正整数 0 负整数 )
float:   	浮点数类型  ( 1普通小数 2科学计数法表示的小数 例:a = 3e-5  #3e-05 )
bool:    	布尔值类型  ( 真True 和 假False )
complex: 	复数类型    ( 声明复数的2种方法 ) (复数用作于科学计算中,表示高精度的数据,科学家会使用)	
                    
# ### 容器类型分类:五个
str	   "nihao"
list   [1,2,3]
tuple  (6,7,8)
set    {'a',1,2}
dict   {'a':1,'b':2}                    

2.4.1自动类型转换

当2个不同类型的数据进行运算的时候,默认向更高精度转换
数据类型精度从低到高:  bool int float complex

2.4.2强制类型转换

# -->Number部分
int :     整型   浮点型 布尔类型  纯数字字符串
float:    整型   浮点型 布尔类型  纯数字字符串
complex:  整型   浮点型 布尔类型  纯数字字符串 (复数)
bool: 	  ( 容器类型数据  /  Number类型数据 都可以 )
# -->容器类型部分
str:	  ( 容器类型数据  /  Number类型数据 都可以 )
list:  	  字符串 列表 元组 集合 字典
tuple: 	  字符串 列表 元组 集合 字典
set:   	  字符串 列表 元组 集合 字典    (注意:相同的值,只会保留一份)
dict:	  使用 二级列表,二级元组,二级集合(里面的容器数据只能是元组)

2.4.3字典和集合的注意点

# ###哈希算法
#定义:
    把不可变的任意长度值计算成固定长度的唯一值,这个值可正可负,可大可小,但长度固定
    该算法叫哈希算法(散列算法),这个固定长度值叫哈希值(散列值)  

#特点:
	1.计算出来的值长度固定且该值唯一
    2.该字符串是密文,且加密过程不可逆
    
#用哈希计算得到一个字符串的用意?
    例如:比对两个文件的内容是否一致?
    例如:比对输入的密码和数据库存储的密码是否一致
    
#字典的键和集合中的值都是唯一值,不可重复:
	为了保证数据的唯一性,
    用哈希算法加密字典的键得到一个字符串。
    用哈希算法加密集合的值得到一个字符串。
	如果重复,他们都是后面的替换前面的。自动去重	

#版本:
    3.6版本之前都是 字典和集合都是无序的
    3.6版本之后,把字典的字面顺序记录下来,当从内存拿数据的时候,
    根据字面顺序重新排序,所以看起来像有序,但本质上无序

可哈希数据:
可哈希的数据  (不可变的数据):Number(int float bool complex) str tuple
不可哈希的数据 (可变的数据): list set dict

2.5python运算符

(1)算数运算符:  + - * / // % **
(2)比较运算符:  > < >= <= == !=   
(3)赋值运算符:  = += -= *= /= //= %= **=
(4)成员运算符:  in 和 not in (针对于容器型数据)
(5)身份运算符:  is 和 is not (检测两个数据在内存当中是否是同一个值)  
(6)逻辑运算符:  and or not
(7)位运算符:    & | ~ ^ << >>
python运算符 注意点
算数运算符 % 取余 , //地板除 , ** 幂运算
比较运算符 == 比较两个值是否相等 != 比较两个值是否不同
赋值运算符 a += 1 => a = a+1
成员运算符 in 或 not in 判断某个值是否包含在(或不在)一个容器类型数据当中
身份运算符 is 和 is not 用来判断内存地址是否相同
逻辑运算符 优先级 () > not > and > or
位运算符 优先级 (<<或 >> ) > & > ^ > | 5 << 1 结果:10 , 5 >> 1 结果:2

2.6数据的在内存中的缓存机制

2.6.1在同一文件(模块)里,变量存储的缓存机制 (仅对python3.6版本负责)

# -->Number 部分
1.对于整型而言,-5~正无穷范围内的相同值 id一致
2.对于浮点数而言,非负数范围内的相同值 id一致
3.布尔值而言,值相同情况下,id一致
4.复数在 实数+虚数 这样的结构中永不相同(只有虚数的情况例外)
# -->容器类型部分
5.字符串 和 空元组 相同的情况下,地址相同
6.列表,元组,字典,集合无论什么情况 id标识都不同 [空元组例外]

2.6.2不同文件(模块)里,部分数据驻留小数据池中 (仅对python3.6版本负责 了解)

小数据池只针对:int,str,bool,空元祖(),None关键字   这些数据类型有效
#(1)对于int而言
    python在内存中创建了-5 ~ 256 范围的整数,提前驻留在了内存的一块区域.
    如果是不同文件(模块)的两个变量,声明同一个值,在-5~256这个范围里,
    那么id一致.让两个变量的值都同时指向一个值的地址,节省空间。
#(2)对于str来说:
	1.字符串的长度为0或者1,默认驻留小数据池

	2.字符串的长度>1,且只含有大小写字母,数字,下划线时,默认驻留小数据池

	3.用*号得到的字符串,分两种情况。
        1)乘数等于1时: 无论什么字符串 * 1 , 都默认驻留小数据池       
        2)乘数大于1时: 乘数大于1,仅包含数字,字母,下划线时会被缓存,但字符串长度不能大于20       

#(3)指定驻留
	# 从 sys模块 引入 intern 函数  让a,b两个变量指向同一个值
    from sys import intern
    a = intern('大帅锅&*^^1234'*10)
    b = intern('大帅锅&*^^1234'*10)
    print(a is b)
#可以指定任意字符串加入到小数据池中,无论声明多少个变量,只要此值相同,都指向同一个地址空间   

2.6.3 缓存机制的意义

	无论是变量缓存机制还是小数据池的驻留机制,都是为了节省内存空间,提升代码效率

标签:变量,python,认知,运算符,类型,字符串,2.1,数据
From: https://www.cnblogs.com/nf01/p/17139513.html

相关文章

  • Python函数
    函数定义def函数名(参数列表):["注释块"](可选)语句块(代码块)return[返回值](可选)函数本身也是一个变量,该变量类型就是可调用类型,属性只读。参数列表和返......
  • spark-3.3.2-bin-hadoop3-scala2.13 Local模式
    目标搭建单机开发环境,执行pyspark程序安装Anaconda3-2022.10-Linux-x86_64.sh安装pycharm-community-2022.3.2.tar.gz 环境OS:Ubuntu22基础包安......
  • python+playwright 学习-1.环境准备与快速开始
    前言说到web自动化,大家最熟悉的就是selenium了,selenium之后又出现了三个强势的框架Puppeteer、CyPress、TestCafe,但这3个都需要掌握JavaScript语言,所以只是少部分......
  • Python3.11 修改 pip 安装包安装位置
    操作步骤修改pip安装路径命令行输入pipconfigsetglobal.targetE:\DevEnv\Repository\Python\site-packages来修改pip安装包路径或者命令行输入py-mpipcon......
  • pip3 install opencv-contrib-python 会在Running setup.py bdist_wheel for opencv-p
    尝试1:pip的版本太低,升级了不行 尝试2:我用的豆瓣源,换成清华大学的,不行  尝试3:切换ubuntu原装python3.6.9的版本一、用miniconda;不行,整不了,piplist和我原来装的环......
  • python pip install numpy & scipy from repository tinghua
    python.exe-mpipinstall--upgradepippython-mpipinstall--upgradepippipinstall-ihttps://pypi.tuna.tsinghua.edu.cn/simple--upgradepippipinstal......
  • 用python实现数据处理,绘图的综合案例
    首先创建一个类classRecord:def__init__(self,date,order_id,money,province):self.date=date#订单日期self.order_id=order_id#订......
  • python可变类型与不可变类型
    一、可变数据类型和不可变数据类型可变和不可变都是基于内存地址来说的。不可变数据类型:当该数据类型的对应变量的值发生了改变,那么它对应的内存地址也会发生改变,对于这......
  • python多种赋值方式
    一、链式赋值例1a=10b=10c=10d=10print(f'a:{a},b:{b},c:{c},d:{d}')输出a:10,b:10,c:10,d:10例2a=b=c=d=10print(f'a:{a},b:{b},c:......
  • Conda+VScode配置Python开发环境
    Conda配置与常用指令1、查看conda与Python相关信息查看Python路径wherepython查看conda版本conda--version查看conda详细信息condainfo2、换源更换为清华......