zoukankan      html  css  js  c++  java
  • Python之路第五篇——Python基本数据类型

    Python基本数据类型

    数字

    # 1.数字 int
    # - int
    # 	将字符串转换为数字
    a = "123"
    print(type(a), a)  # 内置的 type() 函数可以用来查询变量所指的对象类型
    b = int(a)  # int() 将字符串转化为数字,默认直接转化为十进制,需要其他进制后面加 base=
    print(type(b), b)  # 还可以用 isinstance 来判断 isinstance(b, int)
    # 结果:<class 'str'> 123
    # 结果:<class 'int'> 123
    
    num = "0011"  # 一个二进制数
    v = int(num, base=2)  # base=2,是以二进制的形式进行转换为十进制,如没有base= 则结果为:11
    print(v)  # 结果:3
    
    num_16 = "e"
    k = int(num_16, base=16)  # base=后面还跟着8或者16
    print(k)  # 结果:14
    
    # bit_lenght
    age = 16  # 一个字节占八个 bit
    # 1(十进制) --> 1(二进制)表示一位
    # 2(十进制) --> 10(二进制)表示二位
    # 3(十进制) --> 11(二进制)表示二位
    # 4(十进制) --> 100(二进制)表示三位
    # 5(十进制) --> 101(二进制)表示三位
    
    r = age.bit_length()  # .bit_length() 当前数字的二进制,最少用n位表示
    print(r)
    

    字符串

    capitalize()

    test = "python"
    v = test.capitalize()  # .capitalize()的功能是让首字母大写
    print(v)  # 输出结果:Python
    

    lower()   .casefold() 

    .casefold() 要比 .lower() 更高级或者说是更强大,具体如下:

    test1 = "pYthon"
    test2 = "Ω"  # 比如希腊字母 Omega(大写Ω,小写ω )
    test3 = "Γ"  # Γγ
    v = test1.lower()  # 将英文字母全部小写
    y = test1.casefold()  # 即可将英文字母全部小写,
    z = test2.casefold()  # 还可以对其他未知映射进行转换
    w = test3.casefold()  # 还可以对其他未知映射进行转换
    print(v)  # 输出结果:python
    print(y)  # 输出结果:python
    print(z)  # 输出结果:ω
    print(w)  # 输出结果:γ
    

    这里只是举个例子,其实lower()也可以对希腊字母进行转换。看下面这个例子通过英文和德语中的字母还是分明的

    s1 = "pyTHon"  # 英文
    s2 = "ß"  # 德语
    
    print(s1.lower())  # 输出结果:python 都被转变过来了
    print(s1.casefold())   # 输出结果:python 都被转变过来了
    print(s2.lower())  # 输出结果:ß 并没有被转变过来
    print(s2.casefold())  # 输出结果:ss 德语的"ß"正确的小写是"ss"
    

     center()

    # center() 设置宽度,并将内容居中
    test = "python"
    test2 = "python"
    v = test.center(20)
    v2 = test.center(20, "|")  # fillchar 的位置支持填1个字符,可以是中文,像"99"这种会报错
    
    # center(self, width, fillchar=None): 看到这种情况,self可以直接忽略
    # center(width, fillchar=None): 有 width,后面没有等号,就必须给带值
    # center(width, fillchar=None): fillchar=None 后面要是有 None 就是默认,有等号的话后面可带值也可不带
    print(v)  # 输出结果:       python    意思就是前后一共20个位置,python放中间,并且用空白占位
    print(v2)  # 输出结果:|||||||python|||||||意思就是前后一共20个位置,python放中间,并且用"|"占位
    

    count() 

    # .count() 去字符串中寻找,寻找子序列的出现次数
    test = "hello world"
    v1 = test.count("w")
    v2 = test.count("o", 5, 6)  # 从字符串test的第五个元素和第六个元素中间开始寻找
    v3 = test.count("l", 5)  # 从字符串test的第五个元素以后开始寻找
    print(v1, v2, v3)  # 输出结果:1 0 1
    

     endswith()   startswith()

    # endswith() 判断以什么结尾
    test = "hello world"
    v = test.endswith("j")
    print(v)  # 输出结果:False
    
    # startswith() 判断以什么开始
    y = test.startswith("h")
    print(y)  # 输出结果:True
    

     expandtabs()   可以用来做表格

    # 方法把字符串中的 tab 符号('	')转为空格,tab 符号('	')默认的空格数是 8。
    text = "123456a	bcdefg	789789"
    # 要注意的是 当expandtabs()中的位数正好是/t是时候,(6)位数个空格将字符串分开
    # 如果不正好是位数的话,则与前面的"字符串"的个数+空格=位数(6)
    v = text.expandtabs(6)
    print(v)  
    # 结果:123456a     bcdefg      789789
    # 上面第一个是7位,所以a+5个空白格=6,这是与第二个的距离,距离排除a,则是5个
    # 第二个bcdefg(正好是六位)和第三个789789之间距离是6个 
    # expandtabs(15) 可以只用作制作类似于表格的样式
    text = "name	age	subjec
    Sam	19	Math
    Jamse	21	History
    John	20	English"
    # 让每一列都按照一定数值(这里是15)左对齐
    v = text.expandtabs(15)
    print(v)
    '''
    输出结果:
    name           age            subjec
    Sam            19             Math
    Jamse          21             History
    John           20             English
    '''

    find()

    # 从开始往后找,找到第一个之后,获取其位置,后面还有没有不去管
    test = "world hello world"
    v1 = test.find("wo")
    v2 = test.find("wo", 6, 15)
    v3 = test.find("wo", 6, 10)
    print(v1)  # 结果:0 表示在第一位
    print(v2)  # 结果:12 表示在第13位
    print(v3)  # 结果:-1 表示没找到
    

    index()

    # index() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,
    # 则检查是否包含在指定范围内,该方法与 python find()方法一样,只不过如果str不在 string中会报一个异常。
    test = "hello python"
    v1 = test.index("th")
    v2 = test.index("th", 1, 5)
    print(v1)  # 输出结果:8
    print(v2)  # 报错 ValueError: substring not found
    

    format()

    # format() 格式化,将一个字符串中的占位符替换为指定的值
    test = "i am {name},i am {age} years old"  # 根据占位符替换
    v1 = test.format(name="WuKong Sun", age=2000)
    print(v1)
    
    test = "i am {0},i am {1} years old"  # 根据位置替换,永远是从{0}开始
    v2 = test.format("Liang ZhuGe", 3000)
    print(v2)
    

    format_map()

    # format() 格式化,传入的值 的形式为:{"name": 'alex', "a": 19}
    test = "i am {name},i am {age} years old"  # 根据占位符替换
    v1 = test.format(name="WuKong Sun", age=2000) 
    v2 = test.format_map({"name": "Liang ZhuGe", "age": 3000})  # 里面写成字典
    print(v1)
    print(v2)
    

    isalnum()

    # isalnum() 字符串中是否只包含 字母和数字 全字母,全数字也可以
    test = "opop8863"
    v = test.isalnum()
    print(v)  # 输出结果:True
    

    isalpha()

    # isalpha() 判断字符串中时候包含字母,汉字,则返回True,数字会返回False
    test = "python蟒蛇"
    v = test.isalpha()
    print(v)  # True
    

     isdigit()  isdecimal()  isnumeric()

    # isdigit() isdecimal() isnumeric() 检查当前输入是否是数字
    text = "123456"
    v1 = text.isdigit()  # 支持十进制的数字
    v2 = text.isdecimal()
    v3 = text.isnumeric()
    print(v1, v2, v3)  # 结果:True True True
    
    text = "12345⑥"
    v1 = text.isdigit()  # isdigit() 更强大,可以判断出其他形式的数字,如⑥
    v2 = text.isdecimal()  # isdecimal() 不支持特殊数字
    v3 = text.isnumeric()  # isnumeric() 也支持特殊形式数字,甚至比isdigit还要强大
    print(v1, v2, v3)  # 结果:True False True
    
    text = "12345⑥七"
    v1 = text.isdigit()  # isdigit() 不支持汉字数字
    v2 = text.isdecimal()  # isdecimal() 不支持汉字数字
    v3 = text.isnumeric()  # isnumeric() 支持汉字数字,比isdigit还要强大
    print(v1, v2, v3)  # 结果:False False True
    

    isprintable()

    # isprintable()是否存在不可显示的字符,并不是是否可以打印,
    # 字符串中如果有打印看不见的东西则返回False
    test = "abcd	efg"  #此处存在不可显示的制表符,所以结果会返回False
    v = test.isprintable()
    print(v)  # 输出结果:False
    
    test = "abcdefg"
    v = test.isprintable()
    print(v)  # 输出结果:True
    

    isspace()

    # isspace() 判断是否全部是空格
    test1 = "python"
    test2 = " python"
    test3 = "py thon"
    test4 = "py  thon"
    test5 = "    "
    v1 = test1.isspace()  # 输出结果:False
    v2 = test2.isspace()  # 输出结果:False
    v3 = test3.isspace()  # 输出结果:False
    v4 = test4.isspace()  # 输出结果:False
    v5 = test5.isspace()  # 输出结果:True 只有字符串中全是空格,别有其他的时候才是True
    
    print(v1, v2, v3, v4, v5)  # 输出结果:False False False False True
    

    istitle()  title()

    # istitle() 判断是否是标题 即每个标题的单词首写字母是否为大写,对中文无效
    text = "Hello Python you are a good language"
    v1 = text.istitle()
    print(v1)  # False
    
    v2 = text.title()  # 将字符串转化为每个单词字母为大写的标题样式
    print(v2)  # Hello Python You Are A Good Language 转化后的标题模式
    v3 = v2.istitle()  # 判断转化后的字符串
    print(v3)  # True
    

    join()  非常!非常!非常!重要!

    # join() 将字符串中的每一个元素按照指定分隔符进行拼接
    test = "今日艰苦努力明日成就非凡"
    print(test)
    t = ' '
    v = t.join(test)  # v = "_".join(test) 也可以直接在join前方加入分隔符
    print(v)  # 结果:今 日 艰 苦 努 力 明 日 成 就 非 凡
    

      

  • 相关阅读:
    Java工作流框架jflow 集团应用模式用户组功能
    Java工作流引擎的测试容器-功能-使用方法-注意事项
    开源工作流引擎-发起-待办-抄送-在途-草稿列表的连接设置大全
    Java工作流程引擎系统的退回规则 专题说明
    Java工作流引擎-集团模式下的权限 设计与实现
    工作流引擎会签,加签,主持人,组长模式专题讲解
    调试ccbpm系统的bug个技巧 如何调试asp.net程序导致iis死机问题
    工作流引擎会签,加签,主持人,组长模式 专题讲解
    驰骋BPM系统-表单引擎-流程引擎 2020年大换装
    Android Gradle 插件
  • 原文地址:https://www.cnblogs.com/webfuns/p/8471029.html
Copyright © 2011-2022 走看看