zoukankan      html  css  js  c++  java
  • Python 学习笔记 (变量与数据类型)

    有关的资料: https://www.cnblogs.com/xiangweilai/p/9438350.html

     Python 变量与数据类型

     变量


    1. Python 中的变量不需要声明,每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。

      变量赋值

       1. 多个变量赋值      a = b = c = 1

       2. 可以为多个对象指定多个变量    a, b, c = 1, 2, "neo"

      常量

        在 Python 中,通常用全部大写的变量名表示常量: BI = 3.14 

        但事实上 BI 仍然是个变量,Python 根本无法保证 BI 不会被改变,所以,用全部大写的变量名表示常量只是一个习惯上的用法如果你一定要改,语法也不会报错


     数据类型

            Python3 中有六个标准的数据类型:Number(数字)、String(字符串)、List(列表)、Tuple(元组)、Sets(集合)、Dictionary(字典)。

    • 不可变数据(3 个): Number(数字)、String(字符串)、Tuple(元组);
    • 可变数据   (3 个):  List(列表)、Dictionary(字典)、Set(集合)

     Number(数字)

      Python3 支持 int、float、bool、complex(复数)。

    • 整型 (Int)            -  通常被称为是整型或整数,是正或负整数,不带小数点  , 整型是没有限制大小的
    • 浮点型 (float)    -  浮点型由 整数部分与小数部分组成
    • 复数 (complex) -  复数由实数部分虚数部分构成,可以用 complex(a,b) 表示, 复数的实部a虚部b都是浮点型

    数字类型转换

    • int(x)   将x转换为一个整数。
    • float(x) 将x转换到一个浮点数。
    • complex(x) 将x转换到一个复数,实数部分为 x,虚数部分为 0。
    • complex(x, y) 将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。

    String(字符串)

      可以使用单引号、双引号、三单引号和三双引号 

    • 字符串的一些常见操作:
    s = '学习Python'
    # 切片
    s[0], s[-1], s[3:], s[::-1]    # '优', 'n', 'Python', 'nohtyP的雅优'
    # 替换,还可以使用正则表达式替换
    s.replace('Python', 'Java')    # '学习Java'
    # 查找,find()、index()、rfind()、rindex()
    s.find('P')            # 3, 返回第一次出现的子串的下标
    s.find('h', 2)            # 6, 设定下标2开始查找
    s.find('23333')            # -1, 查找不到返回-1
    s.index('y')            # 4, 返回第一次出现的子串的下标
    s.index('P')        # 不同与find(), 查找不到会抛出异常
    # 转大小写, upper()、lower()、swapcase()、capitalize()、istitle()、isupper()、islower()
    s.upper()            # '学习PYTHON'
    s.swapcase()            # '学习pYTHON', 大小写互换
    s.istitle()            # True
    s.islower()            # False
    # 去空格,strip()、lstrip()、rstrip()
    # 格式化
    s1 = '%s %s' % ('Windrivder', 21)    # 'Windrivder 21' 
    s2 = '{}, {}'.format(21, 'Windridver')    # 推荐使用format格式化字符串
    s3 = '{0}, {1}, {0}'.format('Windrivder', 21)
    s4 = '{name}: {age}'.format(age=21, name='Windrivder')
    # 连接与分割,使用 + 连接字符串,每次操作会重新计算、开辟、释放内存,效率很低,所以推荐使用join
    l = ['2017', '03', '29', '22:00']
    s5 = '-'.join(l)            # '2017-03-29-22:00'
    s6 = s5.split('-')            # ['2017', '03', '29', '22:00']

     需要注意的是 字符串编码,所有的 Python 字符串都是 Unicode 字符串,当需要将文件保存到外设或进行网络传输时,就要进行编码转换,将字符转换为字节,以提高效率。

    # encode 将字符转换为字节
    str = '学习Python'      
    print (str.encode())            # 默认编码是 UTF-8  输出:b'xe5xadxa6xe4xb9xa0Python'
    print (str.encode('gbk'))       # 输出  b'xd1xa7xcfxb0Python'
    # decode 将字节转换为字符
    print (str.encode().decode('utf8'))   # 输出 '学习Python'
    print (str.encode('gbk').decode('gbk'))             # 输出 '学习Python'

    List(列表)

       列表是写在方括号 [ ] 之间、用逗号分隔开的元素列表,列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同

    Weekday = ['Monday','Tuesday','Wednesday','Thursday','Friday']
    print(Weekday[0])   # 输出 Monday
    
    #list 搜索
    print(Weekday.index("Wednesday"))
    
    #list 增加元素
    Weekday.append("new")
    print(Weekday)
    
    # list 删除
    Weekday.remove("Thursday")  
    print(Weekday)

    Tuple(元组)

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

    letters = ('a','b','c','d','e','f','g')
    print(letters[0])  # 输出 'a'
    print(letters[0:3])  # 输出一组 ('a', 'b', 'c')

      ***  由于 tuple 不可变,所以使用 tuple 可以使代码更安全


    Sets(集合)

      集合(set)是一个无序不重复元素的序列,使用大括号 {} 或者 set() 函数创建集合,注意:创建一个空集合必须用 set()  而不是 {} ,因为 {} 是用来创建一个空字典。
      集合不能被切片也不能被索引,除了做集合运算之外,集合元素可以被添加还有删除:

    a_set = {1,2,3,4}
    # 添加
    a_set.add(5)
    print(a_set)  # 输出{1, 2, 3, 4, 5}
    # 删除
    a_set.discard(5)
    print(a_set)  # 输出{1, 2, 3, 4}

    集合常用方法

    1、add()与update()

      s.add( x ):  将元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作

      s.update( x ):x 可以有多个,用逗号分开。x 参数可以是列表,元组,字典等

    2、remove()、discard()、pop() 、clear()


    Dictionary(字典)

      字典是一种映射类型,它的元素是键值对,字典的关键字必须为不可变类型,且不能重复。创建空字典使用 {}
      

    Logo_code = {
     'BIDU':'Baidu',
     'SINA':'Sina',
     'YOKU':'Youku'
     }
    print(Logo_code)
    # 输出{'BIDU': 'Baidu', 'YOKU': 'Youku', 'SINA': 'Sina'}
    print (Logo_code['SINA'])     # 输出键为 'one' 的值
    print (Logo_code.keys())     # 输出所有键
    print (Logo_code.values())   # 输出所有值
    print (len(Logo_code))      # 输出字段长度

    注意:
       每个键与值用冒号隔开(:),每对用逗号,每对用逗号分割,整体放在花括号中({})。
       键必须独一无二,但值则不必
       值可以取任何数据类型,但必须是不可变的,如字符串,数或元组。

     修改字典  

    dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
    
    dict['Age'] = 8; # update existing entry
    dict['School'] = "DPS School"; # Add new entry
    
    print "dict['Age']: ", dict['Age'];
    print "dict['School']: ", dict['School'];
    # 以上实例输出结果:
    # dict['Age']:  8
    # dict['School']:  DPS School

    删除字典元素
      能删单一的元素也能清空字典,清空只需一项操作。
      显示删除一个字典用del命令,如下实例:

    dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
    del dict['Name']; # 删除键是'Name'的条目 dict.clear(); # 清空词典所有条目 del dict ; # 删除词典

    1)不允许同一个键出现两次。创建时如果同一个键被赋值两次后一个值会被记住,如下实例:

    dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'};
    
    print "dict['Name']: ", dict['Name'];
    #以上实例输出结果:
    #dict['Name']:  Manni
  • 相关阅读:
    关于python urlopen 一个类似radio流的timeout方法
    Python nltk English Detection
    Python依赖打包发布详细
    python 怎么和命令行交互
    Python中多维数组flatten的技巧
    Python中的url编码问题
    python数据持久存储:pickle模块的基本使用
    Python控制台输出不换行(进度条等)
    UnicodeEncodeError: 'ascii' codec can't encode character u'xe9' in position 7: ordinal not in range(128) [duplicate]
    json.loads(s) returns error message like this: ValueError: Invalid control character at: line 1 column 33 (char 33)
  • 原文地址:https://www.cnblogs.com/m0488/p/12392556.html
Copyright © 2011-2022 走看看