一、变量的类型

  程序中,为了更充分的利用内存空间以及更有效率的管理内存,变量是有不同的类型的。
  怎样知道一个变量的类型呢?
  在python中,只要定义了一个变量,而且它有数据,那么它的类型就已经确定了,不需要我们主动的去说明它的类型,系统会自动辨别
  可以使用type(变量的名字),来查看变量的类型



name = "Python"
age = 18
print(type(name),type(age))
——————————————————————————————————
<class 'str'> <class 'int'>



1、数字(Number)

(1)int(有符号整型)

  在32位机器上:-2**31~2**31-1

  在64位机器上:-2**63~2**64-1

(2)long(长整型)(基本不用)

(3)float(浮点型)

  浮点数用来处理实数,即带有小数的数字

(4)complex(复数)

  复数由实数部分和虚数部分组成,一般形式为x+yj

PS:Python中存在小数字池:-5 ~ 257

2、布尔类型

  真或家(1或0)(True or False)

3、字符串(String)

PS:字符串(%s);整数(%d);浮点数(%f)

字符串常用功能:

  移除空白、分割、长度、索引、切片

4、列表(List)

创建列表:



1 num_list = [12,234,45,12]
2 或
3 num_list2 = list([12,23,34,126])



基本操作:

  索引、切片、追加、删除、长度、循环、包含

5、元组(Tuple)(不可变列表)

创建元组:



age = (11,22,33,44)
或
age = tuple((11,22,33,44))



6、字典(Dictionary)

创建字典:



person = {"name":"ryz","age":18}
或
person = dict({"name":"ren","age":18})



常用操作:

  索引、新增、删除、键值对、循环、长度

7、空值(None)

  空值时python中一个特殊的值,用None表示;None不能理解为0,因为0是有意义的,而None是一个特殊的空值。

8、可变类型和不可变类型

可变类型:在id不变的情况下,value可以变,则称为可变类型,如列表、字典

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

二、数据运算

1、算数运算

python 变量 legb python 变量类型查看_赋值



# 算数运算
a = 10
b = 5
print(a+b)   # 加法
print(a-b)     # 加法
print(a*b)     # 乘法
print(a/b)     # 除法
print(a//b)     # 取整除
print(a%b)     # 取余
print(a**b)     # 取幂
-----------------------------------------------------------------
15
5
50
2.0
2
0
100000



2、比较运算

python 变量 legb python 变量类型查看_Python_02



#比较运算符
a = 10
b = 5
print(a == b)
print(a != b)
print(a < b)
print(a <= b)
print(a > b)
print(a >= b)
#注意:<>表示不等于,现在已经被废弃
------------------------------------------------------
False
True
False
False
True
True



3、赋值运算(复合赋值运算符)

python 变量 legb python 变量类型查看_python_03



#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: Renyz
#赋值运算符
#要求:让两个变量等于一个值
#1、链式赋值
a = b = 2
print(id(a),id(b))
---------------------------------------------------------
140730512466608 140730512466608
---------------------------------------------------------
---------------------------------------------------------
#2、交叉赋值
#第一种交叉赋值法:
n = 10
m = 20
c = n
n = m
m = c
print(n,m)
----------------------------------------------------------
20 10
----------------------------------------------------------
#第二种交叉赋值法:
n = 10
m = 20
n,m = m,n 
print(n,m)
-----------------------------------------------------------
20 10



4、逻辑运算

python 变量 legb python 变量类型查看_Line_04



#and
#去办理贷款买房手续,需要你且你媳妇一同来办理
you = input("你本人去吗(去或者不去)?")
your_wife = input("媳妇去吗(去或者不去)?")
if you == "去" and your_wife == "去":
   print("恭喜,两个人来了,把事情办成了!")
else:
   print("必须有两个人来办理贷款业务!")
----------------------------------------------------------------
你本人去吗(去或者不去)?去
媳妇去吗(去或者不去)?去
恭喜,两个人来了,把事情办成了!



#or
#去办理个人贷款买房手续,只需要你或者你媳妇代理
you = input("你本人去吗(去或者不去)?")
your_wife = input("媳妇去吗(去或者不去)?")
if you == "去" or your_wife == "去":
   print("恭喜,至少一个人办理就行了!")
else:
   print("必须有一个人来办理贷款业务!")
-----------------------------------------------------------------
你本人去吗(去或者不去)?去
媳妇去吗(去或者不去)?不去
恭喜,至少一个人办理就行了!



#青年时期17~24年龄
age = 30 #不是青年时期
if not (age >= 17 and age <= 24):
    print("不是青年时期!<17或者大于24")
-------------------------------------------------------------
不是青年时期!<17或者大于24



5、成员运算

python 变量 legb python 变量类型查看_Line_05



name = '''
毕洪态,
赵明利,
hello,
world,
'''
a = "world" in name
b = "haha" in name
c = "毕洪态" not in name
print(a)
print(b)
print(c)
------------------------------------------------------------------------
True
False
False



6、身份运算

python 变量 legb python 变量类型查看_Python_06

is 是比较两个引用是否指向了同一个对象(引用比较)

== 是比较两个对象(值)是否相等



#身份运算符
#is是判断内存地址;==是判断变量值
#一个内存地址可以对应多个变量,一个变量只能对应一个内存地址
a = [11,22,33]
b = [11,22,33]
print(a == b)
print(a is b)
#验证id
print(id(a),id(b))
-------------------------------------------------------------------
True
False
434119402120 434119402184



拓展:
In [1]: a=256
In [2]: b=256
In [3]: a is b
Out[3]: True
In [4]: a=257
In [5]: b=257
In [6]: a is b
Out[6]: False



  注意:因为python对小整数在内存中直接创建了一份,不会回收,所有创建的小整数变量直接从对象池中引用他即可。但是注意Python仅仅对比较小的整数对象进行缓存(范围为范围[-5, 256])缓存起来,而并非是所有整数对象。也就说只有在这个[-5,256]范围内创建的变量值使用is比较时候才会成立

7、位运算

python 变量 legb python 变量类型查看_赋值_07



#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: Renyz
a = 60  # 60 = 0011 1100
b = 13  # 13 = 0000 1101
c = 0
c = a & b  # 12 = 0000 1100
print("Line 1 - Value of c is ", c)
c = a | b  # 61 = 0011 1101
print("Line 2 - Value of c is ", c)
c = a ^ b  # 49 = 0011 0001 #相同为0,不同为1
print("Line 3 - Value of c is ", c)
c = ~a  # -61 = 1100 0011
print("Line 4 - Value of c is ", c)
c = a << 2  # 240 = 1111 0000
print("Line 5 - Value of c is ", c)
c = a >> 2  # 15 = 0000 1111
print("Line 6 - Value of c is ", c)



运算符优先级:

python 变量 legb python 变量类型查看_Line_08