• Day04


    一、int,str,bool三种基本类型的转换:

             int ------str: 转换方法直接是str()就行

    代码演示:

    1 a = 909090
    2 a1 = str(a)
    3 print(a1)
    4 print(type(a1))

    运行结果:

    D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
    909090
    <class 'str'>

            str -------int: 转换方法直接是int()就行

    代码演示:

    1 a = '我来自湖北省武汉市黄陂区'
    2 b = '10000'
    3 a1 = int(a)
    4 #b1 = int(b)
    5 print(a1)
    6 #print(b1)

    运行结果:

    1 Traceback (most recent call last):
    2   File "D:/学习资料/项目/练习/lianxi.py", line 3, in <module>
    3     a1 = int(a)
    4 ValueError: invalid literal for int() with base 10: '我来自湖北省武汉市黄陂区'

    报错的原因在于,文字字符串不能转换成为数字,因为代码解释会有一定的问题。

    只有数字字符串才能转换成为数字

    代码演示:

    1 a = '我来自湖北省武汉市黄陂区'
    2 b = '10000'
    3 #a1 = int(a)
    4 b1 = int(b)
    5 #print(a1)
    6 print(b1)

    运行结果:

    D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
    10000
    
    进程已结束,退出代码0

    直接很成功的就转换成为了数字。

           str ----------bool:也是直接bool()就行

    代码演示:

    1 a = ''
    2 a1 = ' '
    3 a2 = '我来自湖北省武汉市黄陂区罗汉寺街道'
    4 b = bool(a)
    5 b1 = bool(a1)
    6 b2 = bool(a2)
    7 print(b)
    8 print(b1)
    9 print(b2)

    运行结果:

    1 D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
    2 False
    3 True
    4 True
    5 
    6 进程已结束,退出代码0

    通过上述实验得知,在python中 str 类型转换成 bool 类型只要是空字符串就是False,只要字符串中有内容,哪怕是空格,bool返回的也是Ture.所以也还是比较简单的。

                int --------bool: 

    代码演示:

     1 a = 1
     2 a1 = 0
     3 a2 = -1
     4 a3 = 1.1
     5 b = bool(a)
     6 b1 = bool(a1)
     7 b2 = bool(a2)
     8 b3 = bool(a3)
     9 print(b)
    10 print(b1)
    11 print(b2)
    12 print(b3)

    运行结果:

    D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
    True
    False
    True
    True
    
    进程已结束,退出代码0

    与字符串转换成 bool类型类似,int 类型转换成 bool除了0以外的数全部都是TURE,无论是整数,复数,还是小数。只有0转换成 bool是false

                       bool ----------int:

    代码演示:

    1 a = True
    2 a1 = False
    3 b = int(a)
    4 b1 = int(a1)
    5 print(b)
    6 print(b1)

    运行结果:

    1 D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
    2 1
    3 0
    4 
    5 进程已结束,退出代码0

    bool类型的 ture,false 分别对应 int 里面的 1和0

    二、列表的操作方法:

    列表是python中特有的存在一般用 [a1,a2,a3] 中括号括起来进行表示列表

         列表的操作方法

                   增加:

    (append),增加到末尾:

    代码演示:

    1 #增加 append
    2 '''
    3  def append(self, *args, **kwargs): # real signature unknown
    4         """ Append object to the end of the list. """
    5 '''
    6 li = [1,2,3,'胡澳'] 7 li.append(56) 8 print(li)

    运行结果:

    1 D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
    2 [1, 2, 3, '胡澳', 56]
    3 
    4 进程已结束,退出代码0

    append和它方法的解释一样,只能添加在列表的最后面。并不能够随心所欲的增加数据

    (insert)按照索引进行增加:

    代码演示:

    1 #增加 append
    2 '''
    3 def insert(self, *args, **kwargs): # real signature unknown
    4         """ Insert object before index. """
    5         pass
    6 '''
    7 li = [1,2,3,'胡澳']
    8 li.insert(1,'huao')
    9 print(li)

    运行结果:

    1 D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
    2 [1, 'huao', 2, 3, '胡澳']
    3 
    4 进程已结束,退出代码0

    insert 是可以根据索引进行插入的,可以想在那个地方插入数据就在那个地方插入数据

    extend增加的是迭代对象里面的元素

    代码演示01:

     1 #增加 append
     2 '''
     3 def extend(self, *args, **kwargs): # real signature unknown
     4         """ Extend list by appending elements from the iterable. """
     5         pass
     6 '''
     7 li = [1,2,3,'胡澳']
     8 li.extend('青柠辄酒')
     9 #li.extend(123)
    10 print(li)

    运行结果01:

    1 D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
    2 [1, 2, 3, '胡澳', '', '', '', '']
    3 
    4 进程已结束,退出代码0

    代码演示02:

     1 #增加 append
     2 '''
     3 def extend(self, *args, **kwargs): # real signature unknown
     4         """ Extend list by appending elements from the iterable. """
     5         pass
     6 '''
     7 li = [1,2,3,'胡澳']
     8 #li.extend('青柠辄酒')
     9 li.extend(123)
    10 print(li)

    运行结果02:

    D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
    Traceback (most recent call last):
      File "D:/学习资料/项目/练习/lianxi.py", line 9, in <module>
        li.extend(123)
    TypeError: 'int' object is not iterable
    
    进程已结束,退出代码1

    由两次的结果进行比对发现:在添加123时报错了。根据对 extend方法的解释发现,列表添加的是 iterable(可迭代对象) ,并将可迭代对象中的元素依次添加进入列表中。

    在这里补充一下什么是可迭代对象:

    一般简单的理解就是可以用 for 循环的对象就是迭代对象 ,常见的可迭代对象有(字符串,字典,列表,元组,生成器等)

    先来理解一下迭代的意思:

    迭代指的就是:每一次对过程的重复成为一次迭代,每一次迭代的结果成为下一次迭代的初始值。

    所以迭代对象就是能够进行迭代的对象。

                       删除:

    pop按照索引进行删除,有返回值,返回的是被删除的元素:

    代码演示:

    1 #删除:
    def pop(self, *args, **kwargs): # real signature unknown
    """
    Remove and return item at index (default last).

    Raises IndexError if list is empty or index is out of range.
    """
    pass

    2 li = [1,2,3,4,7,8,'胡澳'] 3 l1 = li.pop(2) 4 l2 = li.pop() 5 #l3 = li.pop(12) 6 print(l1,li) 7 print(l2) 8 #print(l3)

    运行结果:

    D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
    3 [1, 2, 4, 7, 8]
    胡澳
    
    进程已结束,退出代码0

    分析:

    代码第三行 l1 接受的是删除返回的元素 3

    代码第四行 l2 中没有索引的时候,直接默认删除列表最后一个

    超过索引的时候会直接报错。

    remove 按照值进行删除,无返回值:

    代码演示:

     1 #删除:
     2 '''
     3 def remove(self, *args, **kwargs): # real signature unknown
     4         """
     5         Remove first occurrence of value.
     6 
     7         Raises ValueError if the value is not present.
     8         """
     9         pass
    10 '''
    11 li = [1,2,3,4,7,8,'胡澳']
    12 li.remove(4)

    运行结果:

    D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
    [1, 2, 3, 7, 8, '胡澳']
    
    进程已结束,退出代码0

    分析:remove没有返回值,删除的直接是值。如果在列表中没有找到被删除的值,则会直接报错。

    clear 一次性全部清空:

    代码演示:

    1 #删除:
    2 '''
    3 def clear(self, *args, **kwargs): # real signature unknown
    4         """ Remove all items from list. """
    5         pass
    6 '''
    7 li = [1,2,3,4,7,8,'胡澳']
    8 li.clear()
    9 print(li)

    运行结果:

    D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
    []
    
    进程已结束,退出代码0

    del  切片进行删除:

    代码演示:

    1 li = [1,2,3,4,'胡澳']
    2 del li[0:3]
    3 print(li)

    运行结果:

    D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
    [4, '胡澳']
    
    进程已结束,退出代码0

    切片的方法和字符串切片的方法一样。

               改:

    代码演示:

    1 li = [1,2,3,4,'胡澳']
    2 li[0] = '湖北省武汉市'
    3 li[0:3] = ['二哥','贤语哥',12,5,6,23,6,78]
    4 print(li)

    运行结果:

    D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
    ['二哥', '贤语哥', 12, 5, 6, 23, 6, 78, 4, '胡澳']
    
    进程已结束,退出代码0

    分析:修改列表中的元素,单个修改如第二行所示直接进行替换就行。

               也可以使用切片进行修改如第3行所示:切片进行修改的特点就是只要指定了区间,无论后面列表里面跟着有多少的元素都能够塞进去。就像3行,选取了前面[0:3]的位置,只有三个元素的位置,但是还是把它所有的元素都给塞进去了。

                 查:

    代码演示:

    1 li = [1,2,3,4,'胡澳']
    2 for i in li:
    3     print(i,end=' ')
    4 print()
    5 print(li[0:3])

    运行结果:

    1 D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
    2 1 2 3 4 胡澳 
    3 [1, 2, 3]
    4 
    5 进程已结束,退出代码0

    分析:列表查看的方法一般就两种,使用for循环进行循环打印,使用切片进行输出。

     常见的公共方法(len,index,count):

    代码演示:

     1 '''
     2 # 判断迭代对象的长度
     3 def len(*args, **kwargs): # real signature unknown
     4     """ Return the number of items in a container. """
     5     pass
     6 # 返回容器中的项数
     7 '''
     8 
     9 li = [1,2,3,4,'胡澳','胡澳',4,4,4]
    10 a = len(li)
    11 print(a)
    12 
    13 '''
    14 def count(self, *args, **kwargs): # real signature unknown
    15         """ Return number of occurrences of value. """
    16         pass
    17 一般是用来返回值出现的次数
    18 '''
    19 b = li.count(4)
    20 print(b)
    21 
    22 '''
    23 def index(self, *args, **kwargs): # real signature unknown
    24         """
    25         Return first index of value.
    26 
    27         Raises ValueError if the value is not present.
    28         """
    29         pass
    30 #一般是返回第一个值得索引,是什么意思呢!比如列表中可能有很多个4,但是返回得索引值是第一个4得索引值 31 ''' 32 print(li.index(4))

    运行结果:

    1 D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
    2 9
    3 4
    4 3
    5 
    6 进程已结束,退出代码0

     排序:

    代码演示:

     1 li = [1,4,5,6,3,2,7]
     2 
     3 #正序排序
     4 #li.sort()
     5 #print(li)
     6 
     7 #反序排序
     8 #li.sort(reverse=True)
     9 #print(li)
    10 
    11 #反转
    12 li.reverse()
    13 print(li)

    运行结果:

    1 D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
    2 [7, 2, 3, 6, 5, 4, 1]
    3 
    4 进程已结束,退出代码0

    分析:sort()中的 reverse(颠倒) 是默认的False 所以是正序进行排序。当时Ture的时候,就进行逆序排序。 调用reverse()函数的时候,是将列表进行反转,将最后面的元素放回最前面去。所以注意反转和反序排序不是同一个事情。

     列表的嵌套:

    代码演示:

     1 li = [[1,2,3,4],'hua','aa胡澳',['江湖混子','青柠辄酒']]
     2 #将江湖混子替换成胡澳
     3 li[3][0] = li[3][0].replace('江湖混子','胡澳')
     4 #print(li)
     5 
     6 #将hua中的首大写
     7 li[1] = li[1].capitalize()
     8 #print(li)
     9 
    10 #删除[1,2,3,4]中的3,4
    11 li[0].remove(3)
    12 print(li)

    运行结果:

    D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
    [[1, 2, 4], 'Hua', 'aa胡澳', ['胡澳', '青柠辄酒']]
    
    进程已结束,退出代码0

    分析:列表的嵌套就是列表里面的元素是列表,也就是列表里面嵌套着列表。例如 1行的 li 列表就是。列表里面的元素取出来后可以按照原来的方式进行操作,如果是列表就按照列表的方式进行操作,如果是字符串就可以按照字符串的方式进行操作。取出来之后就完全独立于原来的列表了。

    元组:

    元组在python中不同于列表,字典,字符串等可以进行修改的迭代对象,元组只能进行读取,不能进行修改。它可以进行循环查询,可以像列表一样进行切片。

    但是元组虽然不能够进行修改,但是元组里面的部分元素却可以进行修改。例如([1,2,3],'胡澳','湖北省武汉市') 里面的列表和字符串却可以进行修改。

    代码演示:

     1 tu = ['胡澳', 3, 4, [1, 2, 3, 4], "湖北省武汉市黄陂区"]
     2 #循环查询:
     3 for i in tu :
     4     print(i)
     5 
     6 print("="*20)
     7 
     8 #切片输出:
     9 print(tu[0:3])
    10 
    11 print("="*20)
    12 
    13 #对元素进行修改,例如在列表后面添加20
    14 tu[3].append('20')
    15 print(tu)

    运行结果:

    D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
    胡澳
    3
    4
    [1, 2, 3, 4]
    湖北省武汉市黄陂区
    ====================
    ['胡澳', 3, 4]
    ====================
    ['胡澳', 3, 4, [1, 2, 3, 4, '20'], '湖北省武汉市黄陂区']
    
    进程已结束,退出代码0

    list ----------str的转换:

    list类型转换成为str的时候使用 join 就能行。这是最基本的。

    join 的基本用法

    join方法的描述  连接任意数量的字符串,方法被调用的字符串被插入到每个给定字符串之间 ,结果作为新字符串返回。

    代码演示:

     1 '''
     2 def join(self, ab=None, pq=None, rs=None): # real signature unknown; restored from __doc__
     3         """
     4         Concatenate any number of strings.
     5 
     6         The string whose method is called is inserted in between each given string.
     7         The result is returned as a new string.
     8 
     9         Example: '.'.join(['ab', 'pq', 'rs']) -> 'ab.pq.rs'
    10         """
    11         pass
    12 
    13 '''
    14 s2 = "湖北省武汉市黄陂区"
    15 s1 = ' '.join(s2)
    16 print(s1)

    运行结果:

    D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
    湖 北 省 武 汉 市 黄 陂 区
    湖 北 省

     list 类型转换成为 str

    代码演示:

    1 li = ['','','']
    2 l1 = ' '.join(li)
    3 print(l1)
    4 print(type(l1))
    5 print(type(li))

    运行结果:

    湖 北 省
    <class 'str'>
    <class 'list'>

    可以看到的就是,li 的类型已经发生了变化,由原来的 list  类型转换成为了 str 类型

    str ------- list 的转化(split):

    代码演示:

    1 st = '湖 北 省武 汉市黄陂区'
    2 s1 = st.split(" ")
    3 print(s1)
    4 print(type(st))
    5 print(type(s1))

    运行结果:

    D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
    ['', '', '省武', '汉市黄陂区']
    <class 'str'>
    <class 'list'>

    直接使用 split 进行切片就行。能偶将 str  类型转换成为 list  类型

     range 详解:

    range 函数是用来专门给迭代对象进行迭代的函数。

    具体用法如下:

    代码演示:

    #标准正序输出步长
    for i in range(0,10):
        print(i,end = ' ')
    print()
    
    #输出奇数,将步长转换成为2就行
    for i in range(1,10,2):
        print(i,end = ' ')
    print()
    #倒叙输出
    for i in range(10,0,-1):
        print(i,end = ' ')
    print()
    
    for i in range(10):
        print(i,end=' ')
    print()
    
    for i in range(10,-1,-2):
        print(i, end=' ')
    print()

    运行结果:

    D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
    0 1 2 3 4 5 6 7 8 9 
    1 3 5 7 9 
    10 9 8 7 6 5 4 3 2 1 
    0 1 2 3 4 5 6 7 8 9 
    10 8 6 4 2 0 
    
    进程已结束,退出代码0

    上面的程序演示了 range  函数的正序,倒叙,有步长,无步长等等一些列的操作。其实,这些操作和字符串的切片基本上是一样的使用方法。

    yunxing 

    本文来自博客园,作者:江湖混子,转载请注明原文链接:https://www.cnblogs.com/huao990928/p/11620014.html

  • 相关阅读:
    清北学堂 清北-Day1-R1-Count
    清北学堂 清北-Day1-R2-监听monitor
    LuoGu P2420 让我们异或吧
    Milk(sort+结构体)
    开门人和关门人(结构体+sort)
    python-神奇的下划线
    python-pathlib
    python-文本字符串
    python-闭包
    进制-Iterative-进制转换
  • 原文地址:https://www.cnblogs.com/huao990928/p/11620014.html
Copyright © 2020-2023  润新知