美文网首页
03-字符串,列表,元组 & 字典

03-字符串,列表,元组 & 字典

作者: 痞子_4ae7 | 来源:发表于2020-05-14 11:45 被阅读0次

    字符串

    用来存储用户名、密码的数据

    • 字符串格式:
      • 双引号或者单引号中的数据,就是字符串
        name='chenduxiu' 
        #或者
        name="zhendexiu"
    
    • 字符串输出
      • 格式控制符 "%s"
        -例:
        name=”xiaoming“
        profession ='学生'
        address="海淀区神州科技园B座2层"
        print '-'*40
        print("姓名:%s"%name)
        print("职业:%s"%position)
        print ("地址:%s"%address)
        print ('-'*40)
    
    • 字符串输入
    输入的内容 = input("需要输入的内容")
    例:通过键盘输入用户名密码
    注意:python2的输入为 raw_input()
    
    • 下标和切片
      • 下标索引:就是指的编号,类似超市储物柜的编号,通过编号就能找到对应的东西
        #例如:
        name="xiaoming"
        aaa=0
        count = len(name)
        while aaa < count:
            print(name[aaa])
            aaa+=1
    
    • 切片
      • 字符串,列表,元组都支持切片操作
      • 语法
        [起始:结束:步长]  区间位置:左闭右开
    
    • 例:
        name=‘xiaoming’
        print(name[0:2])
        打印结果   "xi"
        name='0123456789'
        print(name[0:2])
        #从第二个取到最后
        print(name[2:])
        #从头开始取,直到索引值为3的位置(不包括该元素)
        print(name[:3])
        #从索引值为2的位置开始取,直到倒数第一个(不包括倒数第一个)
        print(name[2:-1])
        #从头开始取,每两个切出一个
        print(name[0::2])
        #倒序的内容输出
        print(name[::-1])
        #倒序切出索引5到索引值1中间的数据
        print(name[5:0:-1])
    
    • 字符串常见操作

      • find/rfind
      #检查str是否包含在str1中,如果是返回开始的索引值,否则返回-1
      str1.find()
      str1="good good study,day day up"
      index = str1.find("stu")
      print(index)
      
      • index/rindex
      跟find()方法一样,只不过目标字符串如果不在要查找的字符串中会报一个异常
      
      • count
      返回str在目标字符串中start-end之间出现的次数
      str1="good good study,day day up"
      print(str1.count("good"))
      
      • replace
      把str1中指定的字符串"good",用“222”进行替换,最多替换2次    
      str1="good good study,day day up"
      print(str1.count("good"))
      str2 = str1.replace("good","222",2)
      print(str2)
      
      • split
      以" "为分割符切片str1
      str1="good good study,day day up"
      array = str1.split(" ")
      print(type(array))
      print(array)
      
      • capitalize
      把字符串的第一个字符大写
      print(str1.capitalize())
      
      • title
      把字符串中的每一个单词的首字母大写
      print(str1.title())
      
      • startswith
      检查字符串是否以指定字符串开头,
      是则返回True,否则返回False
      例:判断是否为有效网址
      
      • endswith
      检查字符串是否以指定字符串结尾,是则返回True,否则返回False  
      例:判断是否为有效邮箱
      
      • lower
      转换字符串中所有的大写字符为小写
      
      • upper
      转换字符串中所有的小写字符为大写
      
      • ljust
      返回一个原字符串左对齐,并使用空格填充至长度width的新字符
      
      
      str1 = "hello"
      print(str1.ljust(10))
      
      • rjust
      返回一个原字符串右对齐,并使用空格填充至长度width的新字符
      
      str1 = "hello"
      print(str1.rjust(10))
      
      • center
      返回一个原字符串居中对齐,并使用空格填充至长度width的新字符
      str1 = "hello"
      print(str1.center(10))
      
      • lstrip
      删除目标字符串左边的空格
      str1 ="    hello    "
      print(str1.lstrip())
      
      • rstrip
      删除目标字符串右边的空格
      str1 ="    hello    "
      print(str1.rstrip())
      
      • strip
      删除目标字符串两边的空格
      str1 ="    hello    "
      print(str1.strip())
      
      • rfind
      类似于find()函数,不过是从右边开始查找
      
      • rindex
      类似与index()函数,不过是从右边开始查找
      
      • partition
      把目标字符串分割成str前,str以及str后三部分,得到一个tuple(元组)
      str1="nihaoma"
       str1.partition("hao")
       ('ni', 'hao', 'ma')
      
      • rpartition
      从右边开始,把目标字符串分割成str前,str以及str后三部分,得到一个tuple(元组)
      str1="nihaoma"
       str1.rpartition("hao")
       ('ni', 'hao', 'ma')
      
      • splitlines
      将目标字符串按照行进行分割,返回一个列表
      str1 = "Hello\nWorld"
      print(str1.splitlines())
      运行结果:
      ['Hello', 'World']
      
      • isalpha
      判断目标字符串中是否所有的字符都为字母,返回True,或者False
      str1 = "123Hello"
      print(str1.isalpha())
      
      • isdigit
      判断目标字符串中是否所有的字符都为数字,返回True或者False
      str1 = "123Hello"
      print(str1.isdigit())
      
      • isalnum
      如果字符串中都是字母或者数字则返回True,否则返回False
      str1="abc123"
      print(str1.isalnum())
      
      • isspace
      如果字符串中只包含空格,则返回True,否则返回False
      
      • join
      将字符串或者列表,元组中的每个元素(字符)使用指定字符连接起来
      li=["one","two","three"]
      str2="_"
      str2 = str2.join(li)
      print(str2)
      

    列表介绍

    • 引入:

      • 如何存储班级中所有同学的名字?
    • 语法格式:

    names=["李大钊","陈独秀","蔡元培","陈佩斯"]
    #注意:比C语言中的数组功能更强大,列表中的元素可以为不同类型
    list1=[10,"人",2.5,True]
    
    • 访问列表中的元素

      • 设置值
      list1[0] = 100
      
      • 获取值
      print(list[0])
      
    • 列表的循环遍历

      • 使用for循环进行遍历
      #例:
      list1=[10,"人",2.5,True]
      for a in  list1:
          print(a)
      
      • 使用while循环进行遍历
      list1=[10,"人",2.5,True]
      length = len(list1)
      i = 0
      while i < length:
              print(list1[i])
              i += 1
      
    • 列表的常见操作

        • append
        #通过append向指定列表添加元素
        #例:
        list2 =["one",2,"san"]
        list2.append("four")
        print(list2)
        #结果:['one', 2, 'san', 'four']
        
        • extend
        #通过extend可以将一个列表中的元素逐个添加到另外一个列表中
        #例:
        l1=[1,2]
        l2=[3,4]
        l1.extend(l2)
        print(l1)
        #结果:[1, 2, 3, 4]
        
        • insert
        #insert(index,object)在指定的位置处插入元素object
        l1=[1,2]
        l2=[3,4]
        l1.insert(1,l2)
        print(l1)
        #结果:[1, [3, 4], 2]
        
        • in
        如果存在,则返回True,否则返回False
        l1 =[1,2,3,4,5]
        print( 1 in  l1)
        
        • not in
        与in相反
        l1 =[1,2,3,4,5]
        print(1 not  in l1)
        
        • index
        返回元素在列表中的索引值
        index(obj)
        index(obj,fromIndex,toIndex)   区间位置为前闭后开
        如果没有列表中不包含查找元素,会报错
        
        • count
        #返回元素在列表中出现的次数
        list1 = [1,2,3]
        print(list1.count(1))
        
        • del
        #根据下标进行删除
        #例:
        l1 = [2,3,4]
        del  l1[0]
        print(l1)
        #结果:[3,4]
        
        • pop
        #删除最后一个元素
        #例:
        l1 = [2,3,4]
        l1.pop()
        print(l1)
        #结果:[2,3]
        
        • remove
        #根据元素的值进行删除
        l1 = [2,3,4]
        l1.remove(2)
        print(l1)
        #结果:[3,4]
        
      直接通过下标来修改元素
      例:  
      l1=[1,2]
      l1[0] = 100
      print(l1)
      结果:[100,2]
      
      • 排序以及列表反转
      #sort方法将list按特定顺序进行排列,默认为由小到大,参数reverse=True可改为倒序,由大到小
      #例:
      l1 = [2,4,1,9,23]
      l1.sort()
      print(l1)
      #结果:[1,2,4,9,23]
      l1.sort(reverse=True)
      print(l1)
      #结果为:[23,9,4,2,1]
      #反转方法: reverse()
      

    列表的嵌套

    • 概念
    一个列表中的元素,又是一个列表
    
    • 嵌套列表的遍历
    l1=[[1,2],4,[5,6]]
    for l in l1:
        if type(l) == list:
            for ll in l:
                print(ll)
        else:
            print(l)
        print("-"*10)
    
    # 结果为:
    1
    2
    ----------
    3
    ----------
    4
    5
    ----------
    
    • 练习
      循环录入3个学生信息(包括name,age)
      使用嵌套列表完成学生信息的存储
    class Student:
    
        def __init__(self, name, age):
            self.name = name
            self.age = age
    
        def get_stu(self):
            stu_list = [self.name, self.age]
            # print(stu_list)
            return stu_list
    
    
    def save_students():
        students = []
        while True:
            name = input('姓名:')
            if name == 'q':
                break
            age_str = input('年龄:')
            while True:
                if age_str.isdigit() and 0 < int(age_str) < 130:
                    age = int(age_str)
                    break
                else:
                    age_str = input('您输入的年龄超出范围,请重新输入:')
            stu_obj = Student(name, age)
            stu = stu_obj.get_stu()
            students.append(stu)
        print(students)
    
    
    if __name__ == '__main__':
        save_students()
    
    
    

    元组

    • 元组概念
    Python的元组与列表类似,不同之处在于元组的元素不能修改,元组使用“()”
    列表使用"[]"
    
    • 操作

      • 访问
      t=(1,2,3)
      print(t[0])
      修改或者删除元素的话会报错:
      t[0]= 10
      删除报错:
      t.pop()
      但是可以变向进行删除
      tuple->list(进行删除操作)->tuple
      

    字典介绍

    • 字典的引入
    #如何存储将多个国家的简称及名字完成对应的存储?
    #例如:   CN:中国    JP:日本       US:美国
    country = {"CN":"中国","JP":"日本"}
    
    • 字典中元素的访问:

      • 直接访问
      print(country['CN'])
      打印结果:"中国"
      如果没有"CN"这个key,则会报错
      
      • 通过get方法访问
      value=country.get('CN')
      #这时候value的值为 "中国"
      value = country.get('SH','中国')
      #这个意思是如果有key ‘SH’则得到对应值,没有的话,得到默认值"中国"
      
    • 字典的常见操作1

      • 修改元素
      可以直接进行修改
      student={'name':'陈独秀','age':99}
      student['age']=100
      
      • 添加元素
      student['address']='北京市朝阳区'
      #如果字典中没有'address'这个key,则会将这个元素条件到字典中,如果已经包含这个key
      则新值会将旧值覆盖
      
    • 删除元素

      • del 删除
      #例:
      #删除某个key
      del student['age']
      #删除所有的键值对,删除之后,将不能在进行访问
      
      • clear
      #清空所有的键值对,清除后依旧可以进行访问
      stu.clear()
      
    • 字典的常见操作2

      • len() 键值对个数的获取
      stu={'name':‘xiaoming’,'age':19}
      len(stu)
      #长度为2
      
      • keys()
      #返回一个字典中所有的key的列表
      allKeys= stu.keys()
      for k in allKeys:
          print(k)
          print(allKeys[k])
      
      • values()
      #返回一个包含字典所有value的列表
      stu.values()
      #['xiaoming',19]
      
      • items()
      #返回一个包含所有(键、值) 元组的列表
      stu.items()
      #[('name','xiaoming'),('age',18)]
      
    • 字典的遍历

      • 所有key的遍历
      stu={'name':'xiaoming','age':19}
      for key in stu.keys():
          print(key)
      
      
      • 所有value的遍历
      stu={'name':'xiaoming','age':19}
      for value in stu.values():
          print(value)
      
      • 所有item的遍历
      stu={'name':'xiaoming','age':19}
      for item in  stu.items():
          print(item)
      
      • 所有key和value的遍历
      stu={'name':'xiaoming','age':19}
      for key,value in stu.items():
          print(type(value))
          print("%s=%s"%(key,value))
      

    公共方法

    • 公共运算符

      • '+'
      作用:合并、连接
      例:str1="hello"+"world"
      结果:”helloworld“
      list1=[1,2]+[3,4]
      结果:[1, 2, 3, 4]
      例:tuple1=(1,2) + (3,4)
      结果:(1,2,3,4)
      
      • '*'
      作用:复制
      例:  'hello' * 2
      结果: 'hellohello'
      例: [1,2] * 2
      结果:[1,2,1,2]
      例:(1,2) * 2
      (1,2,1,2)
      
      • in
      作用:元素是否存在
      例:
      result = '123' in 'HelloWorld123'
      print(result)
      result= 1 in [1,2]
      print(result)
      result = 2 in (1,2)
      result = 'name' in {'name':'xxx','age':12}
      print(result)
      
      • not in
      作用:元素书否不存在,用法跟in 一样
      
    • python的内置函数

      • len
      作用:得到元素的个数
      例:len([1,2])
      len((1,2))
      获取到的为键值对个数
      len({'name':'xiaoming','age':18})
      
      • max(...)
      作用:获取最大值
      例:
      max(1,2,3)
      max([1,2,3,4])
      找字典中的最大键
      a =max({'a':1,'b':2,'x':3})
      
      • min(...)
      作用: 获取最小值(用法与max一致)
      
      • del
      删除元素或者删除容器
      del 元素/容器变量名
      del list1[0]
      del list1
      
      • 变量.del()
      #在python3中已经不存在这种用法
      list1 = [1,2,3]
      list1.del()
      
    • 引用的使用

      • 什么是引用
      windows中的快捷方式
      家庭地址
      
      • 非引用类型案例:
      a = 10
      b = a
      print(id(a))
      print(id(b))
      b=100
      print(a)
      print(b)
      print(id(a))
      print(id(b))
      
      • 引用类型案例:
      list1 = [1,2,3]
      list2 = list1
      print(id(list1))
      print(id(list2))
      list2[0]=100
      print(list1)
      print(list2)
      print(id(list1))
      print(id(list2))
      
      • 引用类型内存图分析

    课后练习

    有能力的同学用函数完成
    学生管理系统:
    1.添加学生
    2.查询学生
    3.删除学生
    4.修改学生
    5.退出系统
    

    相关文章

      网友评论

          本文标题:03-字符串,列表,元组 & 字典

          本文链接:https://www.haomeiwen.com/subject/brftohtx.html