zoukankan      html  css  js  c++  java
  • 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

     

  • 相关阅读:
    php之aop实践
    PHP一个类AOP的实现
    PHP系列学习之AOP
    PVE上安装黑裙辉6.2
    安装proxmox VE(PVE)教程
    x-forwarded-for的深度挖掘
    nginx的配置总结,有时间自己整理
    openresty入门文章(笔者自用)
    pve apt-get update error 升级报错-文章未完工和验证
    pve proxmox 常见问题,perl warning
  • 原文地址:https://www.cnblogs.com/iruance/p/12592295.html
Copyright © 2011-2022 走看看