zoukankan      html  css  js  c++  java
  • python3学习笔记——数字、字符串、列表、字典、元组

    什么是python解释器?                                                                                                                                      

      python代码在解释器中运行。解释器是代码与计算机硬件之间的软件逻辑层。

    python的执行过程                                                                                                                                    

    源代码(.py文件) --> 编译 --> 字节码(.pyc文件) --> python虚拟机解释字节码-->执行

    python的主要实现方式:CPython、JPython(Java)、IronPython(Windows)

    表达式建立并处理对象-->表达式构成语句-->语句组成模块-->模块组成程序

    Python核心数据类型:                                                                                                                           
    数字
    字符串
    列表
    字典
    元组
    集合
    文件
    None、布尔型
    函数、模块、类

    一、数字                                                                                            

    1.加减乘除

    >>> 3+5
    8
    >>> 3-5
    -2
    >>> 3*5
    15
    >>> 5/3
    1.6666666666666667
    >>> 5.0/3
    1.6666666666666667
    >>> 5//3
    1
    >>> 5.0//3
    1.0
    >>> -5//3
    -2
    >>> -7//3 # 向下取舍
    -3
    >>> 23 % 10
    3
    >>> 3**2
    9

    # 进制转换

    >>> oct(88),hex(88), bin(88)
    ('0o130', '0x58', '0b1011000')
    >>> int('130',8),int('58',16),int('1011000',2)
    (88, 88, 88)

    2.内置函数

    >>> int(3.14)
    3
    >>> float(3)
    3.0

    3.内置数学模块

    >>> import math
    >>> math.pi
    3.141592653589793
    >>>import random

    二、字符串                               

    字符串的特点:
      1.字符串是单个字符的字符串序列,是有序的
      2.不可变性,不可以对原始的字符串进行改变。
    字符串操作:
    >>> s = 'hello world'
    1.计算字符串的长度

    >>> len(s)
    11


    2.索引

    >>> s[0]
    'h'
    >>> s[6]
    'w'
    >>> s[-1]
    'd'
    >>> s[-2]
    'l'

    3.切片

    >>> s[:]
    'hello world'
    >>> s[0:4]    # [a,b)
    'hell'
    >>> s[2:4]
    'll'
    >>> s[-5:-1]
    'worl'
    >>> s[-5:]
    'world'

    4.字符串拼接

    >>> s1 = 'hello '
    >>> s2 = 'world'
    >>> s1 + s2
    'hello world'

    5.字符串的方法
    5.1.字符串大小写转换

    >>> # 字符串首字符大写
    ... print("hello world".capitalize())
    Hello worldprint("hello WORLD".swapcase())
    >>> # 将字符串变为标题
    ... print("hello WORLD".title())
    Hello World
    >>> # 将字符串转为大写
    ... print("hello world".upper())
    HELLO WORLD
    >>> # 把字符串转为小写
    ... print("HELLO WORLD".lower())
    hello world
    >>> # 翻转字符串中的大小写
    ... print("hello WORLD".swapcase())
    HELLO world

    5.2.字符串分割

    >>> # 以某个元素为分割点,将字符串分为3部分,从左往右找到的第一个元素为分割点
    ... print('helloworld'.partition('o'))
    ('hell', 'o', 'world')
    >>> # 以某个元素为分割点,将字符串分为3部分,从右往左找到的第一个元素为分割点
    ... print('helloworld'.rpartition('o'))
    ('hellow', 'o', 'rld')
    >>> # 替换原字符串中的元素,默认全部替换,可以指定替换几个(从左往右数)
    ... print("hello world".replace('o', 'a', 1))
    hella world
    >>> # 以某个元素为分割点,将字符串分割,从左往右分割n次
    ... print("hello world".split('o', 1))
    ['hell', ' world']
    >>> # 以某个元素为分割点,将字符串分割,从右往左分割n次
    ... print("hello world".rsplit('o', 1))
    ['hello w', 'rld']
    >>> # 按照行('
    ', '
    ', 
    ')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。
    ... print('hello
    world'.splitlines(True))
    ['hello
    ', 'world']

    5.3.字符串中查找元素

    >>> # 统计某个字符串从索引n到y出现的次数,缺省为在整个字符串中查找
    ... print("hello world".count('o', 7, 10))
    1
    >>> # 在索引[n , y)之间查找元素,缺省为[:]返回元素的索引,如果没找到返回-1
    ... print("hello world".find('e'))
    1
    >>> print("hello world".find('o', 0, 2))
    -1
    >>> # 在[n, y)之间找元素的索引值,没找到会报错
    ... print("hello world".index('o'))
    4
    >>> print("hello world".index('e', 0, 5))
    1

    5.4.字符串判断

    >>> # 判断字符串是否以某个元素开始
    ... print('helloworld'.startswith('h'))
    True
    >>> # 判断字符串的的从[n,y)的索引之间是否以某个字符结尾,返回值为布尔值
    ... print("hello world".endswith('e', 0, 2))
    True
    >>> # 判断是否是只有数字或字母
    ... print('abc123'.isalnum())
    True
    >>> # 判断是否只含有字母
    ... print('abc'.isalpha())
    True
    >>> # 判断字母是否都是小写
    ... print("Hello".islower())
    False
    >>> # 判断字符是不是空格
    ... print(" ".isspace())
    True
    >>> # 判断是不是字符串是不是标题(单词首字母是不是大写)
    ... print("Hello World".istitle())
    True

    5.5字符串格式化

    >>> # 字符串居中,规定字符串的总长度,不够用其他字符补齐,默认是空格
    ... print("hello world".center(20, "#"))
    ####hello world#####
    >>> # 把字符串中的	替换为n个空格
    ... print("hello	world".expandtabs(tabsize=20))
    hello               world
    >>> print('#'.join("hello world"))
    h#e#l#l#o# #w#o#r#l#d
    >>> # 规定输出字符的长度,并且左对齐,不足部分用指定字符补齐
    ... print("hello world".ljust(20, "#"))
    hello world#########
    >>> # 规定输出字符的长度,并且右对齐,不足部分用指定字符补齐
    ... print("hello world".rjust(20, "#"))
    #########hello world
    >>> # 去除字符串左边的的空格
    ... print(' hello'.lstrip())
    hello
    >>> # 去除字符串右边的的空格
    ... print('hello '.rstrip())
    hello
    >>> # 去除字符串两边的的空格
    ... print(' hello '.strip())
    hello
    >>> # 指定字符串的长度,不够在前面补0
    ... print("123".zfill(5))
    00123
    >>> # 字符串的拼接
    ... print('hello ' + 'world')
    hello world
    >>> print('hello ' * 3)
    hello hello hello

     6字符串的赋值

    >>> s = 'hello world'        
    >>> print(s)
    hello world
    >>> s = "hello world"
    >>> print(s)
    hello world
    >>> s = """hello
    ... world
    ... !!!"""
    >>> print(s)
    hello
    world
    !!!
    >>> s = 'hello	world'
    >>> print(s)
    hello   world
    >>> s = r'hello	world'
    >>> print(s)           
    hello	world


    三、列 表                                                                                              
    列表的特点:
      1.任意类型的对象的位置相关的有序集合
      2.大小可变,可以修改
      3.支持任意嵌套
    1.计算列表长度

    >>> l = ['Tom','Bob',123,['boy','girl']]
    >>> len(l)
    4

    2.索引

    >>> l[-1]
    ['boy', 'girl']
    >>> l[2] 
    123
    >>> l[3][1]
    'girl'

    3.切片

    >>> l[:]
    ['Tom', 'Bob', 123, ['boy', 'girl']]
    >>> l[1:3]
    ['Bob', 123]
    >>> l[-2:-1]
    [123]
    >>> l[-2:]
    [123, ['boy', 'girl']]

    4.列表的方法

    4.1添加

    #在尾部插入一项
    >>> l = ['刘备','关羽','张飞']
    >>> l.append('诸葛亮')
    >>> l
    ['刘备', '关羽', '张飞', '诸葛亮']
    #把一个列表添加到另一个列表末尾
    >>> L1 = ['刘备','关羽','张飞'] 
    >>> L2 = ['姜维','诸葛亮'] 
    >>> L1.extend(L2) 
    >>> L1
    ['刘备', '关羽', '张飞', '姜维', '诸葛亮']
    #在指定索引位置插入元素
    >>> l
    ['刘备', '关羽', '张飞']
    >>> l.insert(1,'马超')
    >>> l
    ['刘备', '马超', '关羽', '张飞']

    4.2删除

    #删除所有元素
    >>> l.clear()
    >>> l
    []
    #根据索引删除元素并打印删除的元素
    >>> l
    ['刘备', '马超', '关羽', '张飞']
    >>> l.pop()    #无参数删除最后一个
    '张飞'
    >>> l
    ['刘备', '马超', '关羽']
    >>> l.pop(1)
    '马超'
    >>> l
    ['刘备', '关羽']
    #删除指定元素
    >>> l = ['刘备','关羽','张飞']
    >>> l.remove("关羽")
    >>> l
    ['刘备', '张飞']

    4.3拷贝

    >>> l1 = l.copy()
    >>> l1
    ['刘备', '关羽', '张飞']
    4.4查找
    #统计某个元素出现的次数
    >>> l.count('关羽') 
    1
    #查找[a,b)之间某元素的索引值
    >>> L1
    ['刘备', '关羽', '张飞', '姜维', '诸葛亮']
    >>> L1.index('关羽')
    1
    >>> L1.index('关羽',2,4)
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    ValueError: '关羽' is not in list

    4.5排序

    # 倒序
    >>> l = ['b','B','a','h'] 
    >>> l.reverse()
    >>> l
    ['h', 'a', 'B', 'b']
    # 升序
    >>> l.sort() 
    >>> l
    ['B', 'a', 'b', 'h']
    降序
    >>> l.sort(reverse = True)
    >>> l
    ['h', 'b', 'a', 'B']

    5.列表解析

    >>> row = [[1,2,3],[4,5,6],[7,8,9]] 
    >>> row
    [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
    >>> col = [i[1] for i in row ] 
    >>> col
    [2, 5, 8]
    >>> [i[1]+1 for i in row]
    [3, 6, 9]
    >>> [i[1] for i in row if i[1] % 2 == 0]
    [2, 8]

    四、字典                                                                                               

    字典的特点:
      1.通过键来存储
      2.没有固定的从左到右的顺序
      3.可以改变
    1.字典的创建

    >>> d = {'name':'Tom','job':'IT'}
    >>> d
    {'job': 'IT', 'name': 'Tom'}
    >>> d['age'] = 18
    >>> d['sex'] = 'boy'
    >>> d
    {'job': 'IT', 'sex': 'boy', 'name': 'Tom', 'age': 18}

    2.索引

    >>> d = {'name':'Tom','job':'IT'} 
    >>> d
    {'name': 'Tom', 'job': 'IT'}
    >>> d['name']
    'Tom'

    3.键的排序

    >>> d.keys()
    dict_keys(['name', 'job'])
    >>> list(d.keys())
    ['name', 'job']
    >>> Ks = list(d.keys())
    >>> Ks.sort()
    >>> for k in Ks: 
    ... print(k,'-->',d[k])
    ... 
    job --> IT
    name --> Tom

    4.判断

    >>> d
    {'name': 'Tom', 'job': 'IT'}
    # 判断一个键是否存在
    >>> 'name' in d
    True

    5.字典的方法

    5.1删除

    # 清空字典
    >>> d = {'name': 'Tom', 'job': 'IT'}
    >>> d.clear()
    >>> d
    {}
    
    #删除指定键
    >>> d.pop('sex','not find')
    'not find'
    >>> d.pop('name') 
    'Tom'
    #随机删除键值对,字典为空时报错
    >>> d.popitem()
    ('job', 'IT')
    >>> d.popitem()
    ('name', 'Tom')
    >>> 
    >>> d.popitem()
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    KeyError: 'popitem(): dictionary is empty'

    5.2拷贝

    >>> d = {'name': 'Tom', 'job': 'IT'}
    >>> D = d.copy()
    >>> D
    {'name': 'Tom', 'job': 'IT'}

    5.3创建字典

    >>> l
    ['name', 'age']
    >>> 
    >>> d={}
    >>> d.fromkeys(l,'abc')
    {'age': 'abc', 'name': 'abc'}
    # 如果键不存在添加一个,如果存在不做更改
    >>> d.setdefault('sex','boy') 
    'boy'
    >>> d
    {'job': 'IT', 'sex': 'boy', 'name': 'Tom'}
    >>> d.setdefault('sex','girl')
    'boy'
    >>> d
    {'job': 'IT', 'sex': 'boy', 'name': 'Tom'}
    #合并字典,把一个字典加到另一个字典
    >>> d1 = {'name': 'Tom', 'job': 'IT'}
    >>> d2 = {'sex':'boy'}
    >>> d1.update(d2)
    >>> d1
    {'job': 'IT', 'sex': 'boy', 'name': 'Tom'}

    5.4查找

    # 根据键查找值
    >>> d = {'name': 'Tom', 'job': 'IT'}
    >>> d.get('name')
    'Tom'
    >>> d.get('sex','not find') 
    'not find'
    5.5
    >>> d.items()
    dict_items([('job', 'IT'), ('name', 'Tom')])
    >>> for k,v in d.items(): 
    ... print(k,v)
    ... 
    job IT
    name Tom
    >>> for k in d.items(): 
    ... print(k)
    ... 
    ('job', 'IT')
    ('name', 'Tom')

    五、元组                                                                                            

    元组的特点:
      1.不可变性
      2.支持嵌套
    >>> t = (1,2)
    1.计算元组的长度

    >>> len(t)
    2

    2.元组的方法:

    >>> t.count(1)
    1
    >>> t.index(1)
    0
  • 相关阅读:
    第三周psp
    作业2
    词频统计 SPEC 20170914 1 1 1 1 1
    psp1111
    第一周大作业1
    mongodb安装操作 (2018/11/12)
    中间件 express生成项目(2018/11/10)
    express环境搭建(2018/11/09)
    后端路由(2018/11/07)
    Node模块的基本使用(2018/11/06)
  • 原文地址:https://www.cnblogs.com/gaoyuanzhi/p/8366998.html
Copyright © 2011-2022 走看看