zoukankan      html  css  js  c++  java
  • 6、for循环补充、可变类型与不可变类型、基本操作

    一、for循环的补充

      for+range

      for i in range(10,3,-1)(从第十位倒取到第四位)

      print(i)

      for+enumerate

      

    for i,name in enumerate(["egon","tom","jack"]):  

    # [(0,"egon"),(1,"tom"),(2,"jack")] print(i,name)

      对于列表可取值为(索引  值)也可以用与字典,取值为(索引,key)

    二、不可变类型与可变类型

      不可变类型:值改变,id也改变,证明是产生了新值,原值是不可变类型

      可变类型:值发生改变,但是id不变,证明就是在改变原值,原始是可变类型

      

    l = [111,222,333]
    print(id(l))
    l[0] = 6666666   #将111改为6666666
    print(id(l))

      

    三、数字类型int与float

      1、定义:

      整型int的定义:

      age=10(本质age=int(10))

      浮点型float的定义:

      salary=3000.3(本质salary=float(3000.3))

      注意:名字+括号的意思是调用某个功能,比如

      print(...)调用的是打印功能

      int(...)调用的是创建整型数据的功能

      float(...)调用的是创建浮点型数据的功能

      2、类型转换

      1、数据类型的转换

      1.1  int可以将由纯整数构成的字符串直接转换成整型,若包换其他任意非整数符号,则会报错

      s=‘123’

      res=int(s)

      print(type(res))

      1.2进制转换

      十进制转换成其他进制

      bin(3)转换为二进制

      oct(9)转换为八进制

      hex(17)转换为十六进制

      其他进制转换成十进制

      例:int(‘0b11’,2)二进制转十进制3

      1.3float同样可以用来做数据类型的转换

      同int,例:s=‘12.3’

           res=float(s)

           print(type(res))

      int与float类型常用操作+内置的方法都为数学运算+比较运算

      两者都表示存一个值,是不可变的

    四、字符串

      1、定义:在单引号,双引号,三引号内包含一串字符

      name1 = ‘jason’  本质:name=str('任意形式内容')

      name2= “lili”  本质:name=str(“任意形式内容”)

      name3= """ricky"""  本质:name=str("""任意形式内容""")

      2、类型转换

      数据类型转换:str()可以将任意数据类型转换成字符串类型,例如

      

     type(str([1,2,3])) # list->str
    <class 'str'>
     type(str({"name":"jason","age":18})) # dict->str
    <class 'str'>
     type(str((1,2,3)))  # tuple->str
    <class 'str'>
     type(str({1,2,3,4})) # set->str
    <class 'str'>

      补充内容:

      print(“abc ddd”)表示换行打印

      print(r“abc ddd”)值前面加r类似于EXCEL中将后面的单元格设置为文本格式,打印不换行

      print (“abc\nddd”)

      3、使用

      1、按照索引取值(正向取与反向取)

      str1 = ’hello python‘

      1.1正向取值(从左往右)

        str1[6]

        p

      1.2反向取(负号表示从右往左)

        str1[-4]

        h

      1.3对于str来说,只能按照索引取值,不能更改

      str1[0]=’H‘报错typeerror

      2、切片(顾头不顾尾,步长)

      2.1顾头不顾尾:取出索引为0到8的所有字符

      str1[0:9]

      hello pyt

      2.2步长:0:9:2,第三个参数2代表步长,会从0开始,每次累加一个2即可,所以会取出索引为0、2、4、6、8

      str1[0:9:2]

      hlopt

      2.3反向切片

      str[::-1]

      3、长度len

      msg = ‘’hello world‘’

      print(len(msg))

      4、成员运算in和not in

      msg = ‘’hello world‘’

      print(“he”in msg)判断  he  是不是在hello world中

      print(‘’he‘’ not in msg)  推荐!

      print(not ‘’he‘’ in msg)一样的结果,不简洁明了

      5、移除空白strip

      msg = ‘’     hello     ‘’

      res = msg.strip() 

      拓展:

      msg = “”******hello****“

      print(msg.strip(‘*’))移除的可以为多种符号,只要在引号里面标记

      更加复杂的:

      msg = ”+-*/hello world+-*/“

      print(msg.strip("+-*/"))

      6、切分split

      msg = ‘’egon:123:3000‘’按照有规律的字符串,取出egon的方式

      方式一:print(msg[0:4]

      方式二:res= msg.split(":",1)按照引号切切1次

      7、循环

      for x in msg :

      print(x)

    五、重要的操作(*****)

      1、strip,lstrip,rstrip(用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列)

       例:msg = ‘’****hello*****‘’

        print(msg.strip(''*''))  去除*

        print(msg.lstrip((''*'')))  去除左边的*

        print(msg.rstrip(''*''))  去除右边的*

      2、lower,upper(更改大小写)

      msg = print(msg.lower())全部改为小写

      msg = print(msg.upper)全部改写为大写

      3、startswith,endswith(检查字符串是否是以指定子字符串开头/结尾,如果是则返回 True,否则返回 False)

      msg = ''egon is ok''

      print(msg.startswith(''egon''))  True

      print(msg.endswith('''ok''))  True

      4、format的三种玩法

      1)msg = 'my name is %s my age is %s'%(''egon'',18)这种方式是以%s的方式将括号例的值赋值进去

        msg = my name is {name} my age is {age}.format(name="egon",age=18) 这种方式是将变量名放到花括号中,通过.format给变量名赋值

      2)msg = "my name is {1} my age is {0}".format(18,"egon") 这是花括号通过索引来赋值

      补充:

        msg = "my name is {name} my age is {age}".format(**{"age":18,"name":"egon"})
        msg = "my name is %(name)s my age is %(age)s" % {"age":18,"name":"egon"}

        这两种方法输出结果等同,当后面为列表时,想要通过Key赋值的话,需要在列表前加**,第二种是通过%()s的方式进行传值

      3)name = ''egon''

        age = 18

        print(f''my name is {name} my age is {age}'')  这种方法通过f,然后将前两个变量值赋值给花括号的变量名中

      5、split,rsplit(通过指定分隔符对字符串进行切片)  

      msg = "egon:18:3000"
      print(msg.split(":",1))  这种切的方式为,从左往右以:为切点,切1次
      print(msg.rsplit(":",1))  这种切的方式为,从右往左以:为切点,切1次

      6、join(将序列中的元素以指定的字符连接生成一个新的字符串)

      l=["egon","18","3000"]

      print(":".join(l))

      输出结果为:egon:18:3000

      7、replace(把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次) 

      msg = 'egon xxxx egon yyy egon'
      print(msg.replace('egon',"EGON",2))最后一个2是替换次数
      print(msg.replace('egon',"EGON"))
    
      拓展: msg = "**_+_***he llo***+-**"
          print(msg.strip("*_+-").replace(" ",''))
          先用strip将左右的多余符号去掉,再用replace将空格去掉

      8、isdigit(判断字符串是否为数字组成)

      案例:

     num = input(">>>: ")  # num = "asfasdf"
     if num.isdigit():
         num = int(num)
         print(num > 10)
     else:
         print("必须输入数字,小垃圾")

    六、列表的基本使用

      1、用途:按照位置存放多个任意类型的值

      2、定义方式:在[]内用逗号分隔开多个任意类型的值

      list数据类型转换:把可迭代的类型转换成列表,可以被for循环遍历的类型都是可迭代的

      3、常用操作+内置方法

      1)按照索引存取值(正向存取+反向存取):即可存也可取

      

    l=[111,222,333]
    print(id(l))
    l[0]=666
    print(l)
    print(id(l))
    
    l=[111,222,333]
    l[0]=666
    l[3]=777  # 列表索引不能超出范围
    l[3]  # 列表索引不能超出范围

      2)切片(顾头不顾尾,步长)

       

    l=[11,22,33,44,55,66,77,88,99]
    res=l[1:7:2]
    res=l[:]
    res=l[::-1]
    print(res)

      3)长度

      print(len([''aaa'',11,2222]))    这个列表长度为3

      4)成员运算in和not  in

      print(111 in [’‘aaa’‘,111,222]))    判断111是否在这个列表中

      5)追加与插入

      在列表的尾部追加

    l=[111,222,333,]
    l.append(444)
    l.append(555)
    print(l)

      在列表的任意一个地方插入

        

    l=[111,222,333]
    l.insert(1,6666)
    print(l)
    
    l=[111,222,333]
    res = l.append(444)
    res = l.insert(1,444)
    print(res)#==》输出结果为none,没有反馈

      6)删除

        l=[111,222,333]

        a、万能删除del

        del   l[0]
        print(l)None

        b、l.remove(指定元素)

         

     res=l.remove(222)
     print(l)
     print(res)  #None

        

        c、l.pop(指定索引)

     res=l.pop(1)
     print(l)
     print(res)#有反馈

      7)循环

       

    l=[111,222,333]
    for x in l:
        print(x)

      

  • 相关阅读:
    oracle数据库
    Filter过滤器
    Json
    监听器
    Ajax
    2018年5月14日java
    EL表达式&JSTL
    JSP
    2018年5月9日JAVA-servlet02
    如何解决写脚手架过程中遇到请求github的项目接口中出现API rate limit exceeded for的问题。
  • 原文地址:https://www.cnblogs.com/zhaokunhao/p/14173125.html
Copyright © 2011-2022 走看看