• 作业


    Python版本:3.6.2  操作系统:Windows  作者:明镜应缺

    1.求1-100的所有数的和

    sum=0
    start=1
    while True:  
        sum=sum+start
        if start==100: 
            break
        start+=1
    print(sum)

    2.输出1-100内的所有奇数

    jishu=0
    while True:
        if jishu%2==1:#注意:if之后的代码块,一定要缩进。这里的print和下面的break要缩进。
            print(jishu)
        jishu+=1
        if jishu==100:
            break    

    3.输出1-100内的所有偶数

    oushu=0
    while True:
        if oushu%2==0:
            print(oushu)
        oushu+=1
        if oushu==100:
            break

    4.求1-2+3-4+5.....99的所有数的和

    sum=0
    shu=0
    while True:
        if shu%2==1:
            sum=sum+shu
        elif shu%2==0:
            sum=sum-shu
        shu+=1
        if shu==100:
            break
    print(sum)#这边的print,如果对标while,那么输出的就是循环完之后的和,如果对标if,那么就是每一步的和。由于加完99之后有break,所以输出不了加完99之后的数。

    5.用户登录(三次重试机会)

    i=0
    while i<3:
        user=input("请输入用户名:")
        pwd=input("请输入密码:")
        if user=="wangduo" and "pwd==qiuyu": #是==不是=,且wangduo和qiuyu要加引号表示字符串。
            print("登录成功!")
            break       #这两个地方要缩进
        elseprint("请重新输入")
        i+=1

     6.电脑,鼠标垫,键盘。通过让用户输入商品代码来选择商品。

    # 电脑,鼠标垫,键盘。通过让用户输入商品代码来选择商品。
    shangpin=["电脑","鼠标垫","键盘"]
    for key,item in enumerate(shangpin):
        print(key,item)
    inp=input("请选择商品:")
    # 这里的inp默认就是字符串,不是数字,后面需要用到数字形式的,所以需要转换成数字
    print(shangpin[int(inp)])

     

    7.元素分类

    有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
    即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}

    dic={"k1":[],"k2":[]}
    i=[11,22,33,44,55,66,77,88,99,90]
    for x in i:
        if x<=66:
            dic["k1"].append(x)
        else:
            dic["k2"].append(x)
    print(dic)
    View Code

     8.查找

    查找列表中元素,移除每个元素的空格,并查找以 a或A开头 并且以 c 结尾的所有元素。
        li = ["alec", " aric", "Alex", "Tony", "rain"]
        tu = ("alec", " aric", "Alex", "Tony", "rain") 
        dic = {'k1': "alex", 'k2': ' aric',  "k3": "Alex", "k4": "Tony"}
    li = ["alec", " aric", "Alex", "Tony", "rain"]
    tu = ("alec", " aric", "Alex", "Tony", "rain")
    dic = {'k1': "alex", 'k2': ' aric', "k3": "Alex", "k4": "Tony"}
    for i in li:
    b=i.strip()
    if (b.startswith("a") or b.startswith("A")) and b.endswith("c"):
    print(b)
    View Code

    9.输出商品列表,用户输入序号,显示用户选中的商品

        商品 li = ["手机", "电脑", '鼠标垫', '游艇']
    li = ["手机", "电脑", '鼠标垫', '游艇']
    for x,y in enumerate(li,1):
        print(x,y)
    z=input("请输入商品序号:")
    if int(z)>0 and int(z)<=len(li):
        print(li[int(z)-1])
    else:
        print("商品不存在")
    View Code

    10.功能要求:

    • 要求用户输入总资产,例如:2000
    • 显示商品列表,让用户根据序号选择商品,加入购物车
    • 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
    • 附加:可充值、某商品移除购物车
    goods = [
        {"name""电脑""price"1999},
        {"name""鼠标""price"10},
        {"name""游艇""price"20},
        {"name""美女""price"998},
    ]
    #我写的,写的不好。后面有别人写的。
    goods = [
        {"name": "电脑", "price": 1999},
        {"name": "鼠标", "price": 10},
        {"name": "游艇", "price": 20},
        {"name": "美女", "price": 998},
    ]
    car={}
    for x,y in enumerate(goods):
        print(x,y["name"],y["price"])
    money=input("请输入总资产:")
    int_money=int(money)
    while True:
        select_goods=input("请选择商品(9结算):")
        if int(select_goods)==9:
            break
        else:
            good = int(select_goods)
            select_num=input("请选择商品数量:")
            num=int(select_num)
            name=goods[good]["name"]
            price=goods[good]["price"]
            car[name]={"数量":num,"价格":price*num}
            print(car)
    sum=0
    for i in car:
        sum=sum+car[i]["价格"]
    if sum<=int_money:
        print("购买成功")
    else:
        print("穷逼")
    
    
    
    
    
    
    
    
    
    
    
    #别人写的
    shopping_cart = []
    salary = 2000
    goods = [
        {"name": "电脑", "price": 3000},
        {"name": "鼠标", "price": 103},
        {"name": "游艇", "price": 200000},
        {"name": "美女", "price": 998},
    ]
    for i in enumerate(goods):
        index = i[0]    #序号
        p_list = i[1]   #商品清单
        p_name_list = p_list.get('name')#商品名称列表
        p_price_list = p_list.get('price')#商品价格列表
        print(index,":",p_name_list,p_price_list)
     
    while True:
        choice = input("please enter your choice:").strip()
        if choice.isdigit():#如果选择为正整数
            choice = int(choice)#输入为数字
            if choice < len(goods) and choice >= 0:#选择小于列表长度大于0时
                p_item = goods[choice]#加入购物车
                p_name = p_item.get('name')
                p_monery = p_item.get('price')
                if p_monery <= salary:#如果商品价格小于等于余额
                    shopping_cart.append(p_item)#加入购物车
                    salary -= p_monery#结算
                    print("购买的商品33[32m:%s33[0m已加入到购物车".center(40, '-') %p_name)
                    for p_item in shopping_cart:
                        print(p_name,p_monery)
                        print("您的余额为33[31m:%s33[0m元" % salary)
                else:
                    print("您的余额不足,差%s元"%(abs(p_monery - salary)))
            else:
                print("没有此件商品!")
        else:
            print("参数错误")
        if choice == "q" or choice == "quit":
            cost = 0
            print("您购买的商品清单如下:")
            for p in shopping_cart:
                print(p_name, p_monery)
                cost += p_monery
            print("33[32m消费总金额:",cost,"元33[0m")
            print("33[32m您的余额为:",salary,"元33[0m")
            break
    View Code
    11.省市县三级联动

    dic = {
    "河北": {
    "石家庄": ["鹿泉", "藁城", "元氏"],
    "邯郸": ["永年", "涉县", "磁县"],
    },
    "河南": {
    "郑州": ["少林寺", "中牟", "嵩山"],
    "开封": ["包拯", "清明上河图"],
    },
    "山西": {
    "太原": ["嘻嘻嘻", "防辐射的", "铵根"],
    "离石": ["好", "地方", "广东省"],
    },

    }

    dic = {
        "河北": {
            "石家庄": ["鹿泉", "藁城", "元氏"],
            "邯郸": ["永年", "涉县", "磁县"],
        },
        "河南": {
            "郑州": ["少林寺", "中牟", "嵩山"],
            "开封": ["包拯", "清明上河图"],
        },
        "山西": {
            "太原": ["嘻嘻嘻", "防辐射的", "铵根"],
            "离石": ["", "地方", "广东省"],
        },
    
    }
    # 循环输出所有的省
    for x in dic:
        print(x)
    sheng=input("请输入省份:")
    a=dic[sheng]
    # 循环输出所有的市
    for y in dic[sheng]:
        print(y)
    shi=input("请输入市:")
    #循环输出所有的县
    for z in dic[sheng][shi]:
        print(z)
    View Code

     12.谁需要删除?谁需要新建?谁需要更新?

    .# 数据库中原有

    old_dict = {
        "#1":{ 'hostname':c1, 'cpu_count'2'mem_capicity'80 },
        "#2":{ 'hostname':c1, 'cpu_count'2'mem_capicity'80 }
        "#3":{ 'hostname':c1, 'cpu_count'2'mem_capicity'80 }
    }
       
    # cmdb 新汇报的数据
    new_dict = {
        "#1":{ 'hostname':c1, 'cpu_count'2'mem_capicity'800 },
        "#3":{ 'hostname':c1, 'cpu_count'2'mem_capicity'80 }
        "#4":{ 'hostname':c2, 'cpu_count'2'mem_capicity'80 }
    new_dict = {
        "#1": {'hostname': c1, 'cpu_count': 2, 'mem_capicity': 800},
        "#3": {'hostname': c1, 'cpu_count': 2, 'mem_capicity': 80},
        "#4": {'hostname': c2, 'cpu_count': 2, 'mem_capicity': 80}
    }
    old_keys=old_dict.keys()
    new_kews=new_dict.keys()
    old_set=set(old_keys)
    new_set=set(new_keys)
    # 需要删除的
    shanchu=old_set.difference(new_set)
    xinjian=new_set.difference(old_set)
    gengxin=old_set.intersection(new_set)
    View Code

     13.写函数

      ①计算传入字符串中【数字】、【字母】、【空格] 以及 【其他】的个数

      ②写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。

      ③写函数,检查用户传入的对象(字符串、列表、元组)的每一个元素是否含有空内容。

    #①计算传入字符串中【数字】、【字母】、【空格] 以及 【其他】的个数
        def jisuan(s):
        int_num=0
        alp_num=0
        space_num=0
        others_num=0
        for i in s:
            if i.isdigit():
                int_num+=1
            elif i.isalpha():
                alp_num+=1
            elif i.isspace():
                space_num = 1
            else:
                others_num += 1
        return("数字数:",int_num,"字母数:",alp_num,"空格数:",space_num,"其他:",others_num)
    r=jisuan("asdgfas  45131 sdf ")
    print(r)
        #结果('数字数:', 5, '字母数:', 10, '空格数:', 1, '其他:', 0)
    
    #②判断用户传入的对象(字符串、列表、元组)长度是否大于5。
    def panduan(s):
        if len(s)>5:
            return True
        else:
            return False
    a=panduan("sagadg df")
    b=panduan([3,23,214,1])
    c=panduan((12,132,12,12,12))
    print(a,b,c)
        #结果True False False
    #③检查用户传入的对象(字符串、列表、元组)的每一个元素是否含有空内容。
    def has_space(args):
        ret=True
        for c in args:
            if c.isspace():
                ret=False
                break
        return ret
    result=has_space("sdgfasgsdf  ")
    print(result)
    # 有空格的话,输出False
    View Code

     14.写函数

      ①检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。  

      ②检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。

      ③写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。

      dic = {"k1""v1v1""k2": [11,22,33,44]}

           PS:字典中的value只能是字符串或列表
    # ①检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
    def check_list(args):
        if isinstance(args,list):
            if len(args)>2:
                ret=args[0:2]
                return ret
            else:
                return args
        else:
            return None
    result=check_list([123,45,123,14,325])
    print(result)
    
    #② 检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。
    def check_ji(args):
        ret=[]
        if isinstance(args,list) or isinstance(arge,tuple):
            for i in range(len(args)):
                if i%2==1:
                    ret.append(args[i])
            return ret
        else:
            return None
    result=check_ji([12,"asd,","asg",31,35,346])
    print(result)
    
    #③写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
    def check_dic(args):
        if isinstance(args,dict):
            ret={}
            for key,value in args.items():
                if len(value)>2:
                    ret[key]=value[0:2]
                else:
                    ret[key]=value
            return ret
        else:
            return None
    dic = {"k1": "v1v1", "k2": [11,22,33,44]}
    result=check_dic(dic)
    print(result)
    View Code
  • 相关阅读:
    利用阻止冒泡解决点击页面除去本身触发事件
    vijos p1304 回文数
    vijos p1484 ISBN号码
    vijos p1449 字符串还原
    vijos p1217 乒乓球
    vijos P1911 珠心算测验
    vijos p1001 谁拿了最多奖学金
    vijos P1848 记数问题
    Catalan公式
    【HDOJ】2104 hide handkerchief
  • 原文地址:https://www.cnblogs.com/wangduoqiuyu/p/8476204.html
Copyright © 2020-2023  润新知