• python学习笔记二 数据类型(基础篇)


    Python基础

             对于Python,一切事物都是对象,对象基于类创建

           

    不同类型的类可以创造出字符串,数字,列表这样的对象,比如"koka"、24、['北京', '上海', '深圳']

    数据类型

    1、如何查找数据类型支持的方法

    python终端:

    name=”koka“
    
    type(name)
    
    <class 'str'>

    help(str) #即可显示所有字符串支持的方法
    或者
    dir(name) #也可以显示对象中的所有特性。

    使用Pycharm:

    在py文件中输入int或str,选中输入的关键字,按住Ctrl等鼠标变成手指标识,左键单击即可到你想查找的类方法介绍

    选中int后按如下操作可以在pycharm的左侧显示int(object)的方法,方便查看


    整数

    加法:x.__add__(y) <==> x+y

    >>> x=3
    >>> y=5
    >>> x.__add__(y)
    8
    >>> x+y
    8

    abs : 求绝对值,x.__abs__() <==> abs(x) 

    >>> x=-3
    >>> abs(x)
    3
    >>> x.__abs__()
    3

    divmod:相除,得到商和余数组成的元组 x.__divmod__(y) <==> divmod(x, y) #在网页分页操作中使用。

    >>> total = 95
    >>> pager = 10
    >>> total.__divmod__(pager)
    (9, 5)
    >>> divmod(total,pager)
    (9, 5)

    字符串

    格式化字符串
    >>> name = "koka"
    >>> print("hello %s" %name)
    hello koka
    
    注:%s是字符串,%d是整数, %f是浮点数
    字段宽度和精度
    >>> '%10f' % pi  #字符宽度 10
    '  3.141593'
    >>> '%10.2f' % pi #字符宽度10,精度2
    '      3.14'
    >>> '%.2f' % pi #精度2
    '3.14'
    可以使用*作为字段宽度或者精度(或者两者都使用*),此时数值会从元组参数中读出:
    >>> '%.*s' %(5,'Guido van Rossum')
    'Guido'
    符号、对齐和0填充
    - : 左对齐
    +:在转换值之前加上正负号
    "":正数之前保留空格
    0 :转换值若位数不够用0填充
    >>> '%010.2f' % pi
    '0000003.14'
    >>> '%-10.2f' % pi
    '3.14
    字符串方法:
    find  字符串中查找子字符串
    >>> 'With a moo-moo here'.find('moo')
    7
    join   在队列中添加元素
    >>> seq = [1,2,3,4,5]
    >>> sep = '+'
    >>> sep.join(seq)
    Traceback (most recent call last):
      File "<pyshell#26>", line 1, in <module>
        sep.join(seq)
    TypeError: sequence item 0: expected str instance, int found
     
    >>> seq = ['1','2','3']
    >>> sep = '+'
    >>> sep.join(seq)
    '1+2+3'
    lower 返回小写字母
    print('Hello'.lower())
    replace 返回一个字符串中替换后的字符串
    name = 'lolo lala lola'
    print(name.replace('lolo','koka'))
    split      分割字符串成序列
    >>> '1+2+3'.split("+")
    ['1', '2', '3']
    strip      返回去除两侧空格(不包括内部)的字符串
    >>> '   hahaha   '.strip()
    'hahaha'
    translate 可以替换字符创中的某些部分,只能处理单个字符

    capitalize 首字母变大写

    >>> name = "python"
    >>> name.capitalize()
    'Python'

    in or __contain__ 包含

    >>> name = "python"
    >>> name.capitalize()
    'Python'
    >>> name.__contains__('th')
    True

    startswith 和 endswith 以xx开头或xx结尾

    >>> name = "Gumby"
    >>> name.endswith('Gumby')
    True
    >>> name = "Mr.Gumby"
    >>> name.startswith('Mr.')
    True

    ljust,center,rjust 左对齐,居中,右对齐

    >>> print(''.ljust(35,'='))
    ===================================
    >>> print("Shopping List:".center(35,"*"))
    ***********Shopping List:**********
    >>> print(''.rjust(35,'='))
    ===================================

    count 统计字符出现次数

    >>> abc = 'asdadqweqjkhwjgfawgdklawda'
    >>> abc.count('a')
    5
    >>> abc.count('a',0,5)
    2

    encode 编码

    >>> name = "下载"
    >>> result = name.encode('gbk')
    >>> print(result)
    b'xcfxc2xd4xd8'

    format 格式化字符串

    >>> s = "i am {0},age {1}"
    >>> print(s.format('Tang',18))
    i am Tang,age 18
    >>> s = 'i am {name},age {age}'
    >>> print(s.format(name="Tang",age=18))
    i am Tang,age 18

    更多字符串format的使用参考:http://blog.csdn.net/handsomekang/article/details/9183303

    列表

    >>> [0,1,2,3,4,5]
    [0, 1, 2, 3, 4, 5]
    标准操作:
    索引[*]、分片[:](含首不含尾)、+、*、in、max、min、赋值、删除元素
    >>> ['th'] * 10
    ['th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th']
     
    >>> 0 in [0,1,2,3,4,5]
    True
     
    >>> num = [0,1,2,3,4,5]
    >>> num[:]
    [0, 1, 2, 3, 4, 5]
    >>> num[0:3]
    [0, 1, 2]
    列表的方法:
    append       列表最后附加元素
    >>> lst = [1,2,3]
    >>> lst.append(4)
    >>> lst
    [1, 2, 3, 4]
    extend         列表最后追加另一个列表
    >>> a = [1,2,3]
    >>> b = [4,5,6]
    >>> a.extend(b)
    >>> a
    [1, 2, 3, 4, 5, 6]
    pop             移除列表中的一个值(默认最后),并返回元素值
    >>> a.pop()
    3
    count          统计某元素出现的次数
    >>> ['a','b','c','a'].count('a')
    2
    index          查找某个值第一个匹配项的索引位置
    products = ['Car','Iphone','Coffee','Mac','clothers','Bicyle']
    print(products.index('Mac'))
    insert          在某元素前插入值
    prices = [50000,5000,35,9888,500,1500]
    prices.insert(1,500)
    print(prices)
    [50000, 500, 5000, 35, 9888, 500, 1500]
    remove       移除某个值在列表的第一个匹配项
    >>> li = [11,22,33,44,55]
    >>> li.remove(11)
    >>> li
    [22, 33, 44, 55]
    sort            在原序列进行正向排序,意味着改变原来的列表,从而让其中的元素按顺序排列,而不是简单放回一个已排序的副本而已。
    >>> x = [1,3,5,2,6,8]
    >>> x.sort()
    >>> x
    [1, 2, 3, 5, 6, 8]
    reverse        反序改变序列,不返回值
    >>> x.reverse()
    >>> x
    [8, 6, 5, 3, 2, 1]
    reversed      反向序列并返回一个迭代器
    print(list(reversed([1,3,5,4,7])))
    [7, 4, 5, 3, 1]
    sorted         顺序排列,返回一个正向列表
    >>> y = sorted(x)
    >>> y
    [1, 2, 3, 5, 6, 8]
    列表转换为字符串
    ' '.join(list)

    元组

    元组不可以改变,元组下的元素是可以改变的。

    >>> tu.remove(11)
    Traceback (most recent call last):
      File "<pyshell#14>", line 1, in <module>
        tu.remove(11)
    AttributeError: 'tuple' object has no attribute 'remove'
    >>>
    >>> tu = (11,[22,33],"haha",44) >>> tu[1][0]=11 >>> tu (11, [11, 33], 'haha', 44)

    count 统计出现次数

    >>> tu = (11,22,33,44)
    >>> tu.count(11)
    1

    index 查找元素出现的位置

    >>> tu.index(22)
    1
    >>> tu.index(33)
    2

    字典

    {'key':'value'}
    字典的方法:
    clear 清除字典中所有的项,无返回值或返回None

    copy 返回一个具有相同键值对的新字典(这个方法实现的是浅复制,因为值本身就是相同,而不是副本。)

    >>> x ={'username':'koka','sx':['it','js',12345]}
    >>> y = x.copy()
    >>> y['username'] = 'akok'
    >>> y['sx'].remove('it')
    >>> y
    {'username': 'akok', 'sx': ['js', 12345]}
    >>> x
    {'username': 'koka', 'sx': ['js', 12345]}
    fromkeys 使用给定的键建立新的字典,每个键默认对应的值为None;可直接调用dict函数
    {}.fromkeys(['name','age'])
    {'age':'None','name':'None'}
    
    dict.fromkeys(['name','age'])
    {'age':None,'name':None}
    get 访问字典项的方法,一般来说访问字典中不存在的项时会出错。
    d={}
    print(d['name'])
    error
    print(d.get('name'))
    None
    has_key (python3.5已经没有该功能) 检查字典中是否含有给出的键。可以使用表达式k in d实现.
    data = {'name':'koka','age':18}
    if 'name' in data:
        print("in")
    else:
        print("not in")
    in
    items 和 iteritems
    items 将所有的字典项以列表方式返回。iteritems 返回一个迭代器。
    >>> database={'koka':'123','wawa':'456'}
    >>> for key,value in database.items():
        print(key,value)
    wawa 456
    koka 123
    pop用来获得对应于给定键的值,将这个键-值对从字典中移除。
    data = {'name':'koka','age':18}
    name = data.pop('name')
    print(name)
    koka
    popitem 类似与list.pop,后者会弹出列表的最后一个元素。popitem弹出随机的项,可一个接一个的移除项。

    setdefault类似于get,能够获得与给定键相关联的值,还能在字典中不含有给定键的情况下设定值。
    >>> d = {}
    >>> d.setdefault('name','N/A')
    'N/A'
    update 利用一个字典项更新另一个字典。
    data = {'name':'koka','age':18}
    adds = {'phone':10010}
    data.update(adds)
    print(data)
    {'phone': 10010, 'name': 'koka', 'age': 18}
    keys 返回字典的key值的一个视图(view),而不在是list;iterkeys返回键的迭代器
    >>> dct = {'a':1,'b':2}
    >>> print(type(dct.keys()))
    <class 'dict_keys'>
    values 返回字典的value值的一个视图(view),而不在是list;itervalues返回值得迭代器
    >>> d={}
    >>> d[1]=1
    >>> d[2]=2
    >>> d[1]=1
    >>> d.values() dict_values([1, 2])
    >>> print(type(d.values()))
    <class 'dict_values'
    格式化字典
    >>> phonebook={'tr':'1234'}
    >>> print("tr's phone number is %(tr)s." %phonebook)
    tr's phone number is 1234.
    dict函数
    通过其他映射(比如其他字典)或者(键,值)这样的序列对建立字典。
    >>> items=[('name','koka'),('age',18)]
    >>> d=dict(items)
    >>> d['name']
    'koka'

    dict函数也可以通过关键字参数来创建字典

    >>> d = dict(name='koka',age=18)
    >>> d
    {'name': 'koka', 'age': 18}

    练习:元素分类
    有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
    即: {'k1': 大于66 , 'k2': 小于66}

    a = [11,22,33,44,55,66,77,88,99]
    b = {}
    for item in a:
        if item >= 66:
            if 'k1' in b:
                b['k1'].append(item)
            else:
                b['k1'] = [item,]
        else:
            if 'k2' in b:
                b['k2'].append(item)
            else:
                b['k2'] = [item,]
    print(b)
    """
    for i in a:
        if i >=66:
            b.setdefault('k1',[]).append(i)
        else:
            b.setdefault('k2',[]).append(i)
    print(b)
    """
    """
    import collections
    values = [11, 22, 33,44,55,66,77,88,99]
    newvalues = collections.defaultdict(list)

    for i in values:
    if i >= 66:
    newvalues['k1'].append(i)
    else:
    newvalues['k2'].append(i)
    print(newvalues)
    """
  • 相关阅读:
    不用写Windows服务实现定时器功能(FluentScheduler )
    (转).NET开发人员必备的可视化调试工具(你值的拥有)
    《C#本质论》读书笔记(14)支持标准查询操作符的集合接口
    关闭 Visual Studio 2013 的 Browser Link 功能
    《C#本质论》读书笔记(12)委托和Lambda表达式
    (2)Underscore.js常用方法
    JS中级
    .NET开发工具之Excel导出公共类
    (1)Underscore.js入门
    datatable绑定comboBox显示数据[C#]
  • 原文地址:https://www.cnblogs.com/koka24/p/5118443.html
Copyright © 2020-2023  润新知