zoukankan      html  css  js  c++  java
  • python-string

    string的内置方法:

     注:对于单个字符的编码,python提供了ord()函数获取字符整数的表示,chr()把编码转换成字符的表示。

    1、查找:

      从左到右找字符

      index: 没有找到报错

      find: 没有找到返回-1

      两者都是返回要查找的内容的下标位置

      从右往左查找字符

      rindex():

      rfind():

    s1="https://imgsa.baidu.com/forum/crop%3D10%2C0%2C559%2C419%3Bwh%3D227%2C170%3B/2b2118bb9.jpg"
    # ss.rfind("/")
    a = s1.rfind('/')
    print(a)
    print(s1[a + 1::])

    2、替换

      replace(old,new,count):表示用new的替换新的字符,默认有多少替换多少

    #   替换 replace
    s = 'hello  welcome to beijing'
    s = s.replace('to', '88')
    print(s)

    3、分割:split

      split('分隔符',[最大的切割数]) :返回的分割后的列表,如果没有指定最大切割数,遇到就切割

    # 切割 split
    s = 'hello welcome to beijing'
    list = s.split(' ')
    print(list)

    4、转换:

      upper() 转大写

      lower() 转小写

      title() 每个单词首字母大写

      capitalize() 字符串的第一个单词的首字母大写

    # 大小写
    # 验证码
    import random
    code = ''
    base_str = '1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM'
    for i in range(4):
        r = random.randint(0,len(base_str)-1)
        code += base_str[r]
    print('验证码是:',code)
    in_code = input('输入验证码')
    if code.lower() == in_code.lower():
        print('输入正确')
    else:
        print('输入错误')
    s= 'hello beijing welcome you'
    # s = s.title()
    s = s.capitalize()
    print(s)

    5、字符串判断的相关函数:

      isupper()  是否大写

      islower()  是否小写

      isalpha()  是否字符串只有字母组成,返回true或false

      isdight() 是否是纯数字

      startswith() 是否以指定内容开头

      endswith()  是否以指定内容结尾

    s = 'hello nihao'
    a = s.isupper()
    print(a)
    
    a = s.islower()
    print(a)
    
    a = s.isalpha()
    print(a)
    
    qq = input('qq号码:')
    print(qq.isdigit())
    
    if qq.isdigit() and 5<=len(qq)<=10 and not qq.startswith('0'):
        print('qq号码正确')
    else:
        print('qq号码不正确')
    
    # 文件上传:只能上传指定的格式(png,jpg,gif)
    file = input('上传路径:')
    if file.endswith('.jpg') or file.endswith('.png') or file.endswith('.gif'):
        print('是图片允许上传')
    else:
        print('只能上传图片(png,hpg,gif)')

    6、对齐与格式:

      center(width)

      ljust(width)

      rjust(width)

    a = '年后飞洒地方'
    b = a.center(20)
    c = a.rjust(20)
    print(b)
    print(c)

    7、去除空格:

      strip():去除字符串左右两边的空格

      lstrip():去除左面的空格

      rstrip():去除右面的空格

    # 去除空格
    s = '   asdf   '
    a = s.strip()
    print(a)
    b= s.lstrip()
    print(b)

    8、字符串能支持的符号: 

      +:str + str

      *: str*5

      in: 内容 in 字符串

      is: 两个字符串判断地址是否相等

      ==:比较内容

      []:下标或者切片 s[0] s[::6]

      %:字符串的格式化

    列表:

    1、创建 

      list1=[]
      list2=[1,3,6,8]
      特点:
        1. 没有长度限制
        2. 可以存放任意类型
        3. 允许存放重复元素

    # 创建容器类型:list
    cars = []  # 空列表
    cars = ['京001','京002','京003','京004']
    scores = [23,12,24,25,'0分']
    print(cars)
    print(scores)

    2、内容的访问

      1、取一个元素:list1[下标]

      2、取多个元素:借助于切片,类似字符串用法

        list[start:]  从start到结尾

        list[:end]  从0到end-1

        list[start:end]  从start到end-1

        list[start:end:step]  从start到end-1,每次的步长step

        逆序:step必须是负数

        list[::-step]  逆序输出整个列表

        list[start:end:-step]  从start到end-1,每次的步长step(从左到右)

    # 从列表中获取内容:支持下标或者索引  下标也是从0开始的到_len(列表)-1___结束
    print(cars[0])
    print(cars[2])
    print(len(cars))
    
    # print(cars[len(cars)])  # IndexError: list index out of range
    
    # 队列: FIFO  first in first out
    
    # 列表也是支持切片
    print(cars[:2])
    print(cars[1:])
    
    print(cars[-1])
    print(cars[0])
    
    print(cars[::-1])
    print(cars[1:4:2])
    print(cars[-2:1:-1])
    
    print(cars[::-2])

    3、内置函数

      1-增加:

        Append  列表的末尾追加

        Extend 将一个可迭代的对象添加到列表中(一次添加多个元素)

        Insert(insex,object):将对象object插入到index的位置(插队)

    # 停车场
    car_park = []
    
    # 添加
    car_park.append('京001')
    car_park.append('京002')
    car_park.append('京003')
    car_park.append('京004')
    
    # 查询
    # print(car_park)
    
    for car in car_park:
        print(car)
    
    # insert(位置,元素)
    car_park.insert(0,'京009')
    print(car_park)
    
    car_park1 = ['京006']
    car_park1.extend(car_park)
    print(car_park1)

      2-删除:
        remove(object): 直接从列表中删除第一个找到的元素,如果没有找到要删除的元素则报错:
        ValueError: list.remove(x): x not in list
        pop([index]):
          1. pop() 表示删除列表的最后一个元素
          2. pop(index) 删除index对应的元素
        clear()
        del 列表[下标]
        del 列表

    numbers = [1, 3, 5, 6, 7, 8, 9]
    
    numbers.remove(5)
    print(numbers)
    
    numbers.pop()
    print(numbers)
    
    numbers.pop(3)
    print(numbers)
    
    del numbers[1]
    print(numbers)
    
    print(id(numbers))
    
    # numbers.clear()  # 清空内容,地址保留
    # del numbers  # 既清空内容也删除地址

      3-修改和查询

        修改: 列表[位置]=新值  新值则替换该位置旧值

        查询:number.index(6)  #参数是要查找对象,返回的是对象的位置,如果没有报错

    print(numbers)
    
    pos = numbers.index(6)  # 参数是要查找对象,返回的是对象的位置,如果没有报错
    print(pos)
    
    # 更改: 列表[位置]=新值   新值则替换该位置旧值
    numbers[pos] = 9
    print(numbers)

       编程题:简化版停车管理系统

    # __author:gang
    # date:  2019/7/28
    import random
    import time
    
    print('**'*25)
    print('----------------欢迎进入至诚停车场----------------')
    print('**'*25)
    
    car_list =[]    # 停车列表
    car_max = 5     # 最大停车数量
    cur_car = 0     # 当前停车数量
    pos_list = ['1位置','2位置','3位置','4位置','5位置']
    
    while True:
        choice = input('请选择:1、进入停车场 2、离开停车场 3、查询车辆 4、查询所有车辆 5、退出系统:')
        if choice =='1':
            # 进入停车场
            # 当前停车数量小于最大停车数时执行下面代码
            while cur_car>=car_max:
                print('抱歉,停车位已满!')
                break
            else:
                che_pai = input('请输入您的车牌号:')
                start = time.time()  # 时间戳
                # 产生随机位置
                pos = random.choice(pos_list)
                # 在车位列表中删除车位
                pos_list.remove(pos)
                print('欢迎{}车主停车成功....'.format(che_pai))
                car_message = [che_pai, start,pos]
                car_list.append(car_message)  # 将车牌、时间压入停车列表中
                cur_car += 1
        elif choice =='2':
            # 离开停车场
            print('-----离开停车场----')
            # 请输入车牌号
            che_pai1 = input('请输入您的车牌号:')
            for car_msg in car_list:
                if che_pai1 in car_msg:   # 判断该车在不在列表中
                    end = time.time()     # 定义离开时间
                    a = (end - start)//3600  # 停车时间
                    money = (a+1)*5   # 停车费
                    print('{}用户,您的停车时间为:{}小时,应该缴费:{}'.format(che_pai1,a,money))
                    time.sleep(2)
                    print('缴费成功,欢迎下次再来!!!')
                    # 将占用位置释放
                    pos_list.append(car_msg[2])
                    cur_car -= 1
                    # 删除车辆信息
                    car_list.remove(car_msg)
                    break
            else:
                print('您的爱车不在车场中...')
        elif choice =='3':
            # 查询车辆
            find_car = input('请输入车牌号:')
            for car_msg in car_list:
                if find_car in car_msg:
                    print('您的爱车在停车场中!')
                    break
                else:
                    print('抱歉,您的爱车不在停车场中')
        elif choice =='4':
            # 查询所有车辆
            print('------车辆信息列表-------')
            for car_msg in car_list:
                print(car_msg[0],car_msg[1],car_msg[2])
        elif choice =='5':
            tui_chu = input('是否退出系统?y/n:')
            if tui_chu.lower() == 'y':
                print('欢迎下次光临,系统正在退出...')
                time.sleep(1)
                break
        else:
            print('输入错误,请重新选择!!!')
    停车管理系统
    一路独行,遇见最好的自己!!!
  • 相关阅读:
    xtrabackup增量备份mysql +MHA
    mysql备份恢复中的常见错误
    MySQL 面试题目
    Amoeba for MySQL 中间件
    [MySQLCPU]线上飙升800%,load达到12的解决过程
    pt-kill--- MySQL数据库CPU飙升紧急处理方法
    MySQL 5.7并行复制时代
    淘宝内部分享:怎么跳出MySQL的10个大坑
    Percona XtraBackup User Manual 阅读笔记
    淘宝内部分享:MySQL & MariaDB性能优化
  • 原文地址:https://www.cnblogs.com/rungang/p/11249644.html
Copyright © 2011-2022 走看看