Python笔记② 变量与操作

前言

记录学习内容,希望便于查阅

一,变量的规则

不同的变量有不同的规则,没有规矩不成方圆,正因为有了这些统一的规则,才能使代码按照我们设计的思路工作!

1,变量的本质

Python中实际变量的本质是对象
Python的对象模型(类)由3部分组成:身份(指针)、类型、值

  • 身份:用来标识对象的唯一标识。可调用函数id查看
  • 类型:用来表明对象可以存放的类型。可调用函数type查看
  • 值:对象储存的具体数值。可直接查看

2,变量演示(例子)

val1,val2,val3 = 6,3.1415926,'hello'         #一条语句中可定义多个变量,用逗号隔开既可
#分别使用print输出各个值的属性
print("指针:",id(val1) ,"类型:",type(val1) ,"值:",val1 ) 
print("指针:",id(val2) ,"类型:",type(val2) ,"值:",val2 )
print("指针:",id(val3) ,"类型:",type(val3) ,"值:",val3 )

输出:

指针: 1752460928 类型: <class 'int'> 值: 6
指针: 2775148741592 类型: <class 'float'> 值: 3.1415926
指针: 2775147670920 类型: <class 'str'> 值: hello

3,变量类型

接下来会一一进行简单的介绍

在这里插入图片描述

4,变量帮助函数

二,number(数字)类型

1,算数运算符

Arithmetic operatorsDescription
+
-
*
/除(会产生浮点数)
%取模(余数)
**幂(次方)
//整除(无浮点数产生)
abs(x)绝对值
int(X,[base])将X转换成整形,
float(X)将X转换成浮点型
complex(re,im)生成负数
c.conjugate()取c的共轭复数
divmod(x,y)返回商和余数

2,赋值运算符

Assignment OperatorsDescription
+=
-=
*=
/=
%=取模
**=
//=取整除

3,比较运算符

Comparison operatorDescription
==等于
!= 或 <>不等于
>大于
<小于
>=大于等于
<=小于等于
is指针等于
is not指针不等于

4,Python的缓存规则

Python会根据对象的读取频繁程度以及内存占用其概况来考虑,按照一定规则把某些对象存入缓存中,如下表

对象是否需要重新创建生效范围
范围在[-5,256]之间的小整数如果曾经传见过,直接存入缓存,不再重新创建全局
字符串对象同上同上
大于256的整数改代码块创建过就直接存入缓存,不才重新创建改代码块
大于0的浮点型对象同上同上
小于0的浮点型对象不进行缓存,每次都需要额外创建
小于-5的整数同上

5,bool运算符

Boolean operatorsDescriptionAdditional explanation
and取“与”短路运算符
or取“或”短路运算符
not 或 !取“反”优先级低

6,位运算符

Bitwise OperatorsDescription
&位“与”
|位“或”
^位“异或”
~位反“
<<位左移
>>位右移

三,string(字符串)类型

1,字符串分类

  • 单行字符串:用单引号(’ ')、双引号(" ")表示
  • 多行字符串(块):用三单双引号(’’’ 、""" )表示

2,转义字符

(1)常用转义字符汇总

Escape charactersDescription
\续行符
\\反斜杠符号
\’单引号
\"双引号
\a响铃
\b退格
\e转义
\000
\n换行
\v纵向制表符
\t横向制表符
\r回车
\f换页
\oyy八进制ASCIIyy字符
\xyy十六进制ASCII字符
\other其他格式以普通字符输出

(2)原字符串(raw string)

不让" \ "产生转义的作用

  • 字符串前加rR
  • 使用repr()函数处理字符串

(3)编码

  • 寒假再补,快考试了,抱歉

3,print与占位符

(1)查看print

q = dir(print)
print(q)
print('%'*30)
help(print)
#输出如下
['__call__', '__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__name__', '__ne__', '__new__', '__qualname__', '__reduce__', '__reduce_ex__', '__repr__', '__self__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__text_signature__']
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Help on built-in function print in module builtins:

print(...)
    print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
    
    Prints the values to a stream, or to sys.stdout by default.
    Optional keyword arguments:
    file:  a file-like object (stream); defaults to the current sys.stdout.
    sep:   string inserted between values, default a space.
    end:   string appended after the last value, default a newline.
    flush: whether to forcibly flush the stream.

(2)占位符

PlaceholderDescription
%s字符串
%r无转移功能的字符串
%c单个字符
%b二进制整数
%d十进制整数
%o八进制整数
%x十六进制整数
%e指数(基底写成e)
%E指数(基底写成E)
%f浮点数,一般写成%m.nf,m代表总长、n代表小数点后几位
%F同上
%g指数或浮点数
%G指数或浮点数

4,用字符串演示“序列”的运算与操作(例子)

  • 寒假再补,快考试,时间有些紧,抱歉

5,有关字符串的相关函数

String manipulation functionsDescription
len()求序列长度
in:判断元素是都在序列中
max()返回字符编码的最大值
min()返回字符编码的最小值
cmp(str1,str2)判断两个序列是否相同
ord()由字符返回单个字符的字符编码
chr()由单个字符编码返回字符
str.split()将字符串根据某个分隔符进行分割
chr.join()split的逆操作
str.title()首字母大写
xxxxxxx等等

同print的查看方式,用dir查看string的方法,用help看具体介绍

q = dir(str)
print(q)
print('%'*30)
#. + 一个具体的方法可查看对应的方法,不加则看所有的方法
help(str.__add__) 
#输出如下:
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Help on wrapper_descriptor:

__add__(self, value, /)
    Return self+value.

四,list(列表)类型

1,list介绍

Python中使用最频繁的数据类型。它是一个有序集合。
list中的元素的类型可以互相不同,并且可以互相嵌套

2,list内置函数

List built-in functionsDescription
list.append()在尾部增加一个元素
list.extend()list + list
list.insert(i,x)在索引i前插入元素x
list.index(x)返回value为x的索引
list.remove(x)删除value为x的元素
list.pop(i)弹出(删除)索引为i的元素
list.clear()删除列表中的所有项
del list[i 或 切片]删除索引元素或切片
list.count(x)计算value为x出现的次数
list.sort()列表排序
list.reverse()逆序操作

3,list实现队列和栈(例子)

4,更高效的队列:使用deque结构体(例子)

5,列表筛选:使用filter函数(例子)

五,tuple(元组)类型

1,Tuple介绍

可以这样理解:tuple(元组)是list(列表)的只读版
不同之处:tuple(元组)的元素不能修改

2,Compare tuple with list

tuple的操作与list非常相似,内部元素可以是任意类型,并且可以互相嵌套

q = dir(tuple)
print(q)
print('%'*30)
#. + 一个具体的方法可查看对应的方法,不加则看所有的方法
help(tuple.__add__) 
输出如下:
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Help on wrapper_descriptor:

__add__(self, value, /)
    Return self+value.

3,Summary

tuple:list的只读版本,不过由于tuple的不可改变的特性,作为返回值时,可以让代码更加稳定

六,set(集合)类型

作用:进行成员关系的测试和消除重复元素。

1,set介绍

set是一个无序、不重复元素的集合

2,set运算

set运算与数学中的集合运算类似,支持交并差等操作

3,set内置函数

q = dir(set)
print(q)
print('%'*30)
#. + 一个具体的方法可查看对应的方法,不加则看所有的方法
help(set.__and__) 
输出如下:
['__and__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__iand__', '__init__', '__init_subclass__', '__ior__', '__isub__', '__iter__', '__ixor__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__rand__', '__reduce__', '__reduce_ex__', '__repr__', '__ror__', '__rsub__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__xor__', 'add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update']
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Help on wrapper_descriptor:

__and__(self, value, /)
    Return self&value.

4,frozenset(不可变集合)

frozenset与set的关系 和 tuple与list的关系 类似
frozenset里的值不能被改变

七,dictionary(字典)类型

1,字典介绍

dictionary是一种映射类型(mapping type),内部元素以键值对的方式出现

2,字典内置函数

Dictionary built-in functionsDescription
dict.fromkeys(seq[,value] )创建新的字典
dict.get(key[,default=None])返回指定键key的值value
dict.setdefault(key,default-None)类似get,但若无键key则添加进dict
del删除指定的键值对
dict.clear()清除字典中的所有元素
dict.item()以列表的形式返回元组(键:值)数组
len(dict)返回字典中俄的元素个数
in判断key是否在dict中
not in与上面相反
dict.key()返回字典中的所有key
dict.value()返回字典中的所有value
dict.update(dict1)更新dict1中的键值对到dict里

八,深拷贝与浅拷贝

1,浅拷贝

只用了内容,并未创建新的对象,未分配新的内存

2,深拷贝

复制了内容,创建了新的对象,分配了新的内存

3,浅例子

#Deep and shallow copy
list_1 = [[1,2],'hello']
list_equal = list_1
print(id(list_1),'  ',id(list_equal)) #list_equal与list_1用同一个地址浅拷贝
list_equal = list(list_1)            #创建一个新的list对象
print(id(list_1),'  ',id(list_equal))#给list_equal分配新地址

输出如下:
2072284919944    2072284919944
2072284919944    2072284919048

结束语:由于时间原因,以上内容肯定存在错误或不妥之处,欢迎指出,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值