Python基础3

  • 基础数据类型、int、bool、str及其常用的操作方法、for循环
  1. 基础数据类型总览

    • 便于计算机区分数据,做对应类型的操作
    • 123、45、5 int 做运算操作
    • '你好' '恭喜发财' str 存储少量的数据
    • True False bool 用于判断
    • [123,'hello',[1,2,3]] list 容器类数据类型 存储大量的数据
    • (123,'hello',[1,2,3]) tuple 容器类数据类型 存储大量的数据,不可改变里面的元素
    • {'name':'alex'} dict 容器类数据类型 存储大量的关联型数据,查询速度非常快
    • set 交集、并集、差集
  2. int :主要用于运算与不同进制的转换

    • 二进制转换成十进制0001 1010 ------> 24*1+23*1+22*0+1*21+2^0*0 = 26

    • 十进制转换成二进制2|26 -------->0
      2|13 -------->1
      2|6 -------->0
      2|3 -------->1
      1
      26 ----------->逆序排列 11010 ----补全---> 0001 1010

    • int数据类型的方法:bit_length() ---------> 将整数转换成二进制所占的有效位数

      i = 26
      print(i.bit_length())
      结果:
      5
      
      Process finished with exit code 0
      
  3. int、bool、str之间的转换:

    • int<------>bool之间的转换:int------->bool:非零即True,0为Falsebool------>int: True为1,False为0

      i = 26
      print(bool(i))
      i = 0
      print(bool(i))
      结果:
      True
      False
      
      Process finished with exit code 0
      ----
      i = True  
      print(int(i))  
      i = False  
      print(int(i))
      结果:
      1
      0
      
      Process finished with exit code 0
      
    • str<--------->bool之间的转换:str--------->bool:非空即True,空为Falsebool--------->str:这个无意义只是加上引号

      s = "nihao"
      print(bool(s))
      s = ""
      print(bool(s))  #注意区分空白字符与空的区别
      s = " "
      print(bool(s))
      结果:
      True
      False
      True
      
      Process finished with exit code 0
      ----
      b = True
      print(str(b),type(str(b)))
      b = False
      print(str(b),type(str(b)))
      结果:
      True <class 'str'>
      False <class 'str'>
      
      Process finished with exit code 0
      
    • int<-------->str之间的转换:int-------->str:任何数字都可以转换成字符串类型str-------->int:只有数字类型的字符串才能转换成int类型

      s = "1234"
      print(int(s),type(int(s)))
      s = "hello"
      print(int(s),type(int(s)))
      结果:
      Traceback (most recent call last):
      1234 <class 'int'>
        File "/Users/suncong/PycharmProjects/python_project/day3/for.py", line 10, in <module>
          print(int(s),type(int(s)))
      ValueError: invalid literal for int() with base 10: 'hello'
      ----
      i = 1234
      print(str(i),type(str(i)))
      结果
      1234 <class 'str'>
      
      Process finished with exit code 0
      
    • 补充:

      s = input("请输入:")
      if s:  #if语句的条件最终都会转换为bool值,用做判断
          print("有内容")
      else:
          print("无内容")
      结果:
      请输入:a #非空为True
      有内容
      请输入: #空为false
      无内容
      
  4. 字符串的索引和切片

    • 索引s[index]:只能取出一个字符,index:从左至右,从0开始,第一个字符对应0,以此类推。从右至左,从-1开始,以此类推

      s = "hello python!"
      print(s[0])
      print(s[-1])
      结果:
      h
      !
      
      Process finished with exit code 0
      
    • 切片s[start:end:length],start表示起始位置,end表示终止位置,length表示步长,length为正数,表示从左至右显示字符串,为负数,则是从右至左显示字符串

      • start < end:表示从前向后展示,length为正

        s = "hellopython!"
        #start<end,这里比较出的大小是在同一方向上的
        print(s[2:-1:1]) #将-1转换为从左至右应该为10,故而2是小于10的
        结果:
        llopython
        
        Process finished with exit code 0
        
      • start > end:表示从后向前展示,length为负

        s = "hellopython!"
        print(s[8:2:-1])
        结果:
        htypol
        
        Process finished with exit code 0
        
  5. 字符串的操作方法:

    • 改变全部字符的大写、小写:upper()、lower()

      s = "hellopythON!"
      print(s.upper())
      print(s.lower())
      结果:
      HELLOPYTHON!
      hellopython!
      
      Process finished with exit code 0
      
    • 匹配起始位置与结尾位置的字符串,匹配成功返回True,否则返回False:startswith()、endswith()

      s = "hellopythON!"
      print(s.startswith("he"))
      print(s.endswith("!"))
      结果:
      True
      True
      
      Process finished with exit code 0
      
    • 替换指定字符串为新字符串:replace(old_str,new_str,count),count可以指定替换次数,默认全部替换

      s = "lucy是个女神,lucy长得很漂亮,lucy是个好学生"
      print(s.replace("lucy","lily"))
      print(s.replace("lucy","lily",1))
      结果:
      lily是个女神,lily长得很漂亮,lily是个好学生
      lily是个女神,lucy长得很漂亮,lucy是个好学生
      
      Process finished with exit code 0
      
    • 去除字符串两边空白字符:strip(),还可以用其去掉字符串两边的指定字符

      s = "\npython\n"
      print(s)
      print(s.strip())
      结果:
      
      python
      
      python
      
      Process finished with exit code 0
      ---
      s = "rre苹果edu"
      print(s)
      print(s.strip('redu')) #只需指定要去掉字符的交集即可
      结果:
      rre苹果edu
      苹果
      
      Process finished with exit code 0
      
    • 字符串转换为列表:split(seq,count),seq指定分隔符,默认为空白字符,count可以指定最大分割次数,默认全部分割

      s = "lily:lucy:lisa"
      print(s.split(":"))
      结果:
      ['lily', 'lucy', 'lisa']
      
      Process finished with exit code 0
      ----
      s = "lily:lucy:lisa"
      print(s.split(":",1))
      结果:
      ['lily', 'lucy:lisa']
      
      Process finished with exit code 0
      
    • 字符串的拼接,也可将列表转换为字符串类型:"拼接符".join(str/list)

      l = ['lily', 'lucy', 'lisa']
      s = ":".join(l)
      print(s)
      结果:
      lily:lucy:lisa
      
      Process finished with exit code 0
      ----
      s = "lily"
      s2 = ":".join(s)
      print(s2)
      结果:
      l:i:l:y
      
      Process finished with exit code 0
      
    • 统计指定字符在字符串中出现的次数:count()

      s = "lily"
      print(s.count("l"))
      结果:
      2
      
      Process finished with exit code 0
      
    • format()的三种用法:

      • {}.format()

        name = input("请输入姓名:")
        age = input("请输入年龄:")
        sex = input("请输入性别:")
        msg = '''
        ---------info of {}----------
        name:{}
        age:{}
        sex:{}
        '''.format(name,name,age,sex)
        print(msg)
        结果:
        请输入姓名:lily
        请输入年龄:18
        请输入性别:male
        
        ---------info of lily----------
        name:lily
        age:18
        sex:male
        
      • {name1,name2......}.format(name1=v1,n2=v1......)

        name = input("请输入姓名:")
        age = input("请输入年龄:")
        sex = input("请输入性别:")
        msg = '''
        ---------info of {n1}----------
        name:{n1}
        age:{n2}
        sex:{n3}
        '''.format(n1=name,n2=age,n3=sex)
        print(msg)
        结果:
        请输入姓名:lily
        请输入年龄:18
        请输入性别:male
        
        ---------info of lily----------
        name:lily
        age:18
        sex:male
        
        
        Process finished with exit code 0
        
      • {0,1,2......}.format(v1,v2,v3)

        name = input("请输入姓名:")
        age = input("请输入年龄:")
        sex = input("请输入性别:")
        msg = '''
        ---------info of {0}----------
        name:{0}
        age:{1}
        sex:{2}
        '''.format(name,age,sex)
        print(msg)
        结果:
        请输入姓名:lily
        请输入年龄:18
        请输入性别:male
        
        ---------info of lily----------
        name:lily
        age:18
        sex:male
        
        
        Process finished with exit code 0
        
    • 判断字符串的组成,返回True,False:isalnum()字符串是否只由数字字母组成、isalpha()只由字母组成、isdecimal()只由十进制数组成

      s = "123hello"
      s1 = "hello"
      s2 = "123"
      print(s.isalnum())
      print(s1.isalpha())
      print(s2.isdecimal())
      结果:
      True
      True
      True
      
      Process finished with exit code 0
      
  6. 成员运算in/not in,适用于所有数据类型

    • in、not in

      s = ["hello","hi",'123']
      s1 = "123"
      print(s1 in s)
      print(s1 not in s)
      结果:
      True
      False
      
      Process finished with exit code 0
      ---
      s = ["hello","hi",'123']
      s1 = "12"
      print(s1 in s)
      print(s1 not in s)
      结果:
      False
      True
      
      Process finished with exit code 0
      
  7. for循环

    • for循环为有限循环:
      • for 变量 in 可迭代对象:            代码

        s1 = "吹梦到西州"
        for i in s1:
            print(i)
        结果:
        吹
        梦
        到
        西
        州
        
        Process finished with exit code 0
        
      • for.......else用法与while.....else一样,如果循环被break打断则不会执行else语句

  8. len(),获取可迭代对象元素的个数

    s1 = "吹梦到西州"
    print(len(s1))
    结果:
    5
    
    Process finished with exit code 0
    
posted on 2020-03-15 19:17  littleSUKI  阅读(108)  评论(0)    收藏  举报