zoukankan      html  css  js  c++  java
  • 练习题解答(一)

    2018-08-1116:12:58

    一、字符串

    1、如果判断name变量量对应的值前四位"l"出现⼏次,并输出结果
    name = "aleX leNb"
    print(name.count("l", 0, 4))    #count后面的两个参数是判断开始和结束位置的  顾头不顾尾
    
    2、从name变量量对应的值中找到"N"对应的索引(如果找不不到则报错),并输出结果
    name = "aleX leNb"
    print(name.index("N"))
    
    3、从name变量量对应的值中找到"N"对应的索引(如果找不不到则返回-1)输出结果
    name = "aleX leNb"
    print(name.find("N"))
    
    4、从name变量量对应的值中找到"X le"对应的索引,并输出结果
    name = "aleX leNb"
    print(name.find("X le")     # 是找到的第一个字母的位置
    
    5、通过对s切⽚片形成新的字符串串s3,s3 = "1345"
    s = "123a4b5c"
    s3 = s[0:7:2]
    print(s3)       #1345
    
    6、通过对s切⽚片形成字符串串s5,s5 = "c"
    s = "123a4b5c"
    s5 = s[-1:-2:-1]
    s3 = s[-1:-5:-1]
    print(s5)    # c
    print(s3)    # c5b4
    
    7、通过对s切⽚片形成字符串串s6,s6 = "ba2"
    s = "123a4b5c"
    s6 = s[-3:-8:-2]
    print(s6)             #ba2

    二、列表、字典、文件操作

     1、有字符串 "k:1|k1:2|k2:3|k3:4" 处理成字典 {'k':1,'k1':2....}  (升级题)
    
    str1 = 'k:1|k1:2|k2:3|k3:4'
    dic = {}
    a = str.split('|')
    for i in a :
        k, v  = i.split(":")
        dic[k] =int(v)
    
    print(dic)
    
    2、车牌区域划分, 现给出以下车牌. 根据车牌的信息, 分析出各省的车牌持有量. (升级题)
    
    dic = {}
    car = ['鲁A25444', '鲁B22333', '京B89889', '黑C23442', '泸Y23454', '黑I34432','渝W87665']
    locals = {'': '上海', '': '黑龙江', '': '山东', '': '北京', '': '重庆'}
    for cars in car:
        first_name = cars[0]
        localtion = locals[first_name]    # 这里的是一个字典,通过key来取值  取出上海、上东……
        if dic.get(localtion) == None:
            dic[localtion] = 1
        else:
            dic[localtion] += 1
    print(dic)
    
    法二:
    cars = ["鲁A32444", "鲁B12333", "京B8989M", "黑C49678", "黑C46555", "沪B25041", "黑C34567"]
    locations = {"": "上海", "": "北京", "": "黑龙江", "": "山东", "": "湖北", "": "湖南"}
    loca = []
    dic = {}
    for i in locations:
        count = 0
        for el in cars:
            if el.startswith(i):
                count += 1
        dic[locations[i]] = count
    print(dic)
    
    3、打印大地区的各个区县:
    zone = {
        '山东' : {
            '青岛' : ['四方','黄岛','崂山','李沧','城阳'],
            '济南' : ['历城','槐荫','高新','长青','章丘'],
            '烟台' : ['龙口','莱山','牟平','蓬莱','招远']
        },
        '江苏' : {
            '苏州' : ['沧浪','相城','平江','吴中','昆山'],
            '南京' : ['白下','秦淮','浦口','栖霞','江宁'],
            '无锡' : ['崇安','南长','北塘','锡山','江阴']
        },
        '浙江' : {
            '杭州' : ['西湖','江干','下城','上城','滨江'],
            '宁波' : ['海曙','江东','江北','镇海','余姚'],
            '温州' : ['鹿城','龙湾','乐清','瑞安','永嘉']
        }
    }
    #省列表
    province = list(zone.keys())
    while True:
        print('省'.center(20, '*'))
        # 打印省列表
        for i in province:
            print('{}	{}'.format(province.index(i)+1,i))
        province_input = input('请输入省编号,或输入q/Q退出:').strip()
        if province_input.isdigit():
            province_input = int(province_input)
            if province_input > 0 and province_input <= len(province):
                #省编号,由于显示加1,获取的时候,需要减1
                province_id = province_input - 1
                #城市列表
                city = list(zone[province[province_id]].keys())
                #进入市区列表
                while True:
                    print('市'.center(20, '*'))
                    for j in city:
                        print('{}	{}'.format(city.index(j) + 1, j))
                    city_input = input("请输入市编号,或输入b(back)返回上级菜单,或输入q(quit)退出:").strip()
                    if city_input.isdigit():
                        city_input = int(city_input)
                        if city_input > 0 and city_input <= len(city):
                            # 市编号,由于显示加1,获取的时候,需要减1
                            city_id = city_input - 1
                            #县列表
                            county = zone[province[province_id]][city[city_id]]
                            # 县列表
                            while True:
                                print('县'.center(20, '*'))
                                for k in county:
                                    print('{}	{}'.format(county.index(k) + 1, k))
                                #到县这一级,不能输入编号了,直接提示返回菜单或者退出
                                county_input = input("输入b(back)返回上级菜单,或输入q(quit)退出:").strip()
                                if county_input == 'b':
                                    # 终止此层while循环,跳转到上一层While
                                    break
                                elif county_input == 'q':
                                    # 结束程序
                                    exit()
                                else:
                                    print("33[41;1m已经到底线了,请返回或者退出!33[0m")
                        else:
                            print("33[41;1m市编号 {} 不存在!33[0m".format(city_input))
                    elif city_input.upper() == 'B':
                        break
                    elif city_input.upper() == 'Q':
                        #由于在多层while循环里面,直接exit退出即可
                        exit()
                    else:
                        print("33[41;1m输入市编号非法!33[0m")
            else:
                print("33[41;1m省编号 {} 不存在!33[0m".format(province_input))
        elif province_input.upper() == 'Q':
            break
        else:
            print("33[41;1m输入省编号非法!33[0m")
    
    5、循环列表. 判断a[i]和a[i+1]之间的大小关系, 如果a[i]比a[i+1]大. 则进行互换.循环结束的时候. 当前列表中最大的数据就会被移动到最右端.
    #冒泡排序
    li = [2, 1, 7, 4, 6, 12, 11, 26, 9, 34, 3, 9]
    for i in range(len(li) - 1):
        if li[i] > li[i + 1]:
            c = li[i]
            li[i] = li[i + 1]
            li[i + 1] = c
        else:
            continue
    
    print(li)
    
    #选择排序
    data_set = [12,45,2,48,66,2,1,56,36,90,5,10,503]
    
    for i in range(len(data_set)):  #大圈决定轮数 也就是我们选择的次数
        minIndex = i
        for j in range(i+1,len(data_set)):  #小圈就是我们每次 选择后比较的次数
            #//如果后面的元素比我选择元素还小 就互换位置
            if data_set[j] < data_set[minIndex] :
                minIndex=j
        temp = data_set[i]
        data_set[i]=data_set[minIndex]
        data_set[minIndex] = temp
    
    print(data_set)
    
    6、有如下文件: le是老男孩python发起人,创建人。 le其实是人妖。 谁说le是sb? 你们真逗,le再牛逼,也掩饰不住资深屌丝的气质。 将文件中所有的alex都替换成大写的SB(文件的改的操作)。 import os with open('haha', 'r', encoding='utf-8') as f, open('haha_1', 'w', encoding='utf-8') as w: for i in f: line = i.replace('le', 'sb') w.write(line) os.remove('haha') os.rename('haha_1','haha')
    7、将以下list3 改成list4 的样子: list3 = [ {"name": "alex", "hobby": "抽烟"}, {"name": "alex", "hobby": "喝酒"}, {"name": "alex", "hobby": "烫头"}, {"name": "alex", "hobby": "Massage"}, {"name": "wusir", "hobby": "喊麦"}, {"name": "wusir", "hobby": "街舞"}, ] 相同的名字合并并且hobby都装到hobby_list的列表中: 代码: list4 = [] li = [] for i in range(len(list3)): if list3[i]['name'] in li: continue else: li.append(list3[i]['name']) for i in li: hobby_list = [] for v in list3: if v['name'] == i: hobby_list.append(v['hobby']) else: continue dic = {} dic['name'] = i dic['hobby_list'] = hobby_list list4.append(dic) print(list4)

    老师代码:
    list4 = []
    for ren in list3:
    for el in list4:
    if el['name'] == ren['name']:
    el['hobby_list'].append(ren['hobby'])
    break
    else:
    dic = {}
    dic['name'] = ren['name']
    dic['hobby_list'] = [ren['hobby']]
    list4.append(dic)
    print(list4)


    三、函数

    1、写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作(升级题)
    
    import os
    import time
    
    def fun(a,b):
        with open(a,'r+',encoding='utf-8') as f,
            open('副本','w',encoding='utf-8') as w:
            # time.sleep(3)
            for i in f:
                if b in i:
                    # w.write(i.replace(b,'*'*len(b)))
                    w.write(i.replace(b,''))    #删除文件中的苍老师
                else:
                    w.write(i)
    
        os.remove(a)
        os.rename('副本',a)
    
    fun('信息','苍老师')
    
    2、 编写程序处理理⽇志文件. 每天的日志都会统⼀写⼊到⼀个大文件中(可能上G). 现给出一个大的日志⽂件.
    将⽇志文件中每天的日志摘出来. 生成每天的⼩⽂件, 需要时间的相关处理方法请⾃行百度
    例如: 有如下⽂文件
    2016-01-02 12:22:12 刘德华登录系统
    2016-01-02 12:23:18 刘德华买了一盒中华⾹香烟
    2016-01-02 12:24:55 刘德华退出系统
    2016-01-03 01:00:22 麻花⼉疼登录系统
    2016-01-03 01:10:32 刘德华疼登录系统
    2016-01-03 04:30:21 麻花⼉疼买了一个麻花
    2016-01-03 12:02:42 刘德华显示自己很溜溜 运⾏之后的结果. ⽣成两个文件: 2016-01-02.log
    
    with open('log.txt','r',encoding='utf-8') as f:
        s = set()
        for i in f:
            c = i.strip().split()
            if c[0] not in s:
                s.add(c[0])
                with open('%s'%c[0],'w',encoding='utf-8') as w1:
                    w1.write(i)
            else:
                with open('%s' % c[0], 'a+', encoding='utf-8') as w:
                    # w.seek(0, 2)
                    w.write(i)
    
    
    3、⽤函数完成登录注册以及购物⻋车的功能.  难度系数一般
    要求:
    1, 启动程序, ⽤户可选择四个选项:
    登录, 注册, 购物, 退出.
    2, ⽤户注册, ⽤户名不能重复, 注册成功之后, ⽤用户名密码记录到文件中.
    3, ⽤户登录, ⽤户名密码从⽂件中读取,进⾏三次验证, 验证不成功则退出整个程序.
    4, ⽤户登录成功之后才能选择购物功能进行购物, 购物功能(就是将购物⻋封装到购物的函数中).
    5, 退出则是退出整个程序.
          欢迎计⼊⽼男孩购物系统:
          1. 登录 2. 注册 3. 购物 4. 退出
    
    代码:
    import time,os
     
    #文件名
    file_name = 'user_list.txt'
     
     
    def file_exists(*args,**kwargs):
        '''
        # 判断用户列表文件是否存在
        :return: True 存在 False 不存在
        '''
        # 判断文件是否存在
        if os.path.exists(file_name):
            return True
        else:
            with open(file_name, encoding='utf-8', mode='w') as mk:
                mk.write('张三    123')
                return False
     
     
    def registered_username(username):
        '''
        #判断注册用户名是否可用
        :param username: 用户名
        :return: True 可用(用户不存在) False 不可用(用户已存在)
        '''
        # 纯用户名列表,不包含密码
        user_list = []
        with open(file_name, encoding='utf-8') as f1:
            for i in f1:
                # 去空格,以空格切割,转换为列表
                li = i.strip().split()  # [张三,123]
                # 将用户名追加到列表中
                user_list.append(li[0])
            # 判断用户名是否存在列表中
            if username in user_list:
                # 返回False
                return False
            else:
                return True
     
     
    def write_file(username,password):
        '''
        #写入用户列表文件
        :param username: 用户名
        :param password: 密码
        :return: True 写入成功 False 写入失败
        '''
        with open(file_name, encoding='utf-8', mode='a') as f2:
            f2.write('
    {}    {}'.format(username, password))
            return True
     
     
    def username_password(username,password):
        '''
        #判断用户名和密码是否匹配
        :param username: 用户名
        :param password: 密码
        :return: True 匹配成功 False 匹配失败
        '''
        # print(username,password)
        with open(file_name, encoding='utf-8', mode='r') as f3:
            for i in f3:
                # print(i)
                # 去空格,以空格切割,转换为列表
                li = i.strip().split()  # [张三,123]
                # 判断用户名和密码是否匹配
                if username == li[0] and password == li[1]:
                    result = True
                    # 当找到匹配时,跳出循环
                    break
                else:
                    result = False
            # 当整个用户列表遍历完成之后,再return
            return result
     
     
    def register(*args,**kwargs):
        '''
        注册逻辑
        :return:
        '''
        while True:
            username = input('请输入注册的用户名,或输入q返回菜单:').strip()
            if username == '':
                print('用户名为空,请重新输入!')
            elif username.upper() == 'Q':
                break
            else:
                # 执行判断用户名函数
                result = registered_username(username)
                if result:
                    password = input('请输入您的注册的密码:').strip()
                    # 判断密码
                    if password == '':
                        print('密码为空,请重新输入!')
                    else:
                        # 执行写入用户列表文件函数
                        result = write_file(username, password)
                        if result:
                            print('注册成功!,您的用户名为: {}
    倒计时2秒返回菜单!'.format(username))
                            time.sleep(2)
                            user_menu()
                        else:
                            print('注册失败!请重试')
                else:
                    print('用户名已经存在,请重新输入!')
     
     
    def login(count=0,max=3):
        '''
        登录逻辑
        :param count: 初始失败次数
        :param max: 最大失败次数
        :return:
        '''
        while count < max:
            count += 1
            username = input('请输入用户名:').strip()
            password = input('请输入密码:').strip()
            # 执行验证用户名和密码函数
            result = username_password(username,password)
            if result:
                print('登陆成功
    倒计时1秒返回菜单!')
                time.sleep(1)
                user_menu()
                break
            else:
                print('用户名或密码错误,还剩余{}次机会!'.format(max - count))
     
        # 返回主菜单
        user_menu()
     
     
    def user_menu(*args,**kwargs):
        '''
        # 用户菜单
        '''
        # 判断文件是否存在,不存在创建文件
        file_exists()
        # 循环
        while True:
            # 打印菜单
            menu = ['注册', '登录', '退出']
            print('bbs系统'.center(25, '#'))
            for i in range(len(menu)):
                print('{}	{}'.format(i + 1, menu[i]))
            print(''.center(27, '#'))
            number = input('请选择序号: ').strip()
            if number == '1':
                # 执行注册程序
                register()
            elif number == '2':
                # 执行登录程序
                login()
            elif number == '3':
                exit()
            else:
                print('输入错误,请重新输入!')
     
     
    # 执行菜单
    user_menu()
    4、IBM指数
    创建并输出菜单, 菜单是不可变的. 所以使用元组
    menus = ("1, 录入", "2, 查询", "3, 删除", "4, 修改", "5, 退出")
    
    存储用户的信息    id: {'name':'名字', 'weight':体重, 'height':身高}
    例如:目前有两个用户信息:1. 汪峰, 2. 章子怡
    存储结构:
    {
      1:{'name':'汪峰', 'weight':80, 'height':1.8, 'BMI':24.7},
      2:{'name':'章子怡', 'weight':50, 'height':1.65, 'BMI':18.4}
    }
    bodies = {}
    
    body_id = 1  # 编号从1开始
    
    体质指数(BMI)= 体重(kg)÷ (身高(m) x 身高(m))
    体重的单位: KG
    身高的单位: m
    需求:首先。打印菜单,然后用户输入选择的菜单项
    输入1:进入录入环节。用户需要录入:名字,身高,体重.
          由程序计算出BMI指数. 保存到bodies字典中. 第一个用户的id是1, 第二个是2, 以此类推
          录入完毕后. 提示用户是否继续录入. 如果选择是, 则继续进行录入, 直到用户输入否. 则返回到主菜单
    输入2: 进入查询环节, 提示用户输入要查询的人的id. 如果不存在,给与提示, 如果存在. 则显示出该用户的全部信息(名字,身高,体重,BMI)
          然后提示用户是否继续查询. 如果选择是, 继续进行查询, 直到用户输入否, 返回主菜单
    输入3: 进入删除环节, 提示用户输入要删除的人的id, 如果id不存在, 给与提示, 如果存在, 则执行删除操作. 并提示删除成功.
           然后提示用户是否继续删除, 如果是, 继续让用户选择要删除的id, 直到用户输入否, 返回主菜单
    输入4: 进入修改环节, 首先让用户输入要修改的人的id, 根据id查找用户信息, 如果不存在, 给与提示, 如果存在, 将用户原信息进行打印,
          然后提示用户输入新的名字, 身高, 体重. 由程序重新计算BMI指数. 并将新的信息保存在bodies中. 同时给用户展示新的用户信息
          然后提示用户是否继续修改, 如果是, 则继续要求用户输入id信息. 直到用户输入否, 返回主菜单.
    输入5: 程序退出.
    输入其他任何内容. 都予以提示不合法. 让用户重新进行输入
    
    
    代码区:
    bodies = {}
    tager = True
    while tager:
        print('请输入相应的操作步骤(首菜单)'.center(50, '='))
        menus = ('1, 录入', '2, 查询', '3, 删除', '4, 修改', '5, 退出')
        for i in menus:
            print(i)
    
        print()
        usr = input("请输入操作序号: ").strip()
        if str(1) == usr:
            tager_1 = True
            while tager_1:
                print('录入菜单'.center(59, '+'))
                menus_ = ('1, 录入', '2, 返回上一层', '3, 查看')
                for v in menus_:
                    print(v)
                print("".center(63, '='))
    
                usr_1 = input('请选择操作序号: ')
                if usr_1 == str(1):
                    if not bodies :    # bodies == {} 的简便写法就是 not XX
                        body_id = 1
                    else:
                        body_id = len(bodies)+1
                    bodies[body_id] = {}
                    bodies[body_id]['name'] = input("输入自己的姓名:").strip()
                    bodies[body_id]['weigth'] = float(input("输入自己的体重:").strip())
                    bodies[body_id]['heigth'] = float(input("输入自己的高度:").strip())
                    bodies[body_id]['BMI指标'] = float("%.1f"%(bodies[body_id]['weigth']/(float(bodies[body_id]['heigth'])**2)))
                    print('录入完成'.center(59,'='))
    
                elif usr_1 == str(2):
                    tager_1 = False
    
                elif usr_1 == str(3):
                    print(bodies)
                else:
                    print("输入有误,请重试!")
                    continue
    
        elif str(2) == usr:
            tager_2 = True
            while tager_2:
                print('查询菜单'.center(59, '+'))
                chaXun = input('请输入想要查询的姓名(输入0返回首页): ')
                if chaXun == str(0):
                    tager_2 = False
                    usr = 0
                else:
                    l1 = []
                    print("查询的数据".center(59, '-'))
                    for i in bodies:
                        if chaXun == bodies[i]['name']:
                            l1.append(bodies[i])
                        else:
                            continue
                    if not l1:    # 判断一个字典或则列表是个空集合时用 == {}  ==[]
                        print("                           查询无果!!!")
                    else:
                        for i in l1:
                            print(i)
    
        elif str(3) == usr:
    
            tager_3 = True
            while tager_3:
                print("删除菜单".center(59, '+'))
                shanChu = input("请输入删除的名字(输入0返回首页)>>>  ")
                if shanChu == str(0):
                    tager_3 = False
                    usr = 0
                else:
                    li = []
                    for i in bodies:
                        if shanChu == bodies[i]['name']:
                            li.append(i)
                            break
                        else:
                            continue
                    else:
                        print('%s 没有在数据库里面'%shanChu)
                    for v in li:
                        del bodies[v]
                        print('%s  数据已删除!!!'%shanChu)
    
                    tager_5 = True
                    while tager_5:
                        print("".center(62, '+'))
                        usr_3 = input("2 ---> 查询删除后的数据    1 ---> 返回上一级     请选择操作>>> ").strip()
                        if str(2) == usr_3:
                            print(bodies)
                        elif str(1) == usr_3:
                            tager_5 = False
    
        elif str(4) == usr:
            tager_4 = True
            while tager_4:
                print('修改菜单'.center(59,'='))
                usr_4 = input('请输入要修改的名字(输入0返回首页)>>>  ')
                if usr_4 == str(0):
                    tager_4 = False
                    usr = 0
                else:
                    for i in bodies:
                        if bodies[i]['name'] == usr_4:
                            bodies[i]['name'] = input("输入自己的姓名:").strip()
                            bodies[i]['weigth'] = float(input("输入自己的体重:").strip())
                            bodies[i]['heigth'] = float(input("输入自己的高度:").strip())
                            bodies[i]['BMI指标'] = float("%.1f" % (bodies[i]['weigth'] / (float(bodies[i]['heigth']) ** 2)))
                            print(bodies[i])
                            break
                        else:
                            continue
                    else:
                        print("                 %s 没有在数据库中"%usr_4)
    
        elif str(5) == usr:
            exit()
    
        else:
            print('输入有误,请重试!')
            continue
    zone = {
        '山东' : {
            '青岛' : ['四方','黄岛','崂山','李沧','城阳'],
            '济南' : ['历城','槐荫','高新','长青','章丘'],
            '烟台' : ['龙口','莱山','牟平','蓬莱','招远']
        },
        '江苏' : {
            '苏州' : ['沧浪','相城','平江','吴中','昆山'],
            '南京' : ['白下','秦淮','浦口','栖霞','江宁'],
            '无锡' : ['崇安','南长','北塘','锡山','江阴']
        },
        '浙江' : {
            '杭州' : ['西湖','江干','下城','上城','滨江'],
            '宁波' : ['海曙','江东','江北','镇海','余姚'],
            '温州' : ['鹿城','龙湾','乐清','瑞安','永嘉']
        }
    }
    #省列表
    province = list(zone.keys())
    while True:
        print('省'.center(20'*'))
        # 打印省列表
        for in province:
            print('{} {}'.format(province.index(i)+1,i))
        province_input = input('请输入省编号,或输入q/Q退出:').strip()
        if province_input.isdigit():
            province_input = int(province_input)
            if province_input > 0 and province_input <= len(province):
                #省编号,由于显示加1,获取的时候,需要减1
                province_id = province_input - 1
                #城市列表
                city = list(zone[province[province_id]].keys())
                #进入市区列表
                while True:
                    print('市'.center(20'*'))
                    for in city:
                        print('{} {}'.format(city.index(j) + 1, j))
                    city_input = input("请输入市编号,或输入b(back)返回上级菜单,或输入q(quit)退出:").strip()
                    if city_input.isdigit():
                        city_input = int(city_input)
                        if city_input > 0 and city_input <= len(city):
                            # 市编号,由于显示加1,获取的时候,需要减1
                            city_id = city_input - 1
                            #县列表
                            county = zone[province[province_id]][city[city_id]]
                            # 县列表
                            while True:
                                print('县'.center(20'*'))
                                for in county:
                                    print('{} {}'.format(county.index(k) + 1, k))
                                #到县这一级,不能输入编号了,直接提示返回菜单或者退出
                                county_input = input("输入b(back)返回上级菜单,或输入q(quit)退出:").strip()
                                if county_input == 'b':
                                    # 终止此层while循环,跳转到上一层While
                                    break
                                elif county_input == 'q':
                                    # 结束程序
                                    exit()
                                else:
                                    print("33[41;1m已经到底线了,请返回或者退出!33[0m")
                        else:
                            print("33[41;1m市编号 {} 不存在!33[0m".format(city_input))
                    elif city_input.upper() == 'B':
                        break
                    elif city_input.upper() == 'Q':
                        #由于在多层while循环里面,直接exit退出即可
                        exit()
                    else:
                        print("33[41;1m输入市编号非法!33[0m")
            else:
                print("33[41;1m省编号 {} 不存在!33[0m".format(province_input))
        elif province_input.upper() == 'Q':
            break
        else:
            print("33[41;1m输入省编号非法!33[0m")
  • 相关阅读:
    万网免费主机wordpress快速建站教程-域名绑定及备案
    java小算法—大衍数列
    Core Data使用之一(Swift): 保存
    Swift 添加到TableView实现动画效果
    Swift 动态创建提示框
    Swift分割字符串
    Swift去除两边的特定字符(空格或其它)
    windows 属性
    String 输出{}
    c# 正则表达式的用户
  • 原文地址:https://www.cnblogs.com/double-W/p/9460359.html
Copyright © 2011-2022 走看看