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('输入错误,请重新选择!!!')
停车管理系统

 

posted @ 2019-07-26 18:24  刚--  阅读(229)  评论(0编辑  收藏  举报