路飞学城-python集训营-第二章(python数据类型操作)

进制转换

bin(1) #十进制转二进制
'0b1'
hex(1)#十进制转十六进制
'0x1'
oct(1) #十进制转八进制
'0o1'

字符串操作

# Author:w k
name="your name wk and your 20 years old!"
#a b c d e f g h i j k l m n o p q r s t u v w x y z
#print(name.count("a")) #返回字符串出现的次数
#print(name.capitalize())#首位大写
#print(name.center(100,'v')) #用v填充字符到 100个
#print(name.encode(encoding='utf-8')) #对字符串进行编码
#print(name.endswith("Ke!")) #是否以XXX结尾 是返回ture 否则 false
#print(name.expandtabs(tabsize=8))  #搜索\t 输出X个空格
#print(name.format(name="wk"))     #格式化输入,{content}
#print(name.find('name'))   #返回字符串在哪里出现
print(name.format_map({'name':'wk','year':20})) #以字典方式替换
print(name.isdigit())  #判断是否整数
print(name.isalnum())  #判断字符串是不是阿拉伯+英文字母
print(name.isalpha()) #检测字符串是否只由字母组成
print(name.isdecimal()) #判断字符串是否只包含十进制字符
print('aj'.isidentifier()) #判断字符串是否合法的变量名
print(name.islower())  #判断字符串是否小写
print('123'.isnumeric()) #判断字符串是不是数字字符串
print(name.isprintable()) #判断字符串是否可以打印
print(' '.isspace()) #判断是否空格
print('Tou Time'.istitle()) #判断是不是标题
print('TK'.isupper())  #判断是不是大写
print('+'.join(['1','2','3'])) #把字符串加入到变量里
name2=['1',['5','6'],'2']
print('+'.join(name2[1]))
print('akl'.ljust(20,'*')) #左对齐 使用指定的填充字符
print('akl'.rjust(20,'*')) #右对齐 使用指定的填充字符
print('AkL'.lower())  #把大写变成小写输出
print('akl'.upper())  #把小写变大写输出
print('\nakl'.lstrip())  #去除左边的空格回车
print('akl\n'.rstrip()) #去除右边空格回车
password=str.maketrans('abcdefghijklmnopqrstuvwxyz','123456789!@#$%^&*()_+{}|":')
#源字符 替换成 目标字符 数目一定要对上
print(name.translate(password)) #替换字符输出
print('akal'.replace('a','q',1)) #替换内容 旧的 新的 替换多少个
print('aklwangke'.rfind('w')) #从右边开始找返回下标
print('akl and li and kk'.rindex('l')) #右边寻找 返回字符开始的索引,没有则报错
print('akl and li and kk'.index("l")) #返回字符开始的索引,没有则报错
print('aklopkali'.rpartition('k')) # 文本切割成3份  剩余 本身 右边开始
print('aklopkali'.partition('k')) #文本切割成3份  左边开始 本身 剩余
print('aklopkali'.rsplit('l')) #文本切割 不包含本身
print('aklopkali'.split('l')) #文本切割 不包含本身
print('aklo\npkali'.splitlines()) #按照换行来换 /r /n
print('akLoPkAli'.swapcase()) #大小写转换
print('ak lop kali'.title()) #转换成标题
print('aklopkali'.zfill(50))  #右对齐字符串,count不够0 补充
View Code

列表

#-*- coding: utf-8 -*-
# Author:w k
list_text = ['1','4','1','4','4','5','6','7']
#print(list_text)
#list_text.append(2)#增/添加内容
#del list_text[0] #删除
#list_text[1] = 4 #改
#print(list_text[0])#查列表
#list_text.count(1)
#print(list_text.count('1'))#列表中"1"的数量
#print(list_text.clear())#清空列表
#list_text2 = list_text.copy() #把列表复制到text2
#print(list_text2)
#list_text2 = ['1','3',4,5]
#print(list_text.extend(list_text2))#把text2添加到text 一次性添加多个
#print(list_text.index('2'))#返回值的第一个匹配到的位置
#print(list_text.insert(5,'2'))#insert(index,obj)把obj插入到index位置
#print(list_text.pop(1))#pop(index) 删除 index 的值
#print(list_text.remove(4))#remove(value) 移除value 的值
#list_text.reverse()#把列表顺序反过来
#print(list_text)
#list_text.sort()#sort(func)对列表进行排序,可设置func进行排序
View Code

元组

元组的定义和特性
定义:与列表类似,只不过[]改成()。

特性:

1.可存放多个值;

2.不可变;

3.按照从左到右的顺序定义元组元素,下标从0开始顺序访问,有序。

元组的创建与常用操作

字典

#-*- coding: utf-8 -*-
# Author:w k

info={
    'student_100':"XiaoHong",
    'student_101':"XiaoMing",
    'student_102':"XiaoZong",
}
print(info)
info['student_104']='kkk'
#for key in info:
#    print(key,info[key]) #打印字典的key,value
#info2={}
#info2=info.copy()#复制info到info2
#print(info2)
#info.clear()#清理字典
#info2 = dict.fromkeys(['name','age'],['wk',3])#创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值
#info.get('student_100')#get(key),获取key的value值
#print(info.items())#以列表返回可遍历的(键, 值) 元组数组
#print(info.keys())#返回字典所有的keys
#print(info.popitem())#随机删除一个key value
#print(info.pop('student_100'))#pop(key)#删除key
#print(info.setdefault('student_104'))#如果key在字典中则返回value,如果不在则添加到字典 setdefault(key,value)
#print(info.update())#info.update(dict2)吧dict2的值更新/添加到info
#print(info.values())#打印所有的values

三级菜单实例

#-*- coding: utf-8 -*-
# Author:w k
'''
需求:
可依次选择进入各子菜单
可从任意一层往回退到上一层
可从任意一层退出程序
所需新知识点:列表、字典

1.只用一个while循环,且整体代码量少于15行按完成需求/条—25分
2.只用一个while循环,且整体代码量多于15行需求全部完成给90分
3.其他情况按完成需求/条—20分
'''


menu = {
    '北京':{
        '海淀':{
            '五道口':{
                'soho':{},
                '网易':{},
                'google':{}
            },
            '中关村':{
                '爱奇艺':{},
                '汽车之家':{},
                'youku':{},
            },
            '上地':{
                '百度':{},
            },
        },
        '昌平':{
            '沙河':{
                '老男孩':{},
                '北航':{},
            },
            '天通苑':{},
            '回龙观':{},
        },
        '朝阳':{},
        '东城':{},
    },
    '上海':{
        '闵行':{
            "人民广场":{
                '炸鸡店':{}
            }
        },
        '闸北':{
            '火车战':{
                '携程':{}
            }
        },
        '浦东':{},
    },
    '山东':{},
}

#记录位置
log_list = []

# 记录用户进入的层数
enter_log = menu

print('开始运行。。。。{输入q or Q 退出程序, B or b 返回上层}')

while True:
    # 输入省份后通过strip去掉空格防止出错
    user_choice = input("请选择要进入的范围(%s)>>:"%(','.join(i for i in enter_log.keys()))).strip()
    if user_choice.lower() == 'q':
        print('检测到退出输入,结束运行~')
        exit(0)

    if user_choice.lower() == 'b':
        #顶级删除会报错,因为列表里没有数据 所以加个处理
        try:
            enter_log = log_list.pop() #pop删除并返回值,默认最后一个
        except IndexError:
            print('已经在顶级菜单!')
        continue

    if len(enter_log.keys()) == 0:
        print('已经最深入了!!别再挖了!!')
        continue

    if user_choice  in enter_log.keys():
        '''
            进入下级前记录上级,删除后则是离开当前返回上级
        '''
        log_list.append(enter_log)
        enter_log = enter_log.get(user_choice)
    else:
        print('当前没有你想要的范围!')
        continue

猜你喜欢

转载自www.cnblogs.com/flower-poison/p/9229067.html
今日推荐