首页 > 编程语言 >Python变量与运算符一

Python变量与运算符一

时间:2023-02-27 11:32:20浏览次数:32  
标签:变量 Python 运算符 print type id 函数


一、Python 保留字符 (33个)

被编程语言内部定义并保留使用的标识符:

and,as,assert,break,class,continue,def,del,elif,else,expect,finally,for,from,False,global,if,is,import,in,lambda,not,nonlocal,None,or,pass,return,raise,try,True,while,with,yeild

下面的列表显示了在Python中的保留字。

这些保留字不能用作常数或变数,或任何其他标识符名称,所有 Python 的关键字只包含小写字母。

标识符/关键字后面不需要使用括号

语法:每个保留字所在行最后存在一个冒号(:)

and

exec

not

assert

finally

or

break

for

pass

class

from

print

continue

global

raise

def

if

return

del

import

try

elif

in

while

else

is

with

except

lambda

yield

['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break',
'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for',
'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or',
'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

注释:>>> import keyword
>>> keyword.kwlist

二、变量类型与定义

变量概念

概念:变量是用来保存和表示数据的占位符号

每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。

创建一个变量,包括:

1. 变量的名称

2. 变量保存的数据

3. 变量存储数据的类型

4. 变量的地址(标示)

使用(type)函数可以查看一个变量的类型

在编程语言中,存储一个数据,需要用变量进行接收

python
变量名 = 值
age = 18

查看变量类型:

print(type(age))

变量命名

Python 是动态类型语言, 也就是说不需要预先声明变量的类型。 变量的类型和值在赋值那一刻被初始化。变量赋值通过等号来执行。

Python的有效标识符由大小写字母、下划线和数字组成。数字不能作为第一个字符,标识符的长度不限,Python标识符是大小写敏感的。

采用标识符(名字)来命令

命名规则:

1.大小写字母、数字、下划线、汉字;

2.首字母不能是数字;

3.大小写敏感;

4.不与保留字相同

在定义变量时,为了保证代码格式 = 的左右应该各保留一个空格

在 Python 中,如果 变量名 需要由 二个 或 多个单词 组成时,

1.每个单词都使用小写字母:单词与单词之间使用 _下划线 连接 (例如:first_name、last_name、qq_number、qq_password);

date_of_birth
age_of_boy

2.小驼峰式命名法:第一个单词以小写字母开始,后续单词的首字母大写(例如:firstName、lastName);

3.大驼峰式命名法:每一个单词的首字母都采用大写字母(例如:FirstName、LastName、CamelCase )

DateOfBirth
AgeOfBoy
ShowMeAI

变量类型

1. 数字型

整数(int)

%:取余
//:求整除
pow(x,y) :计算x^y
pow(x,y[,z]) : 幂余,x和y是必选参数,z是可选参数;如果使用了参数z,中括号必须去掉,即power(x,y,z),其结果是x的y次方再对z求余数,但是这种方式比power(x,y) % z的执行效率要高
abs(x) : 求绝对值
divmod(x,y), 商余,(x//y,x%y)结果为(商,余)

浮点数(float)

注意:浮点数计算存在不确定性位数,但这不是bug;round(x,d)  :对x四舍五入,d是小数截取位数

科学计数法表示:

<a>e<b>   表示a*(10^b)

布尔(bool)

◾真 True ,非 0 数
◾假 False ,0

复数型 (complex)

a+bj  ; a-bj

注意:不同数字类型混合运算,结果为“最宽”类型

2. 非数字型

字符串

列表

元组

字典

set

三、变量的引用

概念:

•变量 和 数据 是分开存储的
•数据 保存在内存中的一个位置
•变量 中保存着数据在内存中的地址
•变量 中 记录数据的地址,就叫做 引用
•使用 id() 函数可以查看变量中保存数据所在的 内存地址(每次运行脚本时,id会变化)

注意:如果变量已经被定义,当给一个变量赋值的时候,本质上是 修改了数据的引用

•变量 不再 对之前的数据引用
•变量 改为 对新赋值的数据引用

在 Python 中,函数的 实参/返回值 都是是靠 引用 来传递来的

四、可变和不可变类型

不可变类型:

内存中的数据不允许被修改。

value(值)一旦改变,id(内存地址)也改变,则称为不可变类型(id变,意味着创建了新的内存空间)。

◦ 数字类型 int, bool, float, complex, long(2.x)

#id
a = 1
print(id(a),type(a)) #1452422928 <class 'int'>
a = 2
print(id(a),type(a)) #1452422944 <class 'int'>
#float
b = 1.23
print(id(b),type(b)) #13260288 <class 'float'>
b = 2.59
print(id(b),type(b)) #13260048 <class 'float'>
#复数型
c = 1+2j
print(id(c),type(c)) #17454936 <class 'complex'>
c = 1-2j
print(id(c),type(c)) #17455608 <class 'complex'>
#bool
d = True
print(id(d),type(d)) #1452241744 <class 'bool'>
d = False
print(id(d),type(d)) #1452241760 <class 'bool'>

◦ 字符串 str,改变string值后,id也变了

str = "test string"
print(id(str)) #17515288
str = "change"
print(id(str)) #16472544

◦ 元组 tuple,改变值后,id也变了

info_tuple = ("zhangsan", 18, 1.75)
print(id(info_tuple)) # 15016344
info_tuple = info_tuple + (1,2,3)
print(info_tuple)#('zhangsan', 18, 1.75, 1, 2, 3)
print(id(info_tuple)) #14083496

◦ 日期

#日期
import datetime
oneday = datetime.date.today()
print(oneday) #2022-03-23
print(id(oneday),type(oneday))# 10508792 <class 'datetime.date'>
oneday = datetime.date.today() - oneday
print(oneday) #0:00:00
print(id(oneday),type(oneday)) #10509176 <class 'datetime.timedelta'>

可变类型:

可变类型的数据变化,是通过 方法 来实现的。如果给一个可变类型的变量,赋值了一个新的数据,引用会修改

•变量 不再 对之前的数据引用
•变量 改为 对新赋值的数据引用

在id(内存地址)不变的情况下,value(值)可以变,则称为可变类型

◦ 列表 list,改变列表值后,id不变

l = [1,2,3,4,5]
print(id(l)) # 13642288
print(l[4]) #5
l[4] = 9
print(id(l)) # 13642288

◦ 字典 dict,改变value后,id不变(注意:字典的 key 只能使用不可变类型的数据)

info = {"name":"Mary","age":"26"}
print(id(info)) #18251528
info["name"] = "Cindy"
print(id(info)) #18251528

◦ set

set1={1,2,1,3,4,5,6,7}
print(id(set1),type(set1))#21787872 <class 'set'>
set1={1,2,3,8,9,7,10}
print(id(set1),type(set1))#21787872 <class 'set'>

五、哈希 (hash)

Python 中内置有一个名字叫做 hash() 的函数,获取一个对象的哈希值。

◦ 接收一个 不可变类型 的数据作为 参数(list,dictionary,set都是unhashable type)
◦ 返回 结果是一个 整数

哈希 是一种 算法,其作用就是提取数据的 特征码(指纹) 

◦ 相同的内容 得到 相同的结果
◦ 不同的内容 得到 不同的结果

在Python中,设置字典的 键值对 时,会首先对 key(字典中的key也是不可变数据类型) 进行 hash 以决定如何在内存中保存字典的数据,以方便后续对字典的操作:增、删、改、查。

str = "apple"
print(hash(str)) #-1877658494
print(hash(1.23)) #579820504

六、局部变量和全局变量

局部变量:

•局部变量 是在 函数内部 定义的变量,只能在函数内部使用
•函数执行结束后,函数内部的局部变量,会被系统回收
•不同的函数,可以定义相同的名字的局部变量,但是 彼此之间 不会产生影响

作用:在函数内部使用,临时 保存 函数内部需要使用的数据

局部变量的生命周期

•所谓 生命周期 就是变量从 被创建 到 被系统回收 的过程
•局部变量 在 函数执行时 才会被创建
•函数执行结束后 局部变量 被系统回收
•局部变量在生命周期 内,可以用来存储 函数内部临时使用到的数据

全局变量:

全局变量 是在 函数外部定义 的变量,所有函数内部都可以使用这个变量

注意:函数执行时,需要处理变量时 会:
1.首先 查找 函数内部 是否存在 指定名称 的局部变量,如果有,直接使用
2.如果没有,查找 函数外部 是否存在 指定名称 的全局变量,如果有,直接使用
3.如果还没有,程序报错!

注意:

1. 函数不能直接修改全局变量的引用;
2. 如果在函数中需要修改全局变量,需要使用 global 进行声明  
  global num
  # 只是定义了一个局部变量,不会修改到全局变量,只是变量名相同而已
  num = 100
3. 为了保证所有的函数都能够正确使用到全局变量,应该 将全局变量定义在其他函数的上方

七、运算符

算术运算符:+ - * / %(取余)  //(整除) ** (求次方)

逻辑运算符:与(and),或(or),非(not)

成员运算符:in:判断一个元素是否在序列中;not in : 如果在指定的序列中没有找到值返回 True,否则返回 False

Python变量与运算符一_python

八、 转义符

\b : 回退

\n  :  换行

\r : 回车

\t:横向制表符,在控制台输出一个 制表符,协助在输出文本时 垂直方向 保持对齐

\\:反斜杠符号

\' :单引号 

\": 双引号 

九、随机数的处理

import random:导入随机数的模块 —“工具包”, 需要用到random 模块的 randint() 函数来生成随机数

导入模块后,可以直接在 模块名称 后面敲一个 . 然后按 Tab 键,会提示该模块中包含的所有函数

random.randint(a, b) ,返回 [a, b] 之间的整数,包含 a 和 b

标签:变量,Python,运算符,print,type,id,函数
From: https://blog.51cto.com/u_11837698/6088131

相关文章

  • Python基础语法与执行脚本的3种方式
    一、Pytnon特点什么是编程语言是用来定义计算机程序的形式语言。我们通过编程语言来编写程序代码,再通过语言处理程序执行向计算机发送指令,让计算机完成对应的工作。简单来说......
  • 对sys.getsizeof()提取变量大小的理解
    python-sys.getsizeof的使用科班出身的码畜一直被灌输一条上帝圣经:“一个int占4个字节,一个char占1个字节,一个float占4个字节。。。”,今天看下了python的getsizeof函数,发......
  • 大数据挖掘-python基本绘图函数学习
    1-plot绘制线型图plot是python中最基本的绘制二维线性折线图的函数基本使用方式:plt.plot(x,y,s)代码实现:importmatplotlib.pyplotaspltimportnumpyasnpimport......
  • python getattr动态调用方法
    classCC():defaa(self):print('aa')defbb(self):print('bb')CC=CC()getattr(CC,'aa',)() 传参classCC():defaa(self,aa)......
  • Python用于数据绘图
    importpandasaspdimportmatplotlib.pyplotasplt#导入绘图包plt.rcParams['font.sans-serif']=['SimHei']#解决中文显示问题plt.rcParams[......
  • python画图学习
    1.plot绘制线型图plot是python中最基本的绘制二维线性折线图的函数基本使用方式:plt.plot(x,y,s)importmatplotlib.pyplotaspltimportnumpyasnpimportpandasa......
  • linux上安装python3(yum方式)
      可联通外网的linux系统终端上安装python31,建立yum仓库:https://mirrors.163.com/centos/7.9.2009/os/x86_64/2,使用yum下载安装对应包:#yum-ygroupinstall"De......
  • Python 网络编程
    自计算机诞生以来,计算机网络逐渐从单机模型发展成了网络互联模型 最初只是远程终端连接,终端(键盘和显示器)分布在各地然后与主机相连,用户通过终端来与远程主机进行交互,终......
  • vue环境变量配置 解决process.env取值undefind的问题?
    1.前端配置文件中,配置的参数取值为undefind如何解决,图片如下。  ·   2。需要到package.json中改变配置,加上--modedevelopment......
  • python requests请求出现 requests.exceptions.ConnectionError: ('Connection aborte
    pythonrequests请求出现requests.exceptions.ConnectionError:('Connectionaborted.',OSError(22,'Invalidargument'))Traceback(mostrecentcalllast):File......