Python数据分析——数据类型和子菜单应用

159 阅读2分钟

1.字符串str常用操作

name='my name is alice.'
name.capitalize()#首字母大写
name.count('a')#计数a
name.center(50,'-')#居中name,两边打印-
name.endswith('ex')#是以ex结尾?
name.find('y')#查找y的位置
name.rfind('y')#找到最右边的字母位置
name.format(name='alice',year=23)
'ab123'.isalnum()#阿拉伯数字?
'ab123'.isalpha()#纯英文字符?
'1A'.isdigit()#整数?
'1A'.isidentifier()#合法标识符?
'1A'.islower()#小写?
'1A'.isupper()#大写?
'1A'.isnumeric()#数字?
'1A'.istitle()#首字母大写?
'1A'.join('==')
','.join(['1','2','3'])#连接
names.lstrip()#去掉左边空格
name.rstrip()#去掉右编
name.strip()#去掉两边
p=str.maketrans('abcdef','123456')
print('alex li'.translate(p))#按规则修改字符串
name.replace('a','A')#替换字母
name.split('l')#按分隔符l对字符串分段
name.title()#首字母大写

2.字典dict及常用操作

info={'stu001':'alice','stu002':'jack','stu003':'tom','stu004':'mike'}
info['stu001']='tony'#修改或增加
info.pop('stu004')#删除尾部元素
info,popitem()#随机删除
del info['stu001']#删除指定元素
'stu001' in info#标准查找
info.get('stu001')#获取
info['stu001']#查找,key不存在会报错,get会得到None

三级菜单:

catalog = {
    '蔬菜':{
            '黄瓜':['10.8', '1000g'],
            '毛豆': ['5.5', '200g']
            },
    '肉类': {
            '猪肉': ['28.8', '300g'],
            '牛肉': ['58.8', '250g'],
            },
    '海鲜': {
            '螃蟹': ['68', '250g'],
            '龙虾': ['88', '250g']
            }
            }
catalog['海鲜']['螃蟹'][1]='200g'#修改
catalog.setdefault('蛋奶制类',{'鸡蛋':['25','200g'],'牛奶':['88','1000g']})#添加
b={...}#b为新dict
catalog.update(b)#将字典合并更新,重合部分以b为准
dict.fromkeys([6,7,8],'test')#创建新的键值对字典
for i in info: #for循环1,更高效
    pront(i,info[i])
for k,v in info.items():#for循环2,字典转列表
    print(k,v)

练习:三级菜单,可根据用户输入内容进入子菜单,也可返回上一级菜单或退出。

data = {
    '北京': {
        '昌平': {
            '沙河': ['a', 'b'],
            '天通苑': ['c', 'd']
        },
        '朝阳': {
            '望京': ['s', 'k'],
            '国贸': ['d', 'g'],
            '东直门': ['e', 'r']
        }
    },
    '山东': {
        '德州': {...},
        '青岛': {...},
        '济南': {...}
    },
    '广东': {
        '广州': {...},
        '佛山': {...},
        '惠州': {...}
    }
}

exit_flag = False#控制while循环
while not exit_flag:
    for i in data:
        print(i)
    choice = input('选择进入1:')
    if choice in data:
        while not exit_flag:
            for i2 in data[choice]:
                print('\t', i2)
            choice2 = input('选择进入2:')
            if choice2 in data[choice]:
                while not exit_flag:
                    for i3 in data[choice][choice2]:
                        print('\t', i3)
                    choice3 = input('选择进入3:')
                    if choice3 in data[choice][choice2]:
                        for i4 in data[choice][choice2][choice3]:
                            print('\t', i4)
                        choice4 = input('最后一层,返回请输入b')
                        if choice4 == 'b':
                            pass
                        elif choice4 == 'q':
                            exit_flag = True
                    if choice3 == 'b':
                        break
                    elif choice3 == 'q':
                        exit_flag = True
            if choice2 == 'b':
                break
            elif choice2 == 'q':
                exit_flag = True
    if choice == 'b':
        break
    elif choice == 'q':
        exit_flag = True