• Python之路——琐碎知识


    一、 __future__ 模块

    Guido van Rossum (Python之父)拥有一架时光机,因为在人们通常要求增加语言新特性的时候,这个特性通常都已经实现了。当然我们一般人是不允许进入这架时光机的。

    Guido将时光机的一部分以__future__这个模块的形式融入了python。通过它可以导入那些在未来会成为标准Python组成部分的新特性。

    二、 逻辑运算

    '''x or y x True,则返回x'''

    >>> print(1 or 2)
    1
    >>> print(2 or 1)
    2
    >>> print(0 or 1)
    1
    >>> print(2 or 0)
    2

    '''x and y x True,则返回y'''

    >>> print(0 and 2)
    0
    >>> print(2 and 0)
    0
    >>> print(1 and 2)
    2
    >>> print(2 and 1)
    1
    # “>","<"的优先级高于not > and > or ,True 和 False 不会转化为1或0
    >>> print(2 or 1<3)
    2
    >>> print(1<3 or 2)
    True
    >>> print(1>3 and 2)
    False
    >>> print(1<3 and 2)
    2
    >>> print(True or 0)
    True
    >>> print(True and 0)
    0
    >>> print(False or 2)
    2
    >>> print(False and 2)
    False


    三、 格式化输出

    格式一:

     1 name = input("请输入姓名:")
     2 age = input("请输入年龄:")
     3 height = input("请输入身高:")
     4 msg = "my name is %s, my age is %s, my height is %s, my process is 80%%" %(name,age,height)
     5 print(msg)
     6 # 运行结果:
     7 # 请输入姓名:liuyankui
     8 # 请输入年龄:25
     9 # 请输入身高:175
    10 # my name is liuyankui, my age is 25, my height is 175, my process is 80%
    View Code


    格式二:

     1 name = input("请输入姓名:")
     2 age = input("请输入年龄:")
     3 job = input('请输入工作:')
     4 hobbie = input('请输入爱好:')
     5 msg = '''------------ info of %s -----------
     6 Name  : %s
     7 Age   : %d
     8 job   : %s
     9 Hobbie: %s
    10 ------------- end -----------------''' %(name,name,int(age),job,hobbie)
    11 print(msg)
    12 # 输出结果
    13 # 请输入姓名:liuyankui
    14 # 请输入年龄:25
    15 # 请输入工作:IT
    16 # 请输入爱好:PingPong
    17 # ------------ info of liuyankui -----------
    18 # Name  : liuyankui
    19 # Age   : 25
    20 # job   : IT
    21 # Hobbie: PingPong
    22 # ------------- end -----------------


    格式三:

     1 name = input("请输入姓名:")
     2 age = input("请输入年龄:")
     3 job = input('请输入工作:')
     4 hobbie = input('请输入爱好:')
     5 msg = '''------------ info of {0} -----------
     6 Name  :{0}
     7 Age   : {1}
     8 job   : {2}
     9 Hobbie: {3}
    10 ------------- end -----------------''' .format(name,age,job,hobbie)
    11 print(msg)
    12 
    13 # 运行结果:
    14 # 请输入姓名:liuyankui
    15 # 请输入年龄:25
    16 # 请输入工作:IT
    17 # 请输入爱好:PingPong
    18 # ------------ info of liuyankui -----------
    19 # Name  :liuyankui
    20 # Age   : 25
    21 # job   : IT
    22 # Hobbie: PingPong
    23 # ------------- end -----------------

    四、 int 和bool值互相转换

    int  ----> bool   非零转换成bool True   0 转换成bool 是False

     1 >>> print(bool(2))
     2 True
     3 >>> print(bool(1))
     4 True
     5 >>> print(bool(0))
     6 False
     7 >>> print(bool(-2))
     8 True
     9 # bool ----> int   False ----> 0; True ----> 1
    10 >>> print(int(False))
    11 0
    12 >>> print(int(True))
    13 1

    五、 while...else...语句

    count = 0
    while count <= 5:
        count += 1
        if count == 3:break
        print("Loop",count)
    else:   # 当break打断while循环,else的内容就不再执行
        print("循环正常执行了")
    print("------------------")

    六、 Python字符串

     1 # 字符串
     2 
     3 # 字符串索引
     4 a = 'abcdefghijklmn'
     5 print(a[0])  # a
     6 print(a[3])  # d
     7 print(a[-1]) # n
     8 print(a[-5]) # j
     9 
    10 # 字符串切片
    11 # 切片是通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串,
    12 # 原则就是顾头不顾腚
    13 a = 'abcdefghijklmn'
    14 print(a[0:3])   # abc
    15 print(a[2:5])   # cde
    16 print(a[0:])    # abcdefghijklmn
    17 print(a[0:-1])  # abcdefghijklm
    18 print(a[0:5:2]) # ace
    19 print(a[5:0:-2])# fdb
    20 
    21 # 字符串常用方法
    22 name = 'liu-yan*kui LIU'
    23 # 首字母大写
    24 print(name.capitalize())    # Liu-yan*kui liu
    25 # 大小写翻转
    26 print(name.swapcase())      # LIU-YAN*KUI liu
    27 #每个单词的首字母大写
    28 print(name.title())         # Liu-Yan*Kui Liu
    29 
    30 # 内同居中,总长度,空白处填充
    31 ret = name.center(30,'-')
    32 print(ret)
    33 # 输出:
    34 # -------liu-yan*kui LIU--------
    35 
    36 
    37 
    38 # 数字符串中元素出现的个数
    39 a1 = 'liuyankuiliuyankui'
    40 print(a1.count('i'))    # 4
    41 print(a1.count('liu'))  # 2
    42 print(a1.count('l',0,12))# 2
    43 
    44 # 	前面的补全,默认将一个tab键变成8个空格,如果tab前面的字符不足8个,则补全8个,
    45 # 如果tab键前面的字符长度超过8个不足16个,则补全16个,以此类推
    46 a2 = 'hfdgdjjlk	lkj	lk'
    47 ret3 = a2.expandtabs()
    48 print(ret3) # hfdgdjjlk       lkj     lk
    49 
    50 a4 = 'jgklajlkajioufgakljsakj'
    51 # startswith: 判断是否以...开头
    52 # endswith: 判断是否以...结尾
    53 ret4 = a4.endswith('ajlk',2,8)  # 顾头不顾腚
    54 print(ret4) # True
    55 ret41 = a4.startswith('la',3,9)
    56 print(ret41)    # True
    57 
    58 # 寻找字符串中的元素是否存在
    59 ret5 = a4.find('kl',2,10) # 返回的是找到的元素的索引,如果找不到返回-1
    60 print(ret5) # 2
    61 
    62 ret51 = a4.index('aj',4,13) # 返回找到元素的索引,找不到报错
    63 print(ret51)    # 4
    64 
    65 # split 以什么分割,最终形成一个列表,此列表不含有这个分割的元素
    66 ret6 = a4.split('a')
    67 print(ret6) # ['jgkl', 'jlk', 'jioufg', 'kljs', 'kj']
    68 ret91 = 'title,Tilte,atre,'.rsplit('t',1) # 从右边开始分割,分割一次
    69 print(ret91)    # ['title,Tilte,a', 're,']
    70 
    71 ret92 = 'title,Tilte,atre,'.rsplit('t',3) # 从右边开始分割,分割3次
    72 print(ret92)    # ['ti', 'le,Til', 'e,a', 're,']
    73 
    74 
    75 # format的三种玩法,格式化输出
    76 print('{} {} {}'.format('egon',18,'male'))  # egon 18 male
    77 print('{1} {0} {1}'.format('egon',18,'male'))    # 18 egon 18
    78 print('{name} {age} {sex}'.format(sex = 'male',name = 'liuyk',age = 18))    # liuyk 18 male
    79 
    80 # strip
    81 b1 = '--   ***liuyankuih*****   --'
    82 print(b1.strip('- *'))  # liuyankuih
    83 print(b1.lstrip(' *-'))  # liuyankuih*****   --
    84 print(b1.rstrip('* -'))  # --   ***liuyankuih
    85 
    86 # replace
    87 name2 = 'alex say: i have one tesla, my name i alex'
    88 print(name2.replace('alex','SB',1)) # 1 是只替换一次
    89 
    90 name3 = 'liuyankui163'
    91 print(name3.isalnum())  # 字符串由字母或数字组成
    92 print(name3.isalpha())  # 字符串只由字母组成
    93 print(name3.isdigit())   # 字符串只由数字组成
    View Code

     

    七、 for循环

    t1 = 'sdkslflggjad'
    for i in t1:
        print(i)

     八、 小数据池

     1 #数字,字符串,小数据池
     2 #数字的范围 -5 -- 256
     3 #字符串:1,不能含有特殊字符;
     4 #        2. s*20 还是同一个内存地址,超过则两个
     5 # i1 = 2
     6 # i2 = 2
     7 # print(i1 is i2) # True
     8 
     9 # s1 = 'a'*20
    10 # s2 = 'a'*20
    11 # print(s1 is s2)   # True

    九、is

    1 # = 赋值 == 比较值是否相等   is 比较,比较的是内存地址  id(内容)
    2 # li1 = [1,2,3]
    3 # li2 = li1
    4 # li3 = li2
    5 # print(id(li1),id(li2))
  • 相关阅读:
    编译Filebeat源码
    一些常用的shell写法
    设置tomcat默认访问的项目
    修改Linux软件源
    k8s创建使用nfs的StorageClass
    使用NFS服务实现文件共享
    idea配置代码注释模板
    redis cluster(集群)模式的创建方式
    etcd简单测试类java版
    Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
  • 原文地址:https://www.cnblogs.com/liuyankui163/p/8041157.html
Copyright © 2020-2023  润新知