整形,字符串,布尔值,for循环

烈酒焚心 提交于 2019-12-05 04:03:45

一,整型int

  1. 用于计算和比较,在python3中所有的整数都是int类型

  2. 二进制和十进制的转换

    • 十进制转换成二进制:

      正整数转换成二进制:除二取余,倒序排列,高位补零

      14 % 2 = 0
      7  % 2 = 1
      3  % 2 = 1
      1  % 2 = 1
      0
      14转换为二进制为:0000 1110

      负整数先转换成对应的正整数,转换成二进制,对二进制取反,再对结果加一

    • 二进制转换成十进制:

      先将二进制补齐位数,如果首位是0代表是正整数,首位是1代表是负整数

      • 正整数:补齐位数后,将二进制中的位数分别将下边对应的值相乘,然后相加得到十进制

        1010  
        # 先补齐位数  =>  0000 1010     128  64   32  16   8   4   2   1 常用的8位
        2**3 *1 + 2**2 * 0 + 2**1 * 1 + 2**0 * 0  =  10
      • 负整数,先对二进制取反,再进行换算

  3. bit_length()

    求十进制数转换成二进制时所占用的长度

二,布尔值

  • True 真 非0数字 非空字符串

  • False 假 0 空字符串

  • 类型转换:想要转换成什么类型,就用这个类型把需要转换的内容括起来

    a = "hahahahaha"
    b = "123456"
    c = 123456
    a1 = bool(a)  => True
    b1 = int(b)   => 123456
    c1 = str(c)   => "123456"

三,字符串的定义与常用操作

  1. 用于储存小量的数据

  2. python中用' '," ",''' ''',""" """括起来的就是字符串

  3. 常用操作

    1. 索引: 索引就是下标,从左向右, 从0开始;从右向左,从-1开始

      num = "1234567890"
      print(num[1])  => 2
      print(num[4])  => 5
      print(num[-1]) => 0
      print(num[-2]) => 9
      print(num[21]) # 索引超出范围,报错
    2. 切片:使⽤索引来截取部分字符串的内容

      • 语法: str[start: end: step]

      • 规则: 顾头不顾尾, 从start开始截取, 截取到end位置,但不包括end。

        num = "0123456789"
        num[::] == num[:]  # 从头取到尾
        print(num[0:3])  =>  012 # 不包含索引3对应的"3"
        print(num[5:8])   =>  567
        print(num[5:])    =>  56789  # 想取到最后,end可以不写
        print(num[5:20])  =>  56789  # 索引超出范围,不会报错
        print(num[-1:-5:-1]) => 9876 # step步长决定取值的方向,默认为1
        print(num[1:7:2]) =>  135    # str步长决定取值的步子大小,即每step个取一个
    3. 常用方法

      • 切记, 字符串是不可变的对象, 所以任何操作对原字符串是不会有任何影响的
      name = "Hello World"
      print(name.upper()) => HELLO WORLD  字母全部转换成大写
      print(name.lower()) => hello world  字母全部转换成小写
      print(name.startswith("H"))  => True  是否以"H"开头
      print(name.endswith("d"))    => True  是否以"d"结尾
      print(name.count("o"))       => 2     统计"o"出现的次数
      print(name.replace("H","A",次数)  => Aello World  # 将H替换成A,默认全部替换,可以输入替换次数
      
      a = "  Alex  "
      print(a.strip()) => Alex  # 去掉两端的某些元素,()内可以指定元素,默认是空白(空格和\n)
      
      b = "1,2,3"
      print(b.split(",")) => ["1","2","3"]  # 分割,可以指定用于分割的元素,分割后损失这个元素,默认以空格分隔,返回一个列表。
      • is 判断系列
      name.isdigit()   # 判断是不是阿拉伯数字,有漏洞
      name.isdecimal() # 判断是不是十进制,可以用于判断数字
      name.isalpha()   # 判断是不是中文和字母
      name.isalnum()   # 判断是不是中文,字母和数字
    4. 第三种字符串格式化

      name = "alex{}wusir{}"
      print(name.format("结婚了","要结婚了")) # 按照位置顺序填充
      
      name = "alex{1}wusir{0}"        # 按照索引位置填充
      print(name.format("结婚了","要结婚了"))
      
      name = "alex{a}wusir{b}"
      print(name.format(a="结婚了",b="要结婚了"))  # 指名道姓填充
    5. 计算字符串的⻓度

      len(字符串) -- 工厂函数 -- 所有类型都能用,除了int和bool 求元素个数

四,for循环与range

  1. for循环

    # for 变量 in  可迭代对象:
    #    pass
    s = "1234567890"
    for each in s:          # 遍历字符串
        print(each)         # 1 2 3 4 5 6 7 8 9 0
    print(each)             # 0   注意
  2. 占位符

    pass :占位符

  3. range

    • 语法range(start,end,step): 范围,从start到end,不包含end,步长step默认是1

    • python3中打印range()会打印本身,python2中会打印出列表

      for each in range(1,10):
         print(each)
      # 1  2  3  4  5  6  7  8  9
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!