day4(Alex python)

版权声明:本文为博主原创文章,转载请注明作者和出处。https://blog.csdn.net/xq920831/article/details/82108671

周末两天有事暂停一下,今天继续学习。

1. 字符串的一些基本操作,

废话不多说,上代码:

# -*- coding:utf-8 -*-
# Author: Agent Xu

name = 'agent'

#首字母大写
print(name.capitalize())
#Agent

#统计字符串字母个数
print(name.count('a'))
#1

#字符居中显示   设置一共50个字符,name居中显示,不够50用-补齐
print(name.center(50,'-'))
#----------------------agent-----------------------

#判断以什么结尾
print(name.endswith('t'))
#True

#tab键扩展
name1 = 'my \tname is agent'
print(name1.expandtabs(tabsize=30))
#my                            name is agent

#找固定字符串的索引
print(name1.find('y'))
#1
print(name1.find('name'))
#4
#用find做字符串切片
print(name1[name1.find('name'):9])
#name
print(name1[name1.find('name'):])
#name is agent

#格式化字符串
name2 = 'my name is {name},i am {year} years old.'
print(name2.format(name='agent',year=26))
#my name is agent,i am 26 years old.
#利用字典添加格式化
print(name2.format_map({'name':'agent','year':25}))
#my name is agent,i am 25 years old.

#判断是否为阿拉伯数字及字母
print(name2.isalnum())
#False
#判断是否为纯英文字符
print(name2.isalpha())
#False
print('abc'.isalpha())
#True
#判断是否为十进制
print('1a'.isdecimal())
#False
#判断是否为整数
print('5'.isdigit())
#True
#判断是否为合法的标识符(变量名)
print('a55'.isidentifier())
#True
#判断是否为小写
print('A'.islower())
#Flase
#判断是否为纯数字字符
print('3.44'.isnumeric())
#Flase
#判断是否为标题字符(首字母大写)
print('My Name Is Agent'.istitle())
#True

#判断是否为可打印的字符串
print('my name is agent'.isprintable())
#True   tty file,diver file一类的不可打印

#转换成字符串
print(''.join(['1','2','3','4']))
#1234
print('+'.join(['1','2','3','4']))
#1+2+3+4

#字符串左右填充
print('my name is agent'.ljust(30,'*')) #长度30,不够的话右边填充*字符
#my name is agent**************
print('my name is agent'.rjust(30,'-')) #长度30,不够的话左边填充-字符
#--------------my name is agent

#字符串大小写
print('Agent'.lower())
#agent
print('Agent'.upper())
#AGENT

print('\nAgent'.lstrip()) #去除左边的空格或回车
print('Agent\n'.rstrip()) #去除右边的空格或回车
print('\nAgent\n'.strip())#去掉两边的空格或回车

#字符串转换功能
p = str.maketrans('abcdefghi','123456789')
print('agent'.translate(p))
#175nt

#替换功能
print('agent xu'.replace('xu','xq'))
#agent xq
print('aagent'.replace('a','A',1)) #只换一个
#Aagent

#找索引
print('agent abc'.rfind('a')) #最右边a对应的索引
#6

#分隔成列表
print('1+2+3+4+5'.split('+'))#按字符分
#['1', '2', '3', '4', '5']
print('agent xq'.split())#按空格分
#['agent', 'xq']
print('agent\nxq'.splitlines())#按换行符分
#['agent', 'xq']

#大小写翻转
print('Agent'.swapcase())
#aGENT

2. 字典的使用

字典在python中为一种key-value的数据类型。字典是无序的,没有下标。

  • 常规操作
# -*- coding:utf-8 -*-
# Author: Agent Xu

info = {
    'stu1':'agent xu',
    'stu2':'agent sun',
    'stu3':'agent li',
    'stu4':'agent wu'
}

print(info) #验证字典的无序性
#{'stu2': 'agent sun', 'stu1': 'agent xu', 'stu4': 'agent wu', 'stu3': 'agent li'}

#取值
print(info['stu1'])
#agent xu 
#打印所有值
print(info.values())
#dict_values(['agent li', 'agent xu', 'agent wu', 'agent sun'])
#打印所有key
print(info.keys())
#dict_keys(['stu3', 'stu1', 'stu4', 'stu2'])

#改值
info['stu4']='agent liu'
print(info)
#{'stu2': 'agent sun', 'stu4': 'agent liu', 'stu3': 'agent li', 'stu1': 'agent xu'}

#创建
info['stu5']='agent zhu'
print(info)
#{'stu3': 'agent li', 'stu2': 'agent sun', 'stu1': 'agent xu', 'stu4': 'agent liu', 'stu5': 'agent zhu'}

#查找
print(info.get('stu2'))
#agent sun   有对应的key则返回相应值,如果没有则返回None
#判断是否有key
print('stu6' in info)
#False

#删除方法1
del info['stu5']
print(info)
#{'stu3': 'agent li', 'stu1': 'agent xu', 'stu2': 'agent sun', 'stu4': 'agent liu'}
#删除方法2
info.pop('stu4')
print(info)
#{'stu2': 'agent sun', 'stu1': 'agent xu', 'stu3': 'agent li'}
#随机删除一个
info.popitem()
print(info)
#{'stu3': 'agent li', 'stu2': 'agent sun'}

补充1:

info = {
    'stu1':'agent xu',
    'stu2':'agent sun',
    'stu3':'agent li',
    'stu4':'agent wu'
}

#设置默认值,有这个key则打印key对应的值,如果没有则新建key并添加设置的默认值
info.setdefault('stu3','xiaohua')
print(info)
#{'stu3': 'agent li', 'stu4': 'agent wu', 'stu2': 'agent sun', 'stu1': 'agent xu'}
info.setdefault('stu5','xiaohua')
print(info)
#{'stu3': 'agent li', 'stu4': 'agent wu', 'stu2': 'agent sun', 'stu5': 'xiaohua', 'stu1': 'agent xu'}

补充2:

info = {
    'stu1':'agent xu',
    'stu2':'agent sun',
    'stu3':'agent li',
    'stu4':'agent wu'
}
info1 = {
    'stu2':'xiaohua',
    'stu5':'xiaolong',
    'stu6':'xiaosun'
}

#更新函数
info.update(info1) #把info1作为参数更新info,info有的key更新对应值,没有的则根据info1新建
print(info)
#{'stu2': 'xiaohua', 'stu1': 'agent xu', 'stu5': 'xiaolong', 'stu3': 'agent li', 'stu6': 'xiaosun', 'stu4': 'agent wu'}

#字典转列表
print(info.items())
#dict_items([('stu1', 'agent xu'), ('stu5', 'xiaolong'), ('stu4', 'agent wu'), ('stu2', 'xiaohua'), ('stu6', 'xiaosun'), ('stu3', 'agent li')])

#初始化一个字典
c = dict.fromkeys([6,7,8],{'test':'xqxq'})
print(c)
#{8: {'test': 'xqxq'}, 6: {'test': 'xqxq'}, 7: {'test': 'xqxq'}}
c[6]['test'] = 'qq'
print(c)
#{8: {'test': 'qq'}, 6: {'test': 'qq'}, 7: {'test': 'qq'}} 改一个所有的都改,类似于浅copy

#循环打印
for i in info:
    print(i)
'''只有key
stu3
stu1
stu6
stu5
stu2
stu4
'''
for i in info:
    print(i,info[i])
'''打印全部
stu2 xiaohua
stu4 agent wu
stu5 xiaolong
stu1 agent xu
stu3 agent li
stu6 xiaosun
'''
#或者下面的方法 和上面结果一样,不过建议用上面的方法,更高效
for k,v in info.items():
    print(k,v)
  • 多级字典嵌套及使用

这里给出一个多级字典的例子:

# -*- coding:utf-8 -*-
# Author: Agent Xu

food_catalog = {
    'China':{
        'rice':['东北大米1','东北大米2'],
        'apple':['红富士1','红富士2'],
        'watermelon':['麒麟瓜1','麒麟瓜2']
    },
    'Tailand':{
        'durian':['猫山王1','猫山王2'],
        'mango':['泰芒1','泰芒2']
    },
    'Korea':{
         'octopus':['章鱼1','章鱼2'],
         'lobster':['龙虾1','龙虾2'],
    }
}

exit_flag = True
while exit_flag:
    for i in food_catalog:
        print(i)
    choice1 = input('选择1 -->')
    if choice1 not in food_catalog.keys():
        if choice1 == 'b':
            pass
        elif choice1 == 'q':
            exit_flag = False
        else:
            print('输入无效,请重新输入。')
            pass
    else:
        while exit_flag:
            for k in food_catalog[choice1]:
                print(k)
            choice2 = input('选择2 -->')
            if choice2 not in food_catalog[choice1].keys():
                if choice2 == 'b':
                    break
                elif choice2 == 'q':
                    exit_flag = False
                else:
                    print('输入无效,请重新输入。')
                    pass
            else:
                while exit_flag:
                    for m in food_catalog[choice1][choice2]:
                        print(m)
                    choice3 = input('最后一层,请输入b/返回或者q/退出:')
                    if choice3 == 'b':
                        break
                    elif choice3 == 'q':
                        exit_flag = False
                    else:
                        print('输入不合法,请重新输入')
                        pass

猜你喜欢

转载自blog.csdn.net/xq920831/article/details/82108671