Py学习  »  Python

猪行天下之Python基础——2.3 变量,常量,运算符

coder-pig • 5 年前 • 338 次点击  
阅读 18

猪行天下之Python基础——2.3 变量,常量,运算符

内容简述:

  • 1、变量
  • 2、常量
  • 3、运算符

1、变量


① 什么是变量

程序运行过程中值可以改变的数据,代表这一个存储空间,需要用变量名来找到这个数据。举个形象化的例子:超市储物箱,存东西到箱子里后会给你一个纸条,根据纸条才能取回里面的东西。储物柜的格子可以理解为变量的内存空间,纸条就是变量名,拿和放就是修改变量名对应内存空间里的数据。


② 变量的使用示例

变量「使用前需先定义」,python是一种「动态类型语言」,赋值时可以绑定不同类型的数据值。同时也确定了变量类型。Python中可以通过type()函数来获取变量的数据类型,示例如下:

# 变量定义(确定初始值类型)
a = 1
print('%s => %d' % (type(a),a))
# 变量赋值
a = 'Python'
print('%s => %s' % (type(a),a))


# 运行结果如下:
# <class 'int'> => 1
# <class 'str'> => Python
复制代码

③ 多个变量赋值

Python支持多个变量赋值,以下两种赋值方法都是正确的:

a = b = c = 1
a, b, c = 1,2,"Python"
复制代码

④ del关键字

我们可以使用del关键字删除对象的引用,但删除后再调用变量是会报错的,比如调用del a,然后再去把a打印出来,会报这样的错误:NameError: name 'a' is not defined


2、常量


Python中没有专门定义常量的方式,通常使用大写变量名表示,不过仅仅是起一种「提示效果」,本质上还是变量

3、运算符


① 算术运算符(7种) & 赋值运算符(8种)

Python中包含的算术运算符有如下七种:

+(加) -(减)*(乘) /(除) %(求余) *(幂,次方) //(地板除法,舍弃小数)

使用代码示例如下




    
print("3 + 7 = %d" % (3 + 7))
print("3 - 7 = %d" % (3 - 7))
print("3 * 7 = %d" % (3 * 7)) 
print("7 / 3 = %f" % (7 / 3))
print("7 %% 3 = %d" % (7 % 3))
print("3 ** 6 = %d" % (7 ** 3))
print("3 // 6 = %f" % (7 // 3)) 
复制代码

运行结果如下

3 + 7 = 10
3 - 7 = -4
3 * 7 = 21
7 / 3 = 2.333333
7 % 3 = 1
3 ** 6 = 343
3 // 6 = 2.000000
复制代码

而赋值运算符就是在算术运算符后添加一个=(等号),比如:a+=1 等价于: a = a + 1
8种赋值运算符:= += -= *= /= %= *= //=


② 比较运算符(6种)

Python中提供如下六种比较运算符:

==(等于) !=(不等于) >(大于) <(小于) >=(大于等于) <=(小于等于)

比较结果会返回一个布尔值,TrueFalse,一般在条件判断那里会用到。


③ 位运算符(6种)

位运算符是把数字看做二进制来计算,首先你要了解禁止转行,我们平时说的数字都是十进制,十进制如何转换成二进制?一直求余法,举个例子,十进制的6转换为二进制:

6 % 2 = 0  得出第一位为0
6 / 2 = 3 
3 % 2 = 1 得出第二位为1
3 / 2 = 1
1 % 2  = 1 得出第三位为1
# 所以十进制的6转成二进制的值就是:110

# 再试试十进制的17转二进制:
17 % 2 = 1 得出第1位为1
17 / 2 = 8
8 % 2 = 0 得出第2位为0
8 / 2 = 4 
4 % 2 = 0  得出第3位为0
4 / 2 =  2
2 % 2 = 0 得出第4位为0
2 / 2 = 1
1 % 2 = 1 得出第5位为1
复制代码

所以十进制的17转二进制的值就是:10001,知道十进制怎么转二进制了,那么二进制怎么转十进制呢?用到权值相加法,比如二进制的110转十进制:

1*2^2+1*2^1+0*2^0=4+2=6
复制代码

再试试10001转十进制:

1*2^4+0*2^3+0*2^2+0*2^1+1*2^0=16+1=17
复制代码

Python中提供了bin函数,可以获得一个整形数字的二进制表示,下面通过示例程序来了解Python中的6种位运算符:

a = 6
b = 17
print('a 对应的二进制值 %s' % bin(a))
print('b 对应的二进制值 %s' % bin(b))

# & 按位与,两个相应位都为1则为1,否则为0
print('a & b = %s 对应十进制的值为: %d' % (bin(a & b), a & b))

# | 按位或,两个相应位有一个为1,则为1,两个都不为0,才为0
print('a | b = %s 对应十进制的值为: %d' % (bin(a | b), a | b))

# ^ 异或,两个相应位不同为1,相同为0
print('a ^ b = %s 对应十进制的值为: %d' % (bin(a ^ b), a ^ b))

# ~ 按位取反,二进制位取反,0变1,1变0
print('~a = %s 对应十进制的值为:%a' % (bin(~a), ~a))

# << 左移运算符,所有位向左移一定位数,高位丢弃,低位补0
print('a << 2 = %s 对应十进制的值为:%a' % (bin(a << 2), a << 2))

# >
> 右移运算符,所有位向右移一定位数

print('a >> 2 = %s 对应十进制的值为:%a' % (bin(a >> 2), a >> 2))
复制代码

输出结果如下




    
a 对应的二进制值 0b110
b 对应的二进制值 0b10001
a & b = 0b0 对应十进制的值为: 0
a | b = 0b10111 对应十进制的值为: 23
a ^ b = 0b10111 对应十进制的值为: 23
~a = -0b111 对应十进制的值为:-7
a << 2 = 0b11000 对应十进制的值为:24
a >> 2 = 0b1 对应十进制的值为:1
复制代码

④ 逻辑运算符(3种)

Python中提供了三种逻辑运算符,分别是:and(逻辑与),or(逻辑或),not(逻辑非),一般在条件判断的时候会用到,代码示例如下:

score = 70

# 逻辑与,两个表达式都成立,才执行
if score > 60 and score < 100:
    print('分数及格')

# 逻辑与,有一个表达式成立就执行
score = -10
if score < 0 or score > 100:
    print("分数值非法,不能小于0或者大于100")

# 逻辑非,逆转,表达式成立的话反而不执行
score = 100
if not score == 100:
    print("没有满分" )
else:
    print("满分")
复制代码

输出结果如下

分数及格
分数值非法,不能小于0或者大于100
满分
复制代码

⑤ 成员运算符(2种)

Python提供了成员运算符,用于「判断指定的序列中是否有某个特定的值」,innot in
比如判断列表中是否有某个特定的值的代码示例如下:

people_list = ['小明''小红''小白''小猪']

if '小猪' in people_list:
    print("小猪在列表里")

if '大猪' not in people_list:
    print("大猪不在列表里")
复制代码

输出结果如下

小猪在列表里
大猪不在列表里
复制代码

⑥ 身份运算符(2种)

Python中提供了身份运算符用于「判断两个标识符是不是引用自一个对象」,is is not,使用示例如下:

# 普通数据类型
a = 1
b = 1
print('当前a和b引用同一个变量:%s' % (a is b))

# 复杂数据类型(数组)
a = [1]
b = [1]
print('当前a和b引用不同一个变量:%s' % (a is not b))

# 字符串
a = 'python'
b = 'python'
print('当前a和b引用同一个变量:%s' % (a is b))
复制代码

输出结果如下

当前a和b引用同一个变量:True
当前a和b引用不同一个变量:True
当前a和b引用同一个变量:True
复制代码

⑦ 运算符优先级

Python中的运算符优先级如表所示:

运算符 描述
** 指数
~ + - 取反,正负号
* / % // 乘除,求余,地板除法
<< >> 左右移
& 按位与
^ 异或,按位或
> < <= > >= 比较运算符
<> == != 等于运算符
= %= /= //= -= += *= **= 赋值运算符
is is not 身份运算符
in not in 成员运算符
not or and 逻辑运算符

如果本文对你有所帮助,欢迎
留言,点赞,转发
素质三连,谢谢😘~


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/31103
 
338 次点击