zoukankan      html  css  js  c++  java
  • python数据类型-字符串

    基本数据类型

    python的基本数据类型如下:

    1. int ==> 整数. 主要用来进行数学运算
    2. str ==> 字符串, 可以保存少量数据并进行相应的操作
    3. bool==>判断真假, True, False
    4. list==> 存储大量数据.用[ ]表示
    5. tuple=> 元组, 不可以发生改变 用( )表示
    6. dict==> 字典, 保存键值对, 一样可以保存大量数据
    7. set==> 集合, 保存大量数据. 不可以重复. 其实就是不保存value的dict

    二. 整数(int)
    在python3中所有的整数都是int类型. 但在python2中如果数据量比较大. 会使用long类型. 在python3中不存在long类型

    整数可以进行的操作:
    bit_length(). 计算整数在内存中占用的二进制码的长度

    a = 5
    b = type(a)
    s = a.bit_length()
    print(s)

    三. 布尔值(bool)

    取值只有True, False. bool值没有操作.

    关于不同的类型之前的转换问题,

    str ----> int

    int(str)

    int ----> str 

    str(int)

    bool ----> str

    str(bool)

    bool ---> int 

    int(True)  这个值为1

    int(False) 这个值为0

    str(bool)

    str -----> bool

    bool(str)   这里注意只有空字符是False 其他字符是True  举例""  这种就是false ,或者s = None 这个也为false   

    另外关于这里空为false的问题,不止字符串,空元组,空列表都是false

    如bool([]) ------> False

    特点: 空:False .非空:True

    int -----> bool 

    bool(int)  这里注意的是0是False,其他值为True   

    (True 和1的效率问题:  1的效率高.)

    示例:

    while 1:
        print("哈哈")

    经典例题:

    循环输入用户名,当用户输入enter键时,跳出程序.

    while True:
        name = input("请输入用户的名字:")
        if not name:
            break
        else:
            print(name)

    四.  字符串

    索引     (字符串可以根据索引来取字符串里面的值)

    示例:

    s = "abcdefghijk"
    print(s[0])
    print(s[5])
    print(s[-1])   #倒数第一个
    print(s[-5])   #倒数第五个

    这里要注意的是:

    正向是从0开始,反向是从-1开始

    切片  (通过下标的索引来截取字符串的部分内容)

    示例:

    # s = "我想吃切糕.切糕没有芝麻好吃!"
    # print(s[2:4])  ## 切片. 顾头不顾腚. 前面的能取到. 后面的取不到
    # print(s[4:1])   ## 顺序是从左往右切
    # print(s[5:6])  # 把.给切出来
    # print(s[:6])  #从头开始切
    # print(s[6:])  #切到末尾
    # print(s[:]) #切取全部
    # print(s[6:99])#如果右边的数大于字符长度,那么切出右边全部.
    # print(s[-5:])#可以倒数,然后到最后
    

      

    切片也可以设置步长,跳着切.

    示例如下;

    s = "abcdef,ghijklmn"
    
    print(s[1:4:2])  #按步长来切
    print(s[-8:-1:2])  #也可以倒着切的
    print(s[-1:-5:-1])  #反着取字符
    
    print(s[8:1:-1])  #反着切数据
    print(s[8:1:-2])  #按步长反着切

    一些常用函数

    s.capitalize()  单词首字符大写,不支持中文.如果第一个单词里面有非首字母大写,那么这个大写会被改成小写.也就是单词只能首字母大写.

    s = "aleX and wusir gaoji"
    print(s.capitalize())  #第一个单词字母大写,如果第一个单词非第一个字符大写,那么这个会改为小写的.另外,这个只支持英文,不支持中文.

    s.title()  每个单词的首字母大写,而区分每个单词方式是通过特殊字符或者空格.这里中文也算特殊字符的

    s = "aleX_and wusir gaoji"
    print(s.title())  #title是每个单词都是首字母大写.而区分单词是通过空格,或者特殊字符来区分的.
    

      

    upper()  所有字母大写

    lower()所有字母小写

    name = "taiBai"
    print(name.upper())  # 把每个字母都变成大写
    print(name.lower())  # 把每个字母都变成小写
    
    #验证码示例
    code = "Fattr"
    re_code = input("请输入您的验证码")
    if code.upper()  == re_code.upper():
        print("您输入的验证码是对的!")
    else:
        print("您输入的验证码是错误的")
    swapcase()  大小变小写,小写变大写.
    示例如下:
    s = "alexAndEggonAndRiTian"
    print(s.swapcase())

    center(num,"")把字符拉长到num这个长度,然后把字符置中

    示例:

    s = "alex"
    print(s.center(10,"*"))
    
    #如果num是奇数的话,那边先填充左边,
    print(s.center(15,"*"))
    

      

    expandtabs()这个函数主要是把tab占位转为空格占位

    示例

    s = "al	wusir"
    print(s)
    print(s.expandtabs())

    strip()去除两边的空格

    lstriip()去除左边的空格

    rstrip()去除右边的空格

    strip("s")去除两边的s字符,

    示例如下:

    s = "    leon      elon. roy, gary"
    print(s.strip())  #去除两边的空格
    print(s.lstrip()) #去除左边的空格
    print(s.rstrip()) #去除右边的空格
    print(s.strip("gary"))

    replace("","")把第一个字符串替换成第二个字符串

    示例:

    s = "alex,wusir,taibai,eggon"
    print(s.replace(",","_"))

    split()  #字符串切割,

    示例如下:

    s = "leon_ron_ben_roy_alex"
    print(s.split("_"))

    下面是一些特殊用法

    示例:

    s = "leonronbenroyalex"
    print(s.split("leonronbenroyalex"))  #如果切的刀和字符串是一样的,那么最后会生成一个列表,里面有两个空元素
    print(s.split("马云"))  # 如果不存在这个字符的话,那么会列表返回这个字符串.
    print(s.split(""))#这种会报错

    split()可以传入切的次数.用法是这样的split("字符",2)

    示例:

    s = "leonronbenroyalex"#
    print(s.split("leonronbenroyalex"))  #如果切的刀和字符串是一样的,那么最后会生成一个列表,里面有两个空元素
    print(s.split("马云"))  # 如果不存在这个字符的话,那么会列表返回这个字符串.
    # print(s.split(""))#这种会报错
    print(s.split("ro",1)) #后面的数字表示切几刀

    split()切的刀如果是在开始或者结尾,那这生成的列表会产生空字符,这种如果是在前面切的,那么会在前面产生空元素.

    在开头和结尾如果出现了你的刀. 一定会出现空字符串

    示例

    s = "leonronbenroyalex"#
    print(s.split("leonronbenroyalex"))  #如果切的刀和字符串是一样的,那么最后会生成一个列表,里面有两个空元素
    print(s.split("马云"))  # 如果不存在这个字符的话,那么会列表返回这个字符串.
    # print(s.split(""))#这种会报错
    print(s.split("ro",1)) #后面的数字表示切几刀
    print(s.split("leo"))
    print(s.split("lex"))

    格式化输出 #这里主要用format来生成

    name = 133
    name2 = 24
    print("{}还帅,{}信吗?".format(name,name2))   #这是标准用法
    print("{1}很帅,{0}信吗?".format(name,name2))  #这里可以指定顺序
    print("{person}很帅,{person1}信吗?".format(person=name2,person1=name)) #这里可以传入变量,然后赋值的

    cout("s")这个是计算字符串中s出现的次数

    示例:

    s = "alex wusir taibai 女神"
    print(s.count("al"))

    find("s") 查找字符串中是否有s,如果有的话,返回这个字符的索引,没有的话,返回-1

    示例:

    s = "alex wusir taibai 女神"
    print(s.find("dd"))

    index("s") #index是求s在字符串中的索引号是多少,如果没有的话报错

    s = "alex wusir taibai 女神"
    print(s.index("tai"))

    条件判断

    startswith()和endswith()判断是字符串是否以括号中的内容开始的,如果是的.就是True如果不是False

    s = "alex wusir taibai 女神"
    print(s.endswith("alex"))

    isalnum()#判断是否是数字和字母

    isdigit() #判断是否是数字

    isalpha()#判断是否是字母

    s = "sddd女神"
    print(s.isalnum())

    判断字符串的长度

    len()  #这个注意,是系统内置函数,调用方法和print一样

    s = "123"

    len(s)

    迭代

    for w in s :

      代码块

    示例

    #计算s这个字符串有多少个数字
    s ="I am sylar, I'm 14 years old, I have 2 dogs!"
    count= 0
    for w in s:
        if w.isdigit() :
            count += 1
    
    print(count)

    关于判断str是否是小数的示例代码 :

    str = "-13.23"
    str = str.replace("-","")
    if str.startswith(".") or str.endswith(".") or not str.count(".") == 1:
        print("不是小数")
    elif str.count(".") == 1 :
        str = str.replace(".","")
        if str.isdigit():
            print("str是小数")
        else:
            print("不是小数")
  • 相关阅读:
    vue 定时器销毁的问题
    学习flutter,先学dart并安装dart sdk
    vue element-ui table 列表倒计时
    微信小程序使用symbol方式使用阿里图标库
    前端处理后台返回的图片控制台输出是乱码
    uniapp 扩展组件抽屉的使用
    C# 连接MYsql 报错Authentication plugin 'caching_sha2_password' cannot be loaded
    IE上传文件报错
    C#调用JavaHttp接口抛500内部错误
    easy ui 中grid级联操作
  • 原文地址:https://www.cnblogs.com/ahliucong/p/9123551.html
Copyright © 2011-2022 走看看