python数据类型及运算符

第一个程序

print("hello world")

变量:变量在程序中就是一个容器。(用来装东西,去超市买东西时候推得手推车就是变量)

score=100 #定义一个变量,这个变量名字就score,它里面存储的一个数值100
high=180 #定义一个变量,变量值是180

注释:#井号为注释号 /多行注释''''''

 

 

一. 基本数据类型

python(数据类型)主要有6中数据类型:

Number(数字)、String(字符串)、List(列表)、Tuple(元组)、Dictionary(字典)、Set(集合)

其中number数字类型支持 int、float、bool、complex(复数)。

 

(1)numbers 数字

整型 int

a = 1
print (type(a))

>>> 2 ** 100
1267650600228229401496703205376L

 

布尔型 boor

True False

print (1 > 2)
print (1 < 2)

浮点型 float

a = 1.0
print (type(a))

复数 complex

6.23+1.5j -1.23-987j

 

 

(2)字符串 str

name="wuchuan"
print(type(name))

(3)列表(list) 

列表是Python 中使用最频繁的数据类型。列表是写在方括号[ ]之间、用逗号分隔开的元素列表。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。

特点:支持对列表进行修改/删除/插入元素操作,[ ]内为空或者只有单个/多个元素,都为列表。

list_1= []

list_2= [1]

list_3 = ["zhangsan","lisi","wangwu"]

list_4=['guangdong','guangxi',['shenzhen','zhuhai']]
 print (list_1, list_3 ,list_4)

 

 

(4)元组(tuple)

元组与列表类似,不同之处在于元组的元素不能修改;元组的元素写在小括号()里,元素之间用逗号隔开。

注意:括号内为空时,则是一个空元组。

括号内只有一个元素时,则不为元组,由括号内元素类型定义

要想实现括号内只有一个元素的元组,则需要在该元素后面加入逗号","

tup_1=()
tup_5=("zhangsan","lisi","wangwu")
tup_2=(1)
tup_3=('ni')
tup_4=([2])

print(type(tup_1))
print(type(tup_5))
print(type(tup_2))
print(type(tup_3))
print(type(tup_4))

 

 

(5)字典(dict)

字典是一个有键值对组成的数据类型;用大括号{ }来表示一个字典。字典括号内为键值对格式 如{"key1":"value1","key2":"value2"}。支持对字典进行修改/删除/插入元素操作。

创建一个空字典,直接在变量名后面加上一个花括号{ }

dic_1= {"name":"zhangsan","age":28,"sex":"boy"}

dic_2 = {"name1":"zhangsan","age":{"age1":"18","age2":20},"name2":"lisi","name3":"wangwu"}

print (dic_1)

print (type(dic_1))

(6)集合(set)

集合是写在花括号 { } 里面或者 set() 函数创建集合;用逗号 , 分隔开。

注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

 

a = {1,2,3}

print (a)

print (type(a))

 

d={}
print(type(set(d)))

 

 

二.   数据类型的转换

 

1,整型转换为字符串用str()函数

(int转str )

c=123
d=str(c)#通过变量赋值
print(type(d))
a = 123
print (str(a))
print (type(str(a)))

2.转化为整型用int()函数(str转int)

a = "123"
b = int(a)
print(type(a))
print(type(b))

 3.list() 方法用于将元组或字符串转换为列表。

(str转list)

a="123"
b=list(a)
print(type(a))
print(type(b))

 

(tuple转list)

a = (1,2,3)
print (list(a))
print (type(list(a)))

(set转list)

a={"shenzhen","foshan","xianggan"}
b=list(a)
print(type(a))print(type(b))

4. tuple() 可以将字符串,列表,字典,集合转化为元组;

(str转tuple)

a="2343"
b=tuple(a)
print(type(b))

(list转tuple)

a=["shenzhe","dongguang",40,23]
b=tuple(a)
print(type(b))

(dict转tuple)

a={"name":"shenzhe","age":40}
b=tuple(a)print(b)#将字段转换为元组时候只保留键!
print(type(b))
 

(set转tuple)

a={"shenzhen","foshan","xianggan"}
b=tuple(a)print(type(b))

5.set() 可以将字列表,元组,转化为集合

(list转set)

a=[1,2,4,4]
b=set(a)#set()函数有去重功能,把重复的元素去掉
print(type(b))

(tuple转set)

a=('huawei','sanxing','apple')
b=set(a)
print(type(b))

(dict 转 set)

a={"shenzhen":"nanshan","foshan":"nanhai"}
b=set(a)print(b)#取键
print(type(b))

三、运算符

1.算数运算符

(1)加(+)

注意:字符串与整数之间不能进行相加,需要通过str()或int()进行转换数据类型

整数与整数相加

a="3"
b=4
b=str(b)
print(a+b)

浮点数与浮点数相加

"""二进制存储精度误差""" 
a=3.6 b=4.44 print(a+b)

 

整数与浮点数相加

 

字符串之间相加

a="hello"
b="shenzhen"
print(a+b)

正数与负数相加

 

 

 

(2)减(-)

    注意:字符串与整数和字符串之间不能进行相减

整数与整数相减

>>> 10 - 5
5

负数与负数相减

>>> -3 - -4

1

正数与负数相减

浮点数与浮点数相减

整数与浮点数相减

 

 

(3)乘(*)

    注意:字符串与字符串之间不能进行相乘

 

整数与整数相乘

>>> 3 * 2

6

 

浮点数与浮点数相乘

整数与浮点数相乘

正数与负数相乘

负数与负数相乘

 

 

 

(4)除(/)

    注意:字符串与字符串和整数之间不能进行相除

 


"""整数相除,结果为整数"""
python2.x 整数与整数相除
>>> 6 / 3
2

 

"""整数相除,结果为浮点数"""

python3.x 整数与整数相除
>>> 6/3 2.0

浮点数与浮点数相除

整数与浮点数相除

 

(5)求幂(**)

如x ** y  --> 返回x的y次幂

>>> 3 ** 3

27

 

>>> 10 ** 2

100

 

(6)取模 (%)--> 返回除法的余数

>>> 5 % 3
2

"""-a % b = b - (a % b)"""

>>> -304 % 100

96

 

(7)整除法(//) -->向左取整

正数(正数向零取整)

>>> 9.0 // 2
4.0

负数(负数取偏小一位数)

>>> -9.0 // 2
-5.0

>>> -9 // 2
-5

注意:

1. 先乘除后加减
2. 幂运算优先级最高

 

 

 

2.赋值运算符

 (1)=等号是主要的赋值运算符

变量的使用和命名

 

  变量名只能包含字母、数字和下划线,可以以字母或下划线打头,但是不能以数字打头

  变量不能包含空格

  不要以 python 中的关键字(保留字符)作为变量

  变量名应简短又具有描述性

  变量区分大小写

name = "Alex Li"
name2 = name
print(name,name2)
name = "Jack"
print(name)

python内存回收机制如下:

变量相当于门牌号,当门牌没有了,即函数的引用都没有调用了,内存的数据就会被清除掉。

python内有个定时器,定期的会刷新,如果发现内存中数据不被引用了,就会被回收,这个就是内存的回收机制。

 

 

(2)+=  加法赋值运算符

a += 1   --> a = a + 1

a=3
a +=1
print(a)

  

 

(3)-=  减法赋值运算符

a -= 1   --> a = a – 1

a=10
a -=1
a=a-1
print(a)

(4)*=  乘法赋值运算符

   a *= 1   --> a = a * 1

 

(5)/=  除法赋值运算符

   a /= 2   --> a = a / 2

 

(6)%=  取模赋值运算符

   a %= 3  --> a = a % 3

 

(7)**=  幂赋值运算符

    c **= a 等效于 c = c ** a

 

(8)//=  取整除赋值运算符

   c //= a 等效于 c = c // a

 

 

 

3.比较运算符(返回值为Boolean值----布尔值)

 

(1)==  等于 - 比较对象是否相等

>>> "name" == "name"
True
>>> 1 == 1 True >>> 1 == 2 False

(2)!=或<>  不等于 - 比较两个对象是否不相等 

>>> 1 != 2
True

>>> 1 <> 1
False

>>> "name" != "name1"
True

(3)> 大于

>>> 2 > 1
True

>>> 5 > 8
False

>>> "shenzhen">"shenzhe"
True

(4)< 小于

>>> 1 < 2
True

>>> 3 < 2
False

(5)>= 大于等于

>>> 2 >= 2
True

(6)<= 小于等于

>>> 2 <= 2
True

注意:字符串按位比较,两个字符串第一位字符的ascii码谁大,字符串就大,不再比较后面的;第一个字符相同就比第二个字符串,以此类推,需要注意的是空格的ascii码是32,空(null)的ascii码是0,大写字母和小写字母的ASCII不同 

 

4.身份运算符(用于比较两个对象的存储单元--内存地址)

 (1)is   是判断两个标识符是不是引用自一个内存地址

x is y,类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False

>>> 1 is 1
True

>>> 1 is 2
False

 (2)is not   是判断两个标识符是不是引用自不同对象

x is not y, 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False

>>> 1 is not 1
False

>>> 1 is not 2
True

注意:

小整数对象池:python在执行的时候,为了节约空间,帮我们创建好了小整数对象池,[-5~256],都是固定的地址,不管你用不用,都会存在。
比如,a=5,b=5,id(a)和id(b)的地址都是小整数池中固定已经存在的地址,所以相等
但如果,a=1000,b=1000,这时会给a一个地址,也会给b一个地址,但他们都不相等。 

 

 

5.逻辑运算符

(1)逻辑与(and):两边的表达式同时为真,结果才为真。

a=10
b=30
print(a==9 and b==30)
False
print(a==10 and b==30)
True

(2)逻辑或(or):两边的表达式一个为真,结果就为真。一个为真,结果就为真

a=10
b=30
print(a==9 or b==30)
print(a==10 or b==30)
print(a==11 or b==31)

(3)逻辑非(not):用于取反表达式,真变假,假变真

b=30
print(not b==310)
print(not b==30)

逻辑运算符的优先级: 从左到右:() > not > and > or

计算:1>3 or 3>2 and 1=0 and not(7>2 or 3>5)

从左到右,先计算()里,7>2为True,则括号里为True,再看括号外面的not,则这一部分为false.
再先计算左边的and,3>2为True,则看1=0的布尔值,1=0为False,则3>2 and 1=0为False.
再计算 3>2 and 1=0 and not(7>2 or 3>5),已知3>2 and 1=0 为False, not(7>2 or 3>5)为False,则3>2 and 1=0 and not(7>2 or 3>5)为False。
最后看1>3为False,3>2 and 1=0 and not(7>2 or 3>5)为False,则整体为False.

 

 

 

6.成员运算符

(1)in:判断一个值是在另一个变量中

如下:a 在 b序列中则返回True,否则返回False

 

a=10
b=[1,2,20,10]
c=(1,2,10)
print(a in b)
print(a in c)

 

(2)not in  判断一个值不在另一个变量中

 

如下:a 不在 b序列中则返回True,否则返回False

a=1
b=[1,2,20,10]
c=(3,2,10)
print(a not in b)
print(a not in c)

结果:

False
True

 

原文地址:https://www.cnblogs.com/iruance/p/12592295.html