zoukankan      html  css  js  c++  java
  • python字符串用法

    一,数据类型的转换

    1常用的数据类型有int,str,bool三种;

    int是整型:一般的操作是查找数据的二进制长度bit_length()
    一般数据有:
    1)二进制:逢二进一
    2)十进制,(0-9)逢十进一
    3)八进制,(0-7)蜂八进一
    4)十六进制逢 (0-F)十六进一
    例:
    a=10 
    print(a.bit_length())#就能得到a这个变量的值的二进制长度

    二,数据类型的转换

    结论1把x转换成y类型 y(x)
    例子:print(bool(-1))#将布尔值转变成数据类型
    print(int(a))#将a转变成数据类型
    print(str(a)#将a转变成字符类型 
    结论2空的东西是False, 非空的东西是True,
    false: False: 0,'',[],{},set(),tuple(),None(真空)
    print(bool({}) #false

    三,索引切片

    1,在python和其他开发语言中我们的索引都是从零开始算的

     反向 -7 -6-5 -4 -3-2 -1
     正向  0  1 2  3  4 5  6
     s = "文 能 提 笔 安 天 下"
     print(s[3])
     print(s[7]) # index out of range 超过了索引的范围
     print(s[-8]) # 反向索引 - 反向
    切片 从字符串中获取新字符串.例子:
    s = "银王喜欢和金王一起讨论污王"
    s1 = s[5]+s[6]+s[7]+s[8]
    print(s1)
    s[start: end] 从start切到end。 但是不包含end. 顾头不顾尾
    s2 = s[5:9] #  从5-9 没有9
    print(s2)
    print(s[3:7]) # 欢和金王
    print(s[5:]) # 从5开始, 到末尾
    print(s[:5]) # 从头开始到5结束
    print(s[:]) # 从头到尾
    print(s[5:3]) # 默认的方向是从左到右.
    s[start: end: step] step如果是正数 从左到右。 如果是负数就是从右到左
    s = "金毛狮王谢逊紫衫龙王黛绮丝"
    print(s[3:1:-1]) # 可以从右往左切片
    print(s[1:8:3])  #从左往右切且各三个取一个值
    print(s[::-1])

    总结:

    s[start: end: step]
    start:  起始位置
    end:  结束为止。取不到
    step:  步长。 每隔xx个取1个。 默认是1 如果step是-1 从右往左取值

    四,字符串操作

    1 upper() 全部转化成大写字母,loswer全部转换成小写,capitalize()首字母大写,title()每个单词首字母大写,swapcase()大写变小写小写变大写
    2 strip() 去掉左右两段的空白(空格,
    , 	)
    3 replace(old, new) 字符串替换
    4 split() 切割. 得到的结果是一个列表.
    5 startswith() 判断是否以xxx开头,endswith()判断以什么结尾
    6 find() 查找。如果找到了。 返回索引。如果找不到返回-1
    7 len() 内置函数,求字符串长度
    8 count()计数计算字符或数字出现的次数
    9 isdigit(),判断是否是数字

    例子

    2.有字符串s = "123a4b5c"
    1)通过对s切⽚形成新的字符串s1,s1 = "123"
        s="123a4b5c"
        s1=s[0:3]
        print(s1)
    2)通过对s切⽚形成新的字符串s2,s2 = "a4b"
        s="123a4b5c"
        s2=input(s[3:6])
        print(s2)
    3)通过对s切⽚形成新的字符串s3,s3 = "1345"
        s="123a4b5c"
        s3=s[0:8:2]
        print(s3)
    4)通过对s切⽚形成字符串s4,s4 = "2ab"
        s="123a4b5c"
        s4=s[1:7:2]
        print(s4)
    5)通过对s切⽚形成字符串s5,s5 = "c"
        s="123a4b5c"
        s5=s[-1]
        print(s5)
    6)通过对s切⽚形成字符串s6,s6 = "ba2"
        s="123a4b5c"
        s6=s[-3:-8:-2]
        print(s6)
    3.使⽤while和for循环分别打印字符串s="asdfer"中每个元素。
    #(while循环)
    s="asdfer"
    index=0
    while index<len(s):
        print(s[index])
        index+=1
    #(for循环)
        # s="asdfer"
        # for i in s:
        #     print(i)
    4.使⽤for循环对s="asdfer"进⾏循环,但是每次打印的内容都是"asdfer"。
     s="asdfer"
        for i in s:
            print(i,s)
    5.使⽤for循环对s="abcdefg"进⾏循环,每次打印的内容是每个字符加上sb,
     s="abcdefg"
        for i in s:
            print(i +"sb")
    作业及默写
    1.有变量name = "aleX leNb" 完成如下操作:
    1)移除 name 变量对应的值两边的空格,并输出处理结果
        name = "alex leNb"
        print(name.strip())
    2)移除name变量左边的"al"并输出处理结果
        name = "alex leNb"
        print(name.strip("al"))
    3)移除name变量右⾯的"Nb",并输出处理结果
        name= "alex leNb"
        print(name.strip("Nb"))
    4)移除name变量开头的a"与最后的"b",并输出处理结果
        name="alex leNb"
        print(name.strip("a"+"b"))
    5)判断 name 变量是否以 "al" 开头,并输出结果
        name="alex leNb"
        n=name.startswith("al")
        if n == True:
            print("name is al start")
        else:
            print("is not al start")
    6)判断name变量是否以"Nb"结尾,并输出结果
        name = "alex leNb"
        n=name.endswith("Nb")
        if n== True:
            print("是以Nb结尾")
        else:
            print("不是以Nb结尾")
    7)将 name 变量对应的值中的 所有的"l" 替换为 "p",并输出结果
        name = "alex leNb"
        print(name.replace("l","p"))
    8)将name变量对应的值中的第⼀个"l"替换成"p",并输出结果
        name="alex leNb"
        n=name.replace("al","ap")
        print(n)
    9)将 name 变量对应的值根据 所有的"l" 分割,并输出结果。
        name="alex leNb"
        print(name.split("l"))
    10)将name变量对应的值根据第⼀个"l"分割,并输出结果。
        print(name.replace("al","ap").split("p"))
    11)将 name 变量对应的值变⼤写,并输出结果
        name="alex leNb"
        print(name.upper())
    12)将 name 变量对应的值变⼩写,并输出结果
        name="alex leNb"
        print(name.lower())
    13)将name变量对应的值⾸字⺟"a"⼤写,并输出结果
        name="alex leNb"
        print(name.capitalize())
        print(name.title())
        print(name.swapcase())
    大写变小写,小写变大写
        name="alex leNb"
        print(name.upper())
    14)判断name变量对应的值字⺟"l"出现⼏次,并输出结果
        name="alex leNb"
        print(name.count("l"))
    15)如果判断name变量对应的值前四位"l"出现⼏次,并输出结果
        name="alex leNb"
        i=name[0:4]
        print(i.count("l"))
    16)从name变量对应的值中找到"N"对应的索引(如果找不到则报错),并输出结果
        name="alex leNb"
        print(name.index("N"))
    17)从name变量对应的值中找到"N"对应的索引(如果找不到则返回-1)输出结果
        name="alex leNb"
        print(name.find("N"))
    18)从name变量对应的值中找到"X le"对应的索引,并输出结果
        name="alex leNb"
        print(name.find("x le"))
    19)请输出 name 变量对应的值的第 2 个字符?
        name="alex leNb"
        print(name.find("l"))
    20)请输出 name 变量对应的值的前 3 个字符?
        name = "alex leNb"
        print(name.find("a"),name.find("l"),name.find("e"))
    21)请输出 name 变量对应的值的后 2 个字符?
        name="alex leNb"
        print(name.find("N"),name.find("b"))
    22)请输出 name 变量对应的值中 "e" 所在索引位置?
        name="alex leNb"
        print(name.find("e"))
    例如:asb, bsb,csb,...gsb。
    6.使⽤for循环对s="321"进入循环,打印的内容依次是:"倒计时3秒","倒计时
    2秒","倒计时1秒","出发!"。
    s="321"
    for t in s:
        print("倒计时" + t + "s")
    else:
        print("出发")
    7,实现⼀个整数加法计算器(两个数相加):
    如:content = input("请输⼊内容:") ⽤户输入:5+9或5+ 9或5 + 9,然后进
    行分割再进⾏计算。
    content=input("请输入内容")
    n=content.split("+")
    s=0
    for i in n:
        s += int(i)
        print(s)
    8,升级题:实现⼀个整数加法计算器(多个数相加):
    如:content = input("请输⼊内容:") 用户户输入:5+9+6 +12+ 13,然后进行计算
    content=input("请输入内容")
    n=content.split("+")
    s=0
    for i in n:
        s += int(i)
        print(s)
    分割再进⾏计算。
    9,计算⽤户输⼊的内容中有⼏个整数(以个位数为单位)。
    如:content = input("请输入内容:") # 如fhdal234slfh98769fjdla
    content=input("请输入内容")
    count=0
    for b in content:
        if b.isdigit()==1:
            count=count+1
    print(count)

    五迭代

    for 变量 in 可迭代对象:
    循环体(break,continue)
    else:

    例子

    写代码,完成下列需求:
    用户可持续输出(用while循环),用户使用的情况:
    输⼊A,则显示走大路回家,然后在让用户户进二步选择:
    是选择公交车,还是步⾏?
    选择公交车,显示10分钟到家,并退出整个程序。
    选择步⾏,显示20分钟到家,并退出整个程序。
    输⼊B,则显示⾛⼩路回家,并退出整个程序。
    输⼊C,则显示绕道回家,然后在让用户进行步选择:
    是选择游戏厅玩会,还是⽹吧?
    选择游戏厅,则显示 ‘一个半⼩时到家,爸爸在家,拿棍等你。’并让其
    重新输⼊A,B,C选项。
    选择⽹吧,则显示‘两个⼩时到家,妈妈已做好了战斗准备。’并让其重
    新输⼊A,B,C选项。
     while True:
            user=input("请输入一个字母A或B或C:")
            if user=="C":
                print("绕道回家")
                use1 = input("请问是游戏厅还是网吧玩会:")
                if use1 =="游戏厅":
                    print("一个半小时到家,爸爸在家,拿棍等你。")
                elif use1 == "网吧":
                    print("两个小时到家,妈妈已做好了战斗准备。")
            elif user=="A":
                print("走大路回家")
                use2=input("请问坐公交还是步行:")
                if use2 == "公交车" :
                    print("10分钟到家")
                    break
                elif use2 =="步行":
                    print("20分钟到家")
                    break
            else:
                print("走小路回家")
                break
    写代码:计算 1 - 2 + 3 ... + 99 中除了88以外所有数的总和?
    i=1
    sumi=0
    j=1
    sumj=0
    while i<99 and j<99:
        sumi=sumi+i
        j = i + 1
        i += 2
        if j==88:
            continue
        sumj = sumj + j
    print(sumi-sumj)(升级题)判断⼀句话是否是回⽂. 回⽂: 正着念和反着念是⼀样的. 例如, 上海
    ⾃来⽔来⾃海上(升级题)
        while True:
            wen = input("请输入一句话:")
            if wen[0:] == wen[-1::-1] :
                print("这句话是回文")
            else:
                print("不是回文")
    13. 输⼊一个字符串,要求判断在这个字符串中⼤写字⺟,小写字⺟,数字,
    其它字符共出现了多少次,并输出出来
     content=input("请输入内容")
        count=0
        cont1=0
        cont2=0
        cont3=0
        for a in content:
            if a.isdigit()==1:
                count=count+1
        # print(count)
            elif a.islower()==1:
                cont1 += 1
        # print(count1)
            elif a.isupper()==1:
                cont2 +=1
        #print(cont2)
            else:
                cont3 +=1
        print("数字",count,"个")
        print("小写字母",cont1,"个")
        print("大写字母",cont2,"个")
        print("其他字符", cont3,"个")
    

    14给出百家姓. 然后用户输入一个人的名字. 判断这个姓是否是百家姓中的姓氏

    first_name=
    '''赵钱孙李,周吴郑王。
    冯陈褚卫,蒋沈韩杨。
    朱秦尤许,何吕施张。
    孔曹严华,金魏陶姜。
    戚谢邹喻,柏水窦章。
    云苏潘葛,奚范彭郎。
    鲁韦昌马,苗凤花方。
    俞任袁柳,酆鲍史唐。
    费廉岑薛,雷贺倪汤。
    滕殷罗毕,郝邬安常。
    乐于时傅,皮卞齐康。
    伍余元卜,顾孟平黄。
    和穆萧尹,姚邵湛汪。
    祁毛禹狄,米贝明臧。
    计伏成戴,谈宋茅庞。
    熊纪舒屈,项祝董梁。
    杜阮蓝闵,席季麻强。
    贾路娄危,江童颜郭。
    梅盛林刁,钟徐邱骆。
    高夏蔡田,樊胡凌霍。
    虞万支柯,昝管卢莫。
    经房裘缪,干解应宗。
    丁宣贲邓,郁单杭洪。
    包诸左石,崔吉钮龚。
    程嵇邢滑,裴陆荣翁。
    荀羊於惠,甄曲家封。
    芮羿储靳,汲邴糜松。
    井段富巫,乌焦巴弓。
    牧隗山谷,车侯宓蓬。
    全郗班仰,秋仲伊宫。
    宁仇栾暴,甘钭厉戎。
    祖武符刘,景詹束龙。
    叶幸司韶,郜黎蓟薄。
    印宿白怀,蒲邰从鄂。
    索咸籍赖,卓蔺屠蒙。
    池乔阴鬱,胥能苍双。
    闻莘党翟,谭贡劳逄。
    姬申扶堵,冉宰郦雍。
    卻璩桑桂,濮牛寿通。
    边扈燕冀,郏浦尚农。
    温别庄晏,柴瞿阎充。
    慕连茹习,宦艾鱼容。
    向古易慎,戈廖庾终。
    暨居衡步,都耿满弘。
    匡国文寇,广禄阙东。
    欧殳沃利,蔚越夔隆。
    师巩厍聂,晁勾敖融。
    冷訾辛阚,那简饶空。
    曾毋沙乜,养鞠须丰。
    巢关蒯相,查后荆红。
    游竺权逯,盖益桓公。
    万俟司马,上官欧阳。
    夏侯诸葛,闻人东方。
    赫连皇甫,尉迟公羊。
    澹台公冶,宗政濮阳。
    淳于单于,太叔申屠。
    公孙仲孙,轩辕令狐。
    钟离宇文,长孙慕容。
    鲜于闾丘,司徒司空。
    丌官司寇,仉督子车。
    颛孙端木,巫马公西。
    漆雕乐正,壤驷公良。
    拓跋夹谷,宰父谷梁。
    晋楚闫法,汝鄢涂钦。
    段干百里,东郭南门。
    呼延归海,羊舌微生。
    岳帅缑亢,况郈有琴。
    梁丘左丘,东门西门。
    商牟佘佴,伯赏南宫。
    墨哈谯笪,年爱阳佟。
    第五言福,百家姓终。'''

    #for循环
    name = input("请输入用户名") for i in first_name : if i == name[0] : break print(i,"在百家姓中") else: print("不在百家姓中")
    #while循环
    while True: name = input("请输入用户名") if name[0] in first_name : print("在百家姓中") continue else: print("不在百家姓中") 
    六,格式化输出
    制作趣味模板程序需求:等待⽤户输⼊名字、地点、爱好,根据⽤户的名
    字和爱好进⾏任意现实 如:敬爱可亲的xxx,最喜欢在xxx地⽅⼲xxx
    aihao="和蔼可亲的%s,最喜欢在%s,干%s" %("刘传盛","小树林","谈恋爱")
    love="{}的演的电影,是{},{}很喜欢" .format("周星驰","幽默的","大家")
    AV="{0},{1},{2},{3},都是{4},受广大{5}喜欢" .format("苍井空","泷泽萝拉","小泽玛丽牙","波多野结衣","日本明星","宅男")
    print(AV)
    print(love)
    print(aihao)
    
    
  • 相关阅读:
    nullnullConnecting with WiFi Direct 与WiFi直接连接
    nullnullUsing WiFi Direct for Service Discovery 直接使用WiFi服务发现
    nullnullSetting Up the Loader 设置装载机
    nullnullDefining and Launching the Query 定义和启动查询
    nullnullHandling the Results 处理结果
    装置输出喷泉装置(贪心问题)
    数据状态什么是事务?
    停止方法iOS CGD 任务开始与结束
    盘文件云存储——金山快盘
    函数标识符解决jQuery与其他库冲突的方法
  • 原文地址:https://www.cnblogs.com/liucsxiaoxiaobai/p/9822516.html
Copyright © 2011-2022 走看看