路飛學城-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
相關文章
相關標籤/搜索