• python 中的 字符串 列表 元祖 字典


    str

    1 格式化输出

    %法

    第一种 %s+tuple %d+tuple
    name = input('请输入你的姓名:')
    age = input('请输入你的年龄:')
    hobby = input('请输入你的爱好:')
    msg = '我叫%s,今年%d岁,爱好%s' % (name,int(age),hobby)
    

    第二种 %(name)+dict

    dic = {'name':'老男孩','age':51,'hobby':'无所谓'}
    msg = '我叫%(name)s,今年%(age)d岁,爱好%(hobby)s' % dic
    print(msg)
    

    note在格式化输出中单纯的显示% 用%% 解决

    name = input('请输入你的姓名:')
    age = input('请输入你的年龄:')
    msg = '我叫%s,今年%d岁,学习进度为1%%' % (name,int(age))
    print(msg)
    

    {}+format

    三种用法

    第一种用法:{}+ format +()

    s = '我叫{},今年{},爱好{}'.format('MT',18,'母牛')
    print(s)
    

    第二种用法:{num}+format+()

    s = '我叫{0},今年{1},爱好{2},我依然叫{0},今年还是{1}'
        .format('MT',18,'母牛')
    print(s)
    

    第三种 键值对:{name}+format+dict

    s = '我叫{name},今年{age},爱好{hobby}'.format(age=18, name='MT', hobby='闷儿')
    print(s)
    

    2 str 索引与切片

    索引与切片 s[起始索引:截止索引:步长]

    s =' 我喜欢python'

    索引

    s1 = s[0]
    print(s1)
    s2 = s[2]
    print(s2)
    s3 = s[-1]
    print(s3)
    

    切片 顾头不顾腚

    s4 = s[0:3]
    print(s4)
    s41 = s[:3]
    print(s41)
    s5 = s[3:7]
    print(s5)
    s6 = s[:]
    print(s6)
    

    步长

    s7 = s[:5:2]
    print(s7)
    s8 = s[:7:3]
    print(s8)
    

    反向步长

    s7 = s[-1:-5:-1]
    print(s7)
    

    常用操作方法

    *** 首字母大写,其他字母小写

    s = 'python'
    s1 = s.capitalize()
    print(s1)
    

    ***全部大写,全部小写

    s2 = s.upper()
    s3 = s.lower()
    print(s2,s3)
    
    code = 'aeQu'.upper()
    
    your_code = input('请输入验证码').upper()
    if your_code == code:
    	print('验证码输入成功')
    

    * 居中center

    s = 'pthon'
    s4 = s.center(30)
    print(s4)
    s4 = s.center(30,'*')
    print(s4)
    

    **大小写翻转

    s5 = s.swapcase()
    print(s5)
    s = 'woshiwangqingbin'
    

    每个单词的首字母大写(非字母隔开)

    s6 =s.title()
    print(s6)
    

    ***判断以什么为开头,以什么为结尾。

    s = 'wangqingbin'
    startswith endswith()
    s7 = s.startswith('w')
    s71 = s.startswith('wq')
    s72 = s.startswith('wang')
    s73 = s.startswith('wangqing')
    s74 = s.startswith('q', 4)
    print(s74)
    print(s7,s71,s72,s74)
    
    

    ***去除首尾的 空格,换行符 ,tab

    去除左边的空格,换行符,tab lstrip()

    去除右边的空格,换行符,tab rstrip()

    去除两边的空格strip()

    s = '  wangqingbin '
    s = '
    wangqingbin	'
    print(s)
    print(s.strip())
    print(s.lstrip())
    print(s.rstrip())
    
     name = input('请输入用户名:').strip()
     if name == 'wangqingbin':
         print(666)
         
     s = ',wangqingbin'
     print(s.strip(',wang'))
    

    *** find index 通过元素找索引

    find

    S.find(sub[, start[, end]]) -> int or Return -1 on failure.

    s = 'wang'
    print(s.find('w'))
    print(s.find('a',3))
    print(s.find('x'))
    

    index

    raise ValueError on failure

    print(s.index('x'))
    

    *** count 寻找元素出现的个数 可切片

    s = 'alexex'
    print(s.count('e'))
    print(s.count('ex'))
    

    ***replace 替换

    s = ’123王庆斌王庆斌123‘
    s1 = s.replace('王庆斌', '小粉嫩')
    print(s1)
    s2 = s.replace('王庆斌', '小粉嫩',1)
    print(s2)
    s3 = s.replace('王庆斌', 'sb')
    print(s3)
    

    ***** split 分割 str ---> list

    s = 'wang qing bin'
    print(s.split(' '))
    s1 = 'wang,qing,bin'
    print(s1.split(','))
    s2 = 'wangaqingsabin'
    print(s2.split('a'))
    s3 = 'wangaqingsabin'
    print(s3.split('a',1))  # 分割次数
    

    * isxxx

    print(name.isalnum()) #字符串由字母或数字组成
    print(name.isalpha()) #字符串只由字母组成
    print(name.isdigit()) #字符串只由数字组成

    name='123a'
    if name.isdigit():
        name = int(name)
        print(name,type(name))
    else:
        print('您输入的由非数字元素')
    

    *****len

    s = 'fdsafdsaf'
    print(len(s))
    count = 0
    s = 'fdsafdsag'
    print(s[0])
    print(s[1])
    print(s[2])
    while count < len(s):
        print(s[count])
        count += 1
    for i in s:
        print(i)
    

    list

    索引,切片,步长

    li = ['wang', 123, True, (1, 2, 3, 'bin'), [1, 2, 3, 'qing',], {'name':'wang'}]
    print(li[0])
    print(li[2])
    print(li[1:4])
    print(li[:5:2])
    print(li[-1:-3:-1])
    li = [1,'a','b','a',2,3,'wang']
    

    append
    li.append('bin')
    print(li.append('bin'))
    li.append([1,2,3])
    
    name_list = ['wang' ,'qing','bin','cute','pi']
    while True:
        name = input('请输入新员工姓名:Q/q')
        if name.upper() == 'Q':break
        else:
            name_list.append(name)
            print('已成功添加新员工%s' % name)
    print(name_list)
    print(li)
    

    >>> a=[1,2,3]
    >>> b=[2,3,4]
    >>> print(id(a))
    60916920
    >>> print(id(a+b))
    61421568
    >>>a+b
    [1,2,3,2,3,4]
    

    insert 插入

    li.insert(2,'小三')
    print(li)
    extend 迭代添加,到最后
    li.extend('ABC')
    li.extend([1,2,3])
    print(li)
    

    pop 按索引删除

    li.pop() # 默认删除最后一个
    li.pop(1) # 默认删除最后一个

    s = li.pop(1)
    print(s)
    print(li)
    
    remove
    li.remove('a')
    print(li)
    

    clear 清空内容

    li.clear()
    print(li)
    

    del 删除列表 切片删除

    删除列表
    del li
    print(li)
    
    切片删除
    del li[:3]
    del li[:3:2]
    print(li)
    

    改 按照索引改

    print(li[1])
    li[1] = 'A'
    print(li[1])
    li[1] = [11,22,33,44]
    print(li)
    

    按照切片去改

    li[:3] = 'Q'
    print(li)
    li[:3] = 'sonesb'
    print(li)
    li[:3] = [11,22,33,44]
    print(li)
    

    索引,切片步长,查看

    print(li[:3])
    

    for 循环

    for i in li:
        print(i)
    l1 = [1, 2, 1, 7, 5, 4, 9, 8, 3]
    

    index 通过元素找索引

    print(li.index('a'))
    

    其他操作方法:

    sort 从小到大,正向排序

    l1.sort()
    print(l1)
    从大到小,反向排序
    l1.sort(reverse=True)
    print(l1)
    

    翻转reverse

    l1.reverse()
    print(l1)
    

    len 长度

    print(len(l1))
    li = [1,'a','b','a',2,3,'少年阿宾']
    count
    print(l1.count(1))
    

    tuple

    tu = (1,2,'wang','qing')
    print(tu[:2])
    print(tu[2])
    for i in tu:
       print(i)
    

    儿子不能改,孙子可能改

    tu1 = (1,2,'alex',[1,'cte'],(1,2,3),'binge')
    tu1[3].append('1') 
    print(tu1)
    li = [1,(1,2,3)]
    

    可加(重新返回)

    >>> a=(1,2,3)
    >>> b=(2,3,4)
    >>> a+b
    (1, 2, 3, 2, 3, 4)
    

    count()

    len()

    index()

    note: range 当成一个数字列表,范围

    for i in range(100): # [0,1,2,。。。99]
        print(i)
    for i in range(0,10,2):  # [0,1,2,。。。99]
        print(i)
    for i in range(10,0,-1):  # [0,1,2,。。。99]
        print(i)
    li = [2,3,'12',4,5]
    for i in li:
        print(li.index(i))
    for i in range(0,len(li)):
        print(i)
    li = [1,2,3,['12','123','binge'],4]
    '''
    for i in li:
        print(i)
        for ....
    '''
    

    dict

    dic = {"name":"wqbin",
           "age":18,
           "sex":"male",
           }
    print(dic)
    

    哈希表:
    print(hash('name'))
    print(hash('fsagffsadgsdafgfdsagsadfgfag'))
    print(hash('age'))

    第一种: 有则覆盖,无则添加

    dic['hobby'] = 'girl'
    print(dic)
    dic['name'] = 'wusir'
    print(dic)
    

    第二种 setdeafult 无则添加,有则不变。

    dic.setdefault('hobby')
    dic.setdefault('hobby','girl')
    dic.setdefault('name','ritian')
    print(dic)
    

    pop  有返回值
    print(dic.pop('age'))
    print(dic)
    dic.pop('hobby')  # 报错
    print(dic.pop('hobby', None))  # 返回你设定的值
    

    clear() 清空

    dic.clear()
    print(dic)
    

    del

    del dic
    print(dic)
    del dic['name']
    print(dic)
    dic.popitem()  # 随机删除 有返回值
    print(dic.popitem())
    print(dic)
    

    dic['name'] = '斌哥'
    print(dic)
    两个字典的改
    dic = {"name":"逼格","age":18,"sex":"male"}
    dic2 = {"name":"斌哥","weight":75}
    dic2.update(dic)  # 将dic键值对,覆盖并添加到dic2
    print(dic)
    print(dic2)
    

    print(dic['name'])
    print(dic['name1']) # 报错
    
    print(dic.get('name'))
    print(dic.get('name1'))  # 默认返回None
    print(dic.get('name1','没有此键值对'))  # 默认返回None
    

    其他方法:

    keys() values() items()
    print(dic.keys(),type(dic.keys()))
    print(dic.keys())
    

    keys()

    for i in dic.keys():
        print(i)
    for i in dic:
        print(i)
    li = list(dic.keys())
    print(li)
    

    values()

    print(dic.values())
    for i in dic.values():
        print(i)
    

    items()

    print(dic.items())
    for i in dic.items():
        print(i)
        
    特殊类型 dict 转化 成list
    print(list(dic.keys()))
    

    概念:分别赋值

    a,b = 2,3
    print(a,b)
    a,b = (2,3)
    print(a,b)
    a,b = [2,3]
    print(a,b)
    a = 4 ,b = 5
    a = 4
    b = 5
    a,b = b,a
    print(a,b)
    print(dic.items())
    for k,v in dic.items():
        print(k,v)
    

    字典的嵌套

    dic = {"name_list":['张三','lisi','隔壁王叔叔'],
    'dic2':{'name':'阿宾','age':12},
    }
    1 ,给列表追加一个元素:'旺旺'

    l1 = dic['name_list']
    l1.append('旺旺')
    dic['name_list'].append('旺旺')
    print(dic)
    

    2,给列表lisi全部大写

    print(dic['name_list'][1].upper())
    dic['name_list'][1] = dic['name_list'][1].upper()
    print(dic)
    

    3,给dic2 对应的字典添加一个键值对:hobby:girl.

    dic['dic2']['hobby'] = 'girl'
    print(dic)
    

    练习1

    1、使用while循环输入 1 2 3 4 5 6 8 9 10

    2、求1-100的所有数的和

    sum = 0
    count = 1
    while count < 101:
    	sum = sum + count
    	count += 1  # count = count + 1
    	print(sum)
    

    3、输出 1-100 内的所有奇数

    count = 1
    while count < 101:
    	print(count)
        count += 2
        
    count = 1  
    while count < 101:
        if count % 2 == 1:
        print(count)
        count += 1
    

    4、求1-2+3-4+5 ... 99的所有数的和

    sum = 0
    count = 1
    while count < 100:
        if count % 2 == 0:
            sum -= count
        else:
            sum += count
        count += 1
       	print(sum)
    

    5、用户登陆(三次机会重试)

    username = 'OldBoy'
    password = '123'
    i = 0
    while i < 3:
        name = input('请输入用户名:')
        pwd = input('请输入密码:')
        if name == username and pwd == password:
            print('登陆成功')
            break
        else:
            print('用户名或密码错误')
            i += 1
    

    6、写代码:计算 1 - 2 + 3 ... + 99 中除了88以外所有数的总和?

    sum = 0
    count = 0
    while count < 99:
        count += 1
        if count == 88:
            continue
        if count % 2 == 0:
            sum -= count
        else:
            sum += count
    print(sum)
    

    7、用户登陆(三次输错机会)且每次输错误时显示剩余错误次数(提示:使字符串格式化)

    username = 'wqb'
    password = '123'
    i = 0
    while i < 3:
        name = input('请输入用户名:')
        pwd = input('请输入密码:')
        if name == username and pwd == password:
            print('登陆成功')
            break
        else:
            print('用户名或密码错误,还剩%s机会' % (2-i))
            i += 1
            if i == 3:
                choice = input('是否还想在试试?Y')
                if choice == 'Y':
                    i = 0
    else:
        print('还要不要脸了....')
    

    8、实现一个整数加法计算器(两个数相加):
    如:content = input(‘请输入内容:’)
    如用户输入:5+9或5+ 9或5 + 9,然后进行分割再进行计算。

    content = input("请输入内容:").strip().split('+')
    print(content)
    num = int(content[0]) + int(content[1])
    print(num)
    

    9,计算用户输入的内容中有几个整数。
    如:content = input(‘请输入内容:’) # 如fhdal234slfh98769fjdla

    content = input('请输入内容:')
    count = 0
    for i in content:
        if i.isdigit():
            count += 1
    print(count)
    
    content = input("input:")
    n = len(content)
    m = 0
    ls = []
    s = ''
    while m < n:
        if content[m].isdigit():
            s = s+content[m]
            if not content[m+1].isdigit():
                ls.append(int(s))
                m+=1
                s = ''
        else:
            m+=1
    
    for x in ls:
        print(ls)
    
    content = input("请输入你想输入的内容:")
    s = ''
    ls = []
    n = len(content)
    m = 0
    num = 0
    while m<n:
        if content[m].isdigit():
            s = s + content[m]
            if not content[m+1].isdigit():
                ls.append( int(s))
                s = ''
            m+=1
        else:
            m+=1
    
    print(len(ls))
    for x in ls:
        print(type(x))
        print(x)
    s = 'fdsafdsa'
    for i in s:
        print(i)
    else:
        print(666)
    

    10、写代码,有如下列表,按照要求实现每一个功能。
    lis = [2,3,'k',['qwe',20,['k1',['tt',3,’1’]],89],’ab’,’adv’]
    1)将列表lis中的’tt’变成大写(用两种方式)。
    2)将列表中的数字3变成字符串’100’(用两种方式)。
    3)将列表中的字符串’1’变成数字101(用两种方式)。

    lis = [2,3,'k',['qwe',20,['k1',['tt',3,'1']],89],'ab','adv']
    lis[3][2][1][0] = 'TT'
    print(lis)
    lis[3][2][1][0] = lis[3][2][1][0].upper()
    print(lis)
    lis[3][2][1][1] = '100'
    print(lis)
    lis[3][2][1][1] = str(lis[3][2][1][1] + 97)
    print(lis)
    lis[3][2][1][2] = int(lis[3][2][1][2]) + 100
    print(lis)
    lis[3][2][1][2] = int(lis[3][2][1][2] + '01')
    print(lis)
    

    11、查找列表li中的元素,移除每个元素的空格, for i.strip()
    并找出以’A’或者’a’开头,
    并以’c’结尾的所有元素,
    并添加到一个新列表中,最后循环打印这个新列表。
    li = [‘taibai ’,’alexC’,’AbC ’,’egon’,’ Ritian’,’ Wusir’,’ aqc’]
    for

    li = ['tso ','aC','AbC ','on','ck',' sir','  aqc']
    l1 = []
    for i in li:
        i = i.strip()
        if i[0].upper() == 'A' and i[-1] == 'c':
            l1.append(i)
    print(l1)
    l1 = []
    for i in li:
        i = i.strip()
        if (i.startswith('A') or i.startswith('a')) and i.endswith('c'):
            l1.append(i)
    print(l1)
    

    12、开发敏感词语过滤程序,提示用户输入评论内容,
    如果用户输入的内容中包含特殊的字符:
    敏感词列表 li = ["苍老师","东京热","武藤兰","波多野结衣"]
    则将用户输入的内容中的敏感词汇替换成***,并添加到一个列表中;
    如果用户输入的内容没有敏感词汇,则直接添加到上述的列表中

    li = ['苍老师','东京热','武藤兰','波多野结衣']
    ret = input('input:')           # ***东京热武藤兰波多野结衣小泽玛利亚松岛枫
    
    l1 = []
    for i in li:
        ret = ret.replace(i,"*"*len(i))  # ******武藤兰波多野结衣小泽玛利亚松岛枫
    l1.append(ret)
    print(l1)
    lis = []
    for i in li:
        ret = ret.replace(i,len(i) * '*')
    lis.append(ret)
    print(lis)
    

    13

    av_catalog = {
        "欧美":{
            "www.youporn.com": ["很多免费的,世界最大的","质量一般"],
            "www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"],
            "letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"],
            "x-art.com":["质量很高,真的很高","全部收费,屌丝请绕过"]
        },
        "日韩":{
            "tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","verygood"]
        },
        "大陆":{
            "1024":["全部免费,真好,好人一生平安","服务器在国外,慢"]
        }
    }
    

    1,给此 ["很多免费的,世界最大的","质量一般"]列表第二个位置插入一个元素:'量很大'。

    av_catalog['欧美'][ "www.youporn.com"].insert(1,'量很大')
    print(av_catalog)
    

    2,将此 ["质量很高,真的很高","全部收费,屌丝请绕过"]列表的 "全部收费,屌丝请绕过" 删除。

    av_catalog['欧美']["x-art.com"].remove("全部收费,屌丝请绕过")
    print(av_catalog)
    

    3,将此 ["质量很高,真的很高","全部收费,屌丝请绕过"]列表的 "全部收费,屌丝请绕过" 删除。

    4,将此["质量怎样不清楚,个人已经不喜欢日韩范了","verygood"]列表的 "verygood"全部变成大写。
    5,给 '大陆' 对应的字典添加一个键值对 '1048' :['一天就封了']
    6,删除此"letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"]键值对。
    7,给此["全部免费,真好,好人一生平安","服务器在国外,慢"]列表的第一个元素,加上一句话:'可以爬下来'

    av_catalog['大陆']['1024'][0] = av_catalog['大陆']['1024'][0] + '可以爬下来'
    print(av_catalog)
    av_catalog['大陆']['1024'][0] += '可以爬下来'
    print(av_catalog)
    

    14、有字符串"k :1|k1 :2|k2 :3|k3 :4" 处理成字典 {'k':1,'k1':2....}

    s = 'k:1|k1:2|k2:3|k3:4'
    li = s.split('|')
    dic = {}
    for i in li:
        dic[i.split(':')[0]] = int(i.split(':')[1])
    print(dic)
    dic = {'k':1,'k1':2}
    dic = {}
    for i in s.strip().split('|'):  # ['k:1','k1:2'。。。。]
        i = i.strip().split(':')  # ['k ','1']
        dic[i[0].strip()] = int(i[1])
    print(dic)
    

    15、元素分类

    有如下值li= [11,22,33,44,55,66,77,88,99,90],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。即: {'k1': 大于66的所有值列表, 'k2': 小于66的所有值列表}

    dic = {'k1':[],'k2':[]}
    li= [11,22,33,44,55,77,88,99,90]
    for i in li:
        if i > 66:
           dic['k1'].append(i)
        else:
            dic['k2'].append(i)
    print(dic)
    li= [11,22,33,44,55,77,88,99,90]
    dic = {}
    for i in li:
    	····
    

    16、输出商品列表,用户输入序号,显示用户选中的商品
    商品 li = ["手机", "电脑", '鼠标垫', '游艇']
    要求:
    1:页面显示 序号 + 商品名称,如:
    1 手机
    2 电脑 …

    2: 用户输入选择的商品序号,然后打印商品名称
    3:如果用户输入的商品序号有误,则提示输入有误,并重新输入。
    4:用户输入Q或者q,退出程序。

    li = ["手机", "电脑", '鼠标垫', '游艇']

    while True:
        for i in li:
            print('{}	{}'.format(li.index(i)+1,i))
        num = input('请输入商品序号:q/Q退出').strip()
        if num.isdigit():
            num = int(num)
            if num > 0 and num <= len(li):
                print(li[num - 1])
            else:
                print('您输入的选项,超出范围,请重新输入')
        elif num.upper() == 'Q':break
        else:
            print('输入的有非数字,请重新输入')
    
  • 相关阅读:
    【马化腾如何工作】
    NOKIA格机方法
    C和C++资源
    JSP/Servlet 中的汉字编码问题
    好听力网站
    GRE单词法
    Visual Studio 2008的一些小技巧
    从键盘输入一个字符串,将其中的大写字母变小写字母,小写字母变大写字母,并输出 。
    中图文分类号 TP自动化技术、计算机技术
    保护您眼睛视力 对Win7/Vista/XP作如下设置
  • 原文地址:https://www.cnblogs.com/wqbin/p/9813062.html
Copyright © 2020-2023  润新知