标签:fga path pytho ret break form name float format
数据类型练习:
    """侧重于数据类型"""
    01. 买苹果,计算金额并保留两位小数:
        price = int(input("苹果的单价:"))
        weight = float(input("苹果的重量:"))
        money = price * weight
        print("买了%d斤苹果, 每斤%.2f元, 需要付%.2f元" % (weight, price, money))
    02. 人机猜拳小游戏:
        import random
        def finger_guessing():
            while True:
                player = input("请输入您要出的拳 石头(1)/剪刀(2)/布(3):")
                computer = random.choice(‘123‘)
                print("玩家出拳是:%s VS 电脑出的拳是:%s" % (player, computer))
                # 比较胜负(玩家 VS 电脑) 1 石头胜剪刀 2 剪刀胜布 3 布胜剪刀
                # 满足其中一项胜利规则,玩家胜利
                if ((player == ‘1‘ and computer == ‘2‘)
                        or (player == ‘2‘ and computer == ‘3‘)
                        or (player == ‘3‘ and computer == ‘1‘)):
                    print("玩家player胜利")
                # 玩家出拳和电脑一样,平局
                else:
                    if player == computer:
                        print("双方平局!")
                    # 玩家出拳和电脑不一样,电脑胜利
                    else:
                        print("电脑computer胜利")
        finger_guessing()
    03. 一行代码实现人工智能:
        while True: print(input(‘问:‘).strip(‘吗??‘) + ‘!‘)
    04. 写一个程序, 对输入的内容做加法识别并计算:
        content = input("请输入加法运算式:")
        a_list = content.partition("+")
        a_int = int(a_list[0]) + int(a_list[2])
        print("%s + %s = %s" % (a_list[0], a_list[2], a_int))
        
    05. 写一个程序, 对输入的字符串统计字母和数字出现的次数:
        xs_int = 0
        zm_int = 0
        zf_str = input(">>>")
        for i_int in zf_str:
            if i_int.isalpha()==True:
                zm_int += 1
            elif i_int.isdecimal()==True:
                xs_int += 1
        print(zm_int, xs_int)
        
    06. 随机生成验证码:
        def check_code(num=4):
            """随机生成验证码"""
            import random
            checkcode = ""
            for i in range(num):
                current = random.randrange(0, num)
                if current != i:
                    temp = chr(random.randint(65, 90))
                else:
                    temp = random.randint(0, 9)
                checkcode += str(temp)
            return checkcode
        cdoe = check_code(6)
        print(cdoe)
        
    07. 循环输入字符串,q退出输入, 格式化表格形式输出添加的元素:
        ‘‘‘
            fgadfgdas           dsfcvar             dasfsa
            dasfdsaew           dfsd                hggfhty
            fgd                 gfdgvb              hhbdfsfafadfafd
            dfd                 cdsafewaf           da
            dafw                dsfaf               dadfq            
        ‘‘‘
        s1 = ""
        while True:
            v1 = input("v1>>>")
            v2 = input("v2>>>")
            v3 = input("v3>>>")
            if v1=="q" or v2=="q" or v3=="q":
                break
            v4 = "{0}\t{1}\t{2}\n".format(v1, v2, v3)
            s1 = s1 + v4
        print(s1.expandtabs(20))  # 指定以几个字符以断句,遇到制表符用空格补全几个字符
        
    08. 输入一个字符串, 判断输入的字符串是否是整数或小数:
        s = input(">>>")
        s1 = s.replace("-", "")  # 替换掉负号
        if s1.isdigit():
            print("字符串%s是整数" % s)
        else:
            if s1.count(".")==1 and not s1.startswith(".") and not s1.endswith("."):
                print("字符串%s是小数" % s)
            else:
                print("字符串%s是不是小数" % s)
                
    09. 校验?用户输?入的验证码是否合法, 并忽略首尾空格
        verify_code = "Coco"
        user_verify_code = input("请输入验证码:")
        if verify_code.upper() == user_verify_code.upper().strip():
            print("验证成功")
        else:
            print("验证失败")
            
    10. 公鸡5文钱一只, 母鸡3文钱一只, 小鸡3只1文钱, 用100文钱买100只鸡,必须要有公鸡母鸡小鸡, 公鸡母鸡小鸡各多少只:
        s1_int = range(1, 21)  # 100文钱可以买20只公鸡
        s2_int = range(1, 34)  # 100文钱可以买33只母鸡
        s3_int = range(1, 301)  # 100文钱可以买300只小鸡
        for i in s1_int:
            for j in s2_int:
                for v in s3_int:
                    if i + j + v == 100 and 5 * i + 3 * j + v / 3 == 100:
                        print("公鸡%s只,母鸡%s只,小鸡%s只" % (i, j, v))
    11. 从列表中找到人名coco:
        li = ["Tom ", "ale  xC", "AbC   ", "\rCoco\r\n", " ri  TiAn", "Coc", "  aqc", "coco\t"]
        lst = []
        for el in li:
            el = el.replace(" ", "").strip()
            if (el.startswith("C") or el.startswith("c")) and el.endswith("o"):
                lst.append(el)
        print(lst)        
    
    12. 打码评论中的敏感词汇:
        lst = []
        li = ["苍老师", "东京热", "武藤兰", "波多野结衣"]
        content = input("请输入你的评论:")
        for el in li:
            if el in content:
                content = content.replace(el, "*" * len(el))
        lst.append(content)
        print(lst)
    13. 遍历嵌套列表:
        li = [1, 3, 4, "coco", [3, 7, 8, "Angles"], 5, "Cat"]
        for e in li:
            if type(e) == list: # 判断e的数据类型
                for ee in e:
                    if type(ee) == str:
                        print(ee.lower())
                    else:
                        print(ee)
            else:
                if type(e) == str:
                    print(e.lower())
                else:
                    print(e)        
    
    14. 把学生成绩录入到一个列表中, 并求平均值, 要求录入的时候要带着学生姓名和成绩例如, 张三_44:
        lst = []
        while 1:
            stu = input("请输入学生的姓名和成绩(姓名_成绩), 输入Q退出录入:")
            if stu.upper() == "Q":
                break
            lst.append(stu)
            
        # 求平均值
        sum = 0
        for el in lst:
            li = el.split("_")
            sum += int(li[1])
            
        print(sum / len(lst))
    
    15. 有如下值li= [11,22,33,44,55,66,77,88,99,90], 完善字典{‘k1‘: 大于66的所有值列表, ‘k2‘: 小于66的所有值列表}:
        li= [11,22,33,44,55,66,77,88,99,90]
        dic = {}
        for el in li:
            if el > 66:
                dic.setdefault("k1", []).append(el) # 1. 新增, 2. 查询
            else:
                dic.setdefault("k2", []).append(el)  # 1. 新增, 2. 查询
        print(dic)        
    
    16. 购物, 列表套字典实现:
        goods = [
                {"name": "电脑", "price": 1999},
                {"name": "鼠标", "price": 10},
                {"name": "游艇", "price": 20},
                {"name": "手机", "price": 998}
            ]
        for i in range(len(goods)):
            good = goods[i]
            print(i+1, good[‘name‘], good[‘price‘])
        while 1:
            content = input("请输入你要买的商品:")
            if content.upper() == "Q":
                break
            index = int(content) - 1    # 索引
            if index > len(goods) - 1 or index < 0:  # 调试
                print("输入有误. 请重新输入:")
                continue
            print(goods[index][‘name‘], goods[index][‘price‘])
    
                        
    17. 用户输入页码翻页输出列表:
        li_list = []
        for i in range(1, 301):
            item = {"k" + str(i):"value" + str(i)}
            li_list.append(item)
        # print(li_list)
        while True:
            s1 = input("请输入页码1-30:")
            if s1.isdigit():
                s1 = int(s1)
                for i in li_list[(s1 - 1) * 10:s1 * 10]:
                    print(i)
            else:
                print("不能输入1-300的其他内容")
                
    18. 字典的嵌套运用:
        db_dict = {}
        path_list = []
        while True:
            temp_dict = db_dict
            for item in path_list:
                temp_dict = temp_dict[item]
            print("当节点的所有子节点:", list(temp_dict.keys()))
            choice = input("1:添加节点;2:查看节点(q退出/b返回上一级)\n>>>")
            if choice == "1":
                name = input("请输入要添加节点名称:")
                if name in temp_dict:
                    print("节点已存在")
                else:
                    temp_dict[name] = {}
            elif choice == "2":
                name = input("请输入要查看节点名称:")
                if name in temp_dict:
                    path_list.append(name)
                else:
                    print("你输入的节点名称不正确")
            elif choice.lower() == "b":
                if path_list:
                    path_list.pop()
            elif choice.lower() == "q":
                break
            else:
                print("你输入的不正确。。。")
                
    19. 实现一个整数加法计算器, 如用户输入:5+8+7....(最少	输入两个数相加)将最后的计算结果添加到此字典中(替换None):
        dic={‘最终计算结果‘:None}
        content = input(‘请输入内容:‘).strip()   # 5+8+7
        lst = content.split("+")
        sum = 0
        for el in lst:
            sum = sum + int(el.strip())
        dic[‘最终计算结果‘] = sum
        print(dic)
        
    20. 已知列表li = [11,22,33,44,55,77,88,99,90], 组合成字典{‘k1‘: 小于66值, ‘k2‘: 大于66值}:
        li = [11,22,33,44,55,77,88,99,90]
        result = {}
        for row in li:
            if row < 66:
                l = result.get("k1")    # 上来就拿k1
                if l == None:   # k1不存在. 没有这个列表
                    result["k1"] = [row]    # 创建一个列表扔进去
                else:   # k1如果存在
                    result[‘k1‘].append(row)    # 追加内容
            else:
                l = result.get("k2")  # 上来就拿k2
                if l == None:  # k1不存在. 没有这个列表
                    result["k2"] = [row]  # 创建一个列表扔进去
                else:  # k1如果存在
                    result[‘k2‘].append(row)  # 追加内容
        print(result)  # {‘k1‘: [11, 22, 33, 44, 55], ‘k2‘: [77, 88, 99, 90]}
        
    21. 数据处理,将列表转字典,去重:
        user_list=[
            {"name": "coco", "hobby": "动漫"},
            {"name": "coco", "hobby": "音乐"},
            {"name": "coco", "hobby": "学习"},
            {"name": "angels", "hobby": "看书"},
            {"name": "angels", "hobby": "游戏"},
        ]
        def hobby(name):
            hobby_set = set()
            for i_dic in user_list:
                if i_dic["name"] == name:
                    hobby_set.add(i_dic["hobby"])
            return hobby_set
        def main(user_list):
            name_set = set()
            user_dic = dict()
            for i in user_list:
                name_set.add(i["name"])
            print(name_set)  # {‘coco‘, ‘angels‘}
            for name in name_set:
                user_dic[name] = hobby(name)
print(user_dic) # {‘coco‘: {‘音乐‘, ‘学习‘, ‘动漫‘}, ‘angels‘: {‘游戏‘, ‘看书‘}}
        main(user_list)                                                                      
                            
标签:fga path pytho ret break form name float format
原文地址:https://www.cnblogs.com/tangxuecheng/p/11216308.html