Python字符串,列表

发布时间:2019-07-22 09:57:32编辑:auto阅读(1673)

    字符串:
    字符串的创建:
    单引号, 双引号 ,三引号 <注意: 转义字符的使用>
    字符串的特殊性:
    索引 切片 连接 重复 成员操作符(in, not in)

    字符串的常用方法:
    1). 判断字符串的类型(isdigit, isspace, isupper,islower ......)
    2). 字符串开头结尾的判断(endwith,startwith)
    endwith -- 多用于查找指定的文件格式(.log, .png......)
    startwith -- 所用于判断使用的协议(http://, https://, ftp://)
    3). 去除空格(left,middle,right)
    lstrip #去除左边空格
    replace (" ", "") # 使用replace函数间接替换中间的空格
    rstrip #去除右边空格
    strip #去除左右两边空格
    4).居中 , 居左, 居右
    center
    ljust
    rjust

        5). 切片
        split()
        6). 连接
        join()

    内置函数:
    cmp max min enumerate zip sum len abs

    数值,字符串是不可变数据类型: 列表是可变数据类型

    测试练习:
    2017-好未来-笔试编程题

    • 题目描述:
      输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”

    • 输入描述:
      每个测试输入包含2个字符串

    • 输出描述:
      输出删除后的字符串

    • 示例1:
    输入
        They are students.
        aeiou
    输出
    Thy r stdnts.
    #!/usr/bin/env python
    #coding:utf-8
    s1 = raw_input ("please input your first string:")
    s2 = raw_input ("please input your second string:")
    for i in s2:
        s1=s1.replace(i,"")
    else:
        print s1
    

    测试结果:Python字符串,列表

    2017-小米-句子反转

    • 题目描述:

      给定一个句子(只包含字母和空格), 将句子中的单词位置反转,单词用空格分割, 单词之间只有一个空格,前后没有空格。 比如: (1) “hello xiao mi”-> “mi xiao hello”

    • 输入描述:

      输入数据有多组,每组占一行,包含一个句子(句子长度小于1000个字符)

    • 输出描述:

      对于每个测试示例,要求输出句子中单词反转后形成的句子

    • 示例1:
    - 输入
        hello xiao mi
    - 输出
        mi xiao hello

    #!/usr/bin/env python
    #coding:utf-8
    print " ".join(raw_input("please in put your first string:").split()[::-1])

    测试结果:
    ![](https://s1.51cto.com/images/blog/201803/18/d07ff4e4a83878f51f96ccfb1c4ada48.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
    
    华为测试:
    题目描述:输入一行字符串,分别统计出包含英文字母,空格,数字和其他字符的个数

    #!/usr/bin/env python
    #coding:utf-8
    s = raw_input("请输入字符:")

    al_count, space_count, num_count, other_count = 0, 0, 0, 0

    for i in s:
    if i.isalpha():
    al_count += 1
    elif i.isspace():
    space_count += 1
    elif i.isdigit():
    num_count += 1
    else:
    other_count += 1

    print "英文字母个数:%d\n空格个数:%d\n数字个数:%d\n其他字符个数:%d" % (
    al_count, space_count, num_count, other_count)

    测试结果:
    ![](https://s1.51cto.com/images/blog/201803/18/a7fe6d2648487416412ad7562770f7d4.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
    
    枚举,zip

    #!/usr/bin/env python
    #coding:utf-8
    s = "hello"
    for i in range(len(s)):
    print i,s[i]

    测试结果:
    ![](https://s1.51cto.com/images/blog/201803/18/6265339f9db37d71ce9d78bd435b4ce9.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
    
    enumerate内置函数枚举;
    ![](https://s1.51cto.com/images/blog/201803/18/1ac49d6feccfad85077d3bf1a037189f.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
    
    zip内置函数;
    ![](https://s1.51cto.com/images/blog/201803/18/2b39e4c9cbaa96c517666afb227ec486.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
    
    List 列表
    列表特性:

    #!/usr/bin/env python
    #coding:utf-8
    array = [1, 2, 3, 4, 5, 6, 7]
    li = [1, 1.0, 1L, "hello", 1 + 3j]

    #索引:正向索引和反向索引片

    print li[::-1]

    
    #重复

    print li * 3

    
    #连接

    print array + li

    
    #成员操作符

    print 1 in li
    print 1 not in li

    
    结果输出:
    ![](https://s1.51cto.com/images/blog/201803/18/ba67f09d4cf8ddb63e4637d06d1f1db0.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
    
    列表增删查改

    #!/usr/bin/env python
    #coding:utf-8
    allow_ip = ['172.25.254.91', '172.25.254.2', '172.25.254.14', '172.25.254.32']

    # 增
    #append追加元素到列表的最后;

    #allow_ip.append('172.25.254.6')
    #print allow_ip

    
    #insert将元素添加到指定索引的前面;

    #allow_ip.insert(1,'172.25.254.34')
    #print allow_ip

    
    #extend是追加多个元素到列表中;

    #allow1_ip = ['172.25.254.56', '172.25.254.66']
    #allow_ip.extend(allow1_ip)
    #print allow_ip

    
    #改
    #给列表的指定索引重新赋值;

    #allow_ip[0] = '172.25.254.11'
    #print allow_ip

    
    #查
    #显示指定元素出现的次数;

    #print allow_ip.count('172.25.254.1')

    
    #显示指定元素的索引值;如果出现多个,显示小的那个索引;如果元素不存在,报错,ValueError;

    #print allow_ip.index('172.25.254.1')

    
    #删
    #pop是删除指定索引的值;如果列表为空或者索引不在范围内,则报错; 如果不指定索引值,默认删除最后一个元素;
    #allow_ip.
    #删除列表中最先出现的值,不存在,则报错;

    #allow_ip.remove('172.25.254.1')
    #print allow_ip

    
    #反转列表

    #allow_ip.reverse()

    
    #列表排序

    allow_ip.sort()
    print allow_ip

    
    测试练习:
    多用户登陆系统:
            1). 已知多个用户名和密码;
            2). 判断用户名是否存在,
                    如果登陆的用户不存在,则报错, 清注册用户;
                    如果用户存在, 则判断密码是否正确:
                        如果正确, 输出用户登陆成功;
                        如果不正确, 输出登陆失败;
    

    #!/usr/bin/env python
    #coding:utf-8
    import getpass

    users = ['user1', 'user2', 'user3']
    passwds = ['123', '456', '123']

    inuser = raw_input("用户名:")
    inpass = getpass.getpass("密码:")

    #if 用户是否存在(成员操作符):
    if inuser in users:
    index = users.index(inuser)
    passwd = passwds[index]
    if passwd == inpass:
    print "%s登陆成功....." %(inuser)

    ##1).找出用户名的索引值
    ##2).取出对应用户名的密码
    ##3).判断是否一致
    #if 密码正确:
        #pass
    else:
        print "密码不正确..."

    else:
    print "%s 不存在,清注册....." %(inuser)

    
    测试结果:
    因为导入getpass。在测试时必须用终端进行。
    ![](https://s1.51cto.com/images/blog/201803/18/2783a8fae766bf49e8261718bfe51e25.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
    
    测试练习:
    批量生成学号:
    学号前4位为1705
        依次有三个学院:电子工程学院(01), 软件学院(02), 商学院(03)
        每个学院有200人;
    #!/usr/bin/env python
    #coding:utf-8
    for i in  ['01', '02', '03']:
        for j in range(1,201):
            print "1705%s%.3d" %(i,j)

关键字