python学习笔记_第2天(变量+运算符)

变量的声明和赋值

Python 没有语法规则限制改变一个常量的值,不支持常量.所以通过约定常量的命名规
则,在程序的逻辑上不对常量的值做修改

  • 链式赋值
    链式赋值用于同一个对象赋值给多个变量
    x=y=123 相当于:x=123; y=123
  • 系列解包赋值
    系列数据赋值给对应相同个数的变量(个数必须保持一致)
    a,b,c=4,5,6 相当于:a=4;b=5;c=6
    常使用系列解包赋值实现变量交换
a,b=1,2
a,b=b,a
print(a,b)  # 2,1

最基本内置数据类型和运算符

python 中最基本的内置数据类型:

  • 整型
  • 浮点型(3.14 或者科学计数法314e-2)
  • 布尔型
  • 字符串型
数字和基本运算符
运算符说明示例结果
+3+25
-30-525
*3*618
/8/24.0
//整除7//23
%取余7%43
**2**38
divmod()返回元祖,同时得到商和余数divmod(13,3)(4, 1)
整数

除10进制,还有其他三种进制:

  • 0b 或0B,二进制0 1
  • 0o 或0O,八进制0 1 2 3 4 5 6 7
  • 0x 或0X,十六进制0 1 2 3 4 5 6 7 8 9 a b c d e f

int()实现类型转换:

  1. 浮点数直接舍去小数部分,如int(9.9)结果是:9
  2. 布尔值True 转为1,False 转为0
  3. 字符串符合整数格式(浮点数格式不行,int(“3.14”)报错)则直接转成对应整数
浮点数
  1. float()可将其他类型转化成浮点数
  2. 整数和浮点数混合运算时,表达式结果自动转型成浮点数
  3. round(value)可以返回四舍五入的值,但不会改变原有值,而是在堆中产生新的对象,指向新的值
时间

计算机中时间的表示是从“1970 年1 月1 日00:00:00”开始,以毫秒(1/1000 秒)进行计算.整数部分为距1970 年1 月1 日00:00:00的毫秒数,小数部分为微妙数
python 中可以通过time.time() 获得当前时刻,返回的值是以秒为单位,带微秒(1/1000 毫秒)精度的浮点值

布尔值

把True 和False 定义成了关键字,但本质是1和0,甚至可以和数字相加

  • 比较运算符

所有比较运算符返回1表示真,返回0表示假,这分别与特殊的变量True 和False 等价

运算符描述
==等于,比较对象的值是否相等
!=不等于,比较两个对象的值是否不相等
>大于,判断x 是否大于y
<小于,判断x 是否小于y
>=大于等于,判断x 是否大于等于y
<=小于等于,判断x 是否小于等于y
  • 逻辑运算符
运算符格式描述
or (逻辑或)x or yx为true,则不计算y,直接返回true; x为false,则返回y
and (逻辑与)x and yx为true,则返回y的值; x为false,则不计算y,直接返回false
not(逻辑非)not xx为true,返回false; x为false,返回true
  • 同一运算符
    同一运算符用于比较两个对象的存储单元,实际比较的是对象的地址
运算符描述
isis 是判断两个标识符是不是引用同一个对象
is notis not 是判断两个标识符是不是引用不同对象

is 与==区别:

  1. is 比较两个对象的id 值是否相等,是否指向同一个内存地址
  2. == 比较的是两个对象的内容是否相等,值是否相等
  3. is 运算符比== 效率高,在变量和 None 进行比较时,应该使用is

整数缓存问题

  • Python 在命令行中执行时, 对范围为[-5, 256]的整数对象进行缓存,此时指向这个范围内的变量 is 或 == 返回都为TURE
  • Python 在 Pycharm 或者保存为文件执行时,则缓存范围为[-5,任意正整数],在此范围内的变量 is 或 == 都为TURE
基本运算符
运算符说明
and / or / not布尔与/或/非
is / is not同一性判断,判断是否为同一个对象
< / <= / > / >= / != / ==比较值是否相当,可以连用
| / ^ / &按位或/异或(二进制对应位不同返回1)/与
<< / >>位左移 / 右移
~按位翻转
+,-,*,/,//,%,**加,减,乘,除,整除,取余,幂
a = 4
3<a<10  # True,python的比较运算符可连用

a = 0b11001
b = 0b01000
c = a|b  
bin(c)  # bin()数字以二进制展示,'0b11001'
bin(a&b)  # '0b1000'
bin(a^b)  # a与b二进制位对应取异或,不同返回1,'0b10001'

a = 3
a<<2  # 12,左移1位相当于*2;左移2位相当于*4
a = 8
a>>3  # 4,右移1位相当于/2;右移2位相当于/4

[10,20,30]+[5,10,100]  # [10, 20, 30, 5, 10, 100]
(1,2,3)+(4,5,6)  # (1, 2, 3, 4, 5, 6)

"python"*3  # 'pythonpythonpython'
[10,20,30]*3  # [10, 20, 30, 10, 20, 30, 10, 20, 30]
(1,2,3)*3  # (1, 2, 3, 1, 2, 3, 1, 2, 3)
  • 复合赋值
    python 不支持自增(++)和自减(–),只能写成a+=1的形式
运算符优先级

实际使用中,记住如下简单的规则:

  1. 乘除优先加减
  2. 位运算和算术运算>比较运算符>赋值运算符>逻辑运算符
运算符说明(优先级由高到低)
**
~(不常用)按位翻转
* / % //乘 除 取余 整除
+ -加 减
>> <<位右移 位左移
&按位与
^ |按位或 按位异或
<= < > >=比较运算符
<> == !=等于运算符
= %= /= //= -= += *= **=赋值运算符
is is not身份运算符
in not in成员运算符
not or and逻辑运算符
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值