zoukankan      html  css  js  c++  java
  • Important thing

    1 '''
    2     bit_length
    3 1   0000 0001   1
    4 2   0000 0010   2
    5 3   0000 0011   2
    6 '''

    # 类型转化注意点

    1 # int 转 str 无限制
    2 # str 转 int 只有字符串为数字的时候可以转
    3 # int 转 bool 只要是非零就是True else 为False
    4 # bool 转 int True为 1  False 为 0
    
    
    1 # str 转 bool  ''为False else 为True
    2 # if s:
    3 #    print("你输入的为空,请重新输入")
    4 #   可以判断s 是否为非空字符
    
    

    # 效率问题的选择
    1 '''
    2 while True: 的效率低于
    3 while 1:    因为少了转化
    4 '''
    
    

    # 字符串全部打印

    
    
    # s7 = s[:]
    # s8 = s[0:]
    # print(s7, s8)
    
    

    # 倒叙打印

    1 倒叙打印
    2 s = 'ABCDLSESRF'
    3 s14 = s[-1::-1]
    4 print(s14)
    # 每个隔开(特殊字符或者数字)的单词首字母大写
    
    
    1 # 每个隔开(特殊字符或者数字)的单词首字母大写
    2 s = 'alex*egon-wusir'
    3 print(s.title())
    4 
    5 s = 'fade,crazy*w4rri0r_songsong node_3'
    6 s4 = s.title()
    7 print(s4)
    
    

    # 测量字符串的元素个数 用len

    
    
    # 以什么开头 startswith 以什么结束 endswiith
    s = 'rainmZc'
    print(s.startswith('rai'))
    print(s.endswith("r", 3, 6))
    
    # 可以利用此功能来筛选符合条件的字符串
    if s.startswith('rainm'):
        print("handsome")
    else:
        pass
    # find 通过元素找索引,找不到返回-1
    # index通过元素找索引,找不到会报错

    # 逐个输出字符串元素
    1 # 逐个输出字符串元素
    2 s = "123dsf g123..官方给的412s"
    3 for i in s:
    4     print(i)
    5 name = input("请输入名字:")
    6 if 'sb'.upper() in name.upper():
    7     print("你才是{}".format(name))
    8 else:
    9     print(1111)
    
    
    # format的三种用法
    1 name = "{} is very {} and {}".format('Rainm', 'handsome', 'handsome')
    2 print(name)
    3 # 按顺序输出
    4 name = "{1} is very {0} and {0}".format("handsome", "Rainm")
    5 print(name)
    6 name = "{name} is very {a} and {a}".format(a="handsome", name="Rainm")
    7 print(name)
    
    
    
    # int: bit_length 测量整型用二进制的最小位数
    # bool: True 或者 False
    # str -> bool 非空字符时为False

    # capitalize 首字母大写
    # upper 全部大写
    # lower 全部小写
    # find 通过元素查找索引,找不到返回-1
    # index 通过元素查找索引,找不到报错
    # swapcase 字符串中英文字符的大小写翻转

    # replace 替换指定字符 参数有 旧字符,新字符,替换次数
    # isdigit 判断是否是数字 isalpha 判断是否是字母 isalnum 判断是否是数字和字母的组合 返回的都是bool
    # startswith 判断是否是以。。。开头 endswith 判断是否是以。。。结尾
    # title 首字母大写
    # center 居中,可以自定义填充物
    # strip 删除指定的特殊字符 lstrip 左删除 rstrip 右删除
    # split 指定以什么字符分割字符串为列表
    # s = "123fsag123agfga45ga123ga123"
    # print(s.split("123"))
    # format 格式化输出
    # len 测量字符串中的元素的个数
    # count 计算指定字符的个数

    # 列表: 增 append insert extend
    # 删 remove pop clear del
    # 改 li[索引] = “被修改的内容”
    # 查 for 循环
    # range 下面生成0-8的数字
    # for i in range(0, 9):
    # print(i)

    # 元祖 不可修改子元素
    # count 计算元素的个数,len()测量长度 sort 排序默认升序 降序 sort(reverse = True)
    # reverse 翻转
    # join: list ——》 str

    
    
    1 # join: list ——》 str
    2 # li = ["1321", "454"]
    3 # a = "".join(li)
    4 # print(a)
    
    
    

    # 重点
    # 数据类型划分: 可变数据类型, 不可变数据类型
    # 不可变数据类型:元祖 bool int str 也称为可哈希
    # 可变数据类型:list,dict set 不可哈希
    # dict key 必须是不可变数据类型 可哈希
    # value:任意的数据类型
    # dict 的优点: 二分查找去查询 存储大量的关系型数据
    # 特点: (无序)

     1 # dic = {
     2 # key为字符串    'name':['大猛','小孟'],
     3 #     'py9':[{'num':71,'avg_age':18,},
     4 #            {'num': 71, 'avg_age': 18, },
     5 #            {'num': 71, 'avg_age': 18, },
     6 #            ],
     7 # key为bool    True:1,
     8 # key为元祖    (1,2,3):'wuyiyi',
     9 # key为整型    2:'二哥',
    10 # }

     # 编码问题

    # py3:
    # str 在内存中是用unicode编码。
    # bytes类型
    # 对于英文
    # str: 表现形式: s = 'alex'
    # 编码方式: 010101010
    # bytes: 表现形式 s = b'alex'
    # 编码方式 000101010 utf-8 gbk。。。。
    # 对于中文:
    # str: 表现形式: s = '中国'
    # 编码方式: 010101010 unicode
    # bytes: 表现形式: s = b'xe91e91e01e21e31e32'
    # 编码方式: 000101010 utf-8 gbk。。。。

     

     1 # dict:dic = {"name": "alex"}
     2 # 增: dic['age'] = 16 存在就覆盖
     3 # dic.setdefault()没有就增加 有就不变
     4 
     5 # 删除:pop() 按照keys删除 有返回值,返回key对应的值  没有对应的key就会报错
     6 # dia = {'name':"gag"}
     7 # dia.pop('name')
     8 # print(dia)
     9 # clear 清空列表    del 可以单个删除,也可以直接删除整个字典   popitem  随机删除,返回的是元祖
    10 # 改 update  存在就覆盖,没存在就添加
    11 #
    12 # dic = {'name': "gag"}
    13 # # dic.keys()      # 打印key
    14 # # dic.values()    # 打印value
    15 # # dic.items()     # 打印key和value
    16 # #
    17 # # for k, v in dic.items():
    18 # #     print(k, v)
    19 # # # 将键的值取出
    20 # # v = dic.get('name', None)
    21 # # print(v)
    22 
    23 li= [11, 22, 33, 44, 55, 66, 77, 88, 99, 90]
    24 dic = {'k1': [], 'k2': []}
    25 for i in li:
    26     if i == 66:
    27         continue
    28     if int(i) > 66:
    29         dic['k1'].append(i)
    30     else:
    31         dic['k2'].append(i)
    32 print(dic)
    33 
    34 # 复习
    35 # = 赋值 == 比较值是否相等  is比较  比较的是内存地址  id()显示内存地址
    36 li1 = [1, 2, 3]
    37 li2 = li1
    38 print(li1 is li2, id(li1),id(li2))
    39 
    40 # 数字,字符串 具有小数据池
    41 # 数字的范围 -5 -- 256
    42 # 字符串:  1,不能有特殊字符
    43 #           2.s*20还是同一个地址,s*21以后就是两个地址
    44 i1 = 6
    45 i2 = 6
    46 print(id(i1),id(i2))
    47 # 编译器显示一样的地址  但是在终端显示的是不一样的
    48 i1 = 300
    49 i2 = 300
    50 print(id(i1), id(i2))
    51 
    52 # 剩下的 list dict tuple set
    53 # 地址不一样
    54 l1 = [1,]
    55 l2 = [1,]
    56 print(l1 is l2)
    57 
    58 #### 重要  理解
    59 # s = 'alex'
    60 # s1 = b'alex'
    61 # print(s,type(s))
    62 # print(s1,type(s1))
    63 
    64 # s = '中国'
    65 # print(s,type(s))
    66 # s1 = b'中国'
    67 # print(s1,type(s1))
    68 
    69 s1 = 'alex'
    70 # encode 编码,如何将str --> bytes, ()
    71 s11 = s1.encode('utf-8')
    72 s11 = s1.encode('gbk')
    73 # 打印的都是b'alex'
    74 print(s11)
    75 
    76 s2 = '中国'
    77 s22 = s2.encode('utf-8')
    78 # show b'xe4xb8xadxe5x9bxbd' 6 个16进制  因为utf-8一个中文3个字节
    79 print(s22)
    80 
    81 s22 = s2.encode('gbk')
    82 # show b'xd6xd0xb9xfa' 4 个16进制  因为gbk一个中文2个字节
    83 print(s22)
    84 
    85 # utf-8             A:00100000 8位  一个字节
    86 #                   中: 00000001 00000010 00000110  24位  三个字节
    87 
    88 
    89 # gbk               A:  00000110  8位 一个字节
    90 #                   B: 00000010 00000110 16位 两个字节
    91 
    92 # 各个编码之间的二级制,是不可以互相识别的,会产生乱码
    93 # 文件的存储,传输,不能是unicode  (只能是utf-8 utf-16 gbk,gb2312,asciid等)

     

     

     
     
     
  • 相关阅读:
    《C# to IL》第一章 IL入门
    multiple users to one ec2 instance setup
    Route53 health check与 Cloudwatch alarm 没法绑定
    rsync aws ec2 pem
    通过jvm 查看死锁
    wait, notify 使用清晰讲解
    for aws associate exam
    docker 容器不能联网
    本地运行aws lambda credential 配置 (missing credential config error)
    Cannot connect to the Docker daemon. Is 'docker daemon' running on this host?
  • 原文地址:https://www.cnblogs.com/Rainm/p/9589995.html
Copyright © 2011-2022 走看看