• 练习题16-20


    # 16.分页显示内容
    # a.通过for循环创建301条件数据,数据类型不限,如:
    # Alex-1 Alex1@live.com pwd1
    # Alex-2 Alex2@live.com pwd2
    # Alex-3 Alex3@live.com pwd3
    # .....
    # str3 = ""
    # for xulie in range(1, 301):
    # data = "Alex{xuliehao} Alex{xuliehao}@live.com pwd{xuliehao} "
    # str1 = data.format_map({"xuliehao": xulie})
    # str2 = str1.expandtabs(20)
    # str3 = str3 + str2
    # print(str3)

    # 此题和老师讲的有点不一样,理解有点偏差,老师讲的是用的列表和字典的形式,代码理解如下:
    # list1=[]
    # for xulie in range(1,301):
    # # 创建一个字典的形式,如[{name:***,email:**@,pwd:"wd"},]
    # dict1={"name":"Alex-"+str(xulie),"email":"Alex"+str(xulie)+"@live.com","passwd":"pwd"+str(xulie)}
    # list1.append(dict1)
    # print(list1)
    # b.提示用户 请输入要查看的页码,当用户输入指定的页码,则显示指定的数据。
    # 注意:每页显示10条数据,
    # 用户输入页码是非十进制数字,则提示输入内容格式错误
    # 思路:创建字典{{1:1-10},{2:11-20},...}用setdefault() 第一种。。没有想出来怎么解决。
    # 用第二种方法
    # while True:
    # inpchaxun = input("请输入查询号:")
    # if inpchaxun.isdecimal():
    # xuhao = int(inpchaxun)
    # Start = xuhao * 10
    # end = Start + 10
    # print(list1[Start:end])
    # else:
    # print("输入非正确数字,结束")
    # break

    补充:字典方式实现
    dict2={}
    for i in range(1,32):
    dict2.setdefault(i,l1[i*10-10:i*10])
    # print(dict2)
    while True:
    inp = input("输入十进制查询号。输入q退出")
    if inp=="q":
    break
    elif inp.isdecimal():
    print(dict2.get(int(inp)))
    else:
    print("输入有误,请重新输入。")

    # 17.有1、2、3、4、5、6、7、8,8个数字,能组成多少个互不相同而且无重复数字的两位数
    #思路 设置成两个列表,让两个列表的数据进行组合,不能有11 22 33 44 55 66 77 88
    # js=0
    # list1=[1,2,3,4,5,6,7,8]
    # list2=[1,2,3,4,5,6,7,8]
    # for i1 in list1:
    # for i2 in list2:
    # if i1 !=i2:
    # str2=str(i1)+str(i2)
    # js += 1
    # print(str2+" ")
    # print("总共可以组成",js,"个")
    可以直接用range生成,不用列表在生成。
    # 18利用for循环和range输出9*9的乘法表。
    # for i in range(1, 10):
    # str2=""
    # for j in range(1, i + 1):
    # str1 =str(j)+"*"+str(i)+"="+str(j*i)+" "
    # str2 =str2 +str1
    # print(str2)
    #
    # 19有如下列表
    nums=[2,7,11,15,1,8,7]
    # 请找到列表中任意两个元素相加能够等于9的元素集合,如:[(0,1),(45)]
    #个人理解和17有点类似
    # nums1=[]
    # nums2=nums.copy()
    # for n1 in nums:
    # for n2 in nums2:
    # if n1 + n2 ==9:
    # nums1.append((n1,n2))
    # else:
    # continue
    # print(nums1)


    # 20用pytho开发程序自动计算方案:#
    # 公鸡5文钱一只,母鸡3文钱一只,小鸡3只1文钱,用100文钱买100只鸡,其中公鸡,母鸡,小鸡都必须有,问公鸡、母鸡、小鸡要买多少
    # 只刚刚凑足100文钱
    # 思路 公鸡是 x 母鸡是 y 小鸡是 z没有完全想通,回头再补

    # 思路 公鸡是 x 母鸡是 y 小鸡是 z。 公鸡最多可以买100/5只 母鸡最多可以买100/2 小鸡最多可以买100*3
    for x in range(1,100//5):
    for y in range(1,100//2):
    for z in range(1,100*3):
    if 5*x + 3*y + (1/3)*z==100 and x + y +z ==100:
    print(x,y,z)
    
    
    
    
     16题代码错误 修改:
    while True:
    inpchaxun = input("请输入查询号:")
    if inpchaxun.isdecimal():
    xuhao = int(inpchaxun)
    Start = (xuhao-1 )* 10
    end = Start + 10
    sl=list1[Start:end]
    for ll1 in sl:
    print(ll1)
    else:
    print("输入非正确数字,结束")
    break
     
  • 相关阅读:
    深入理解TCP、UDP协议及两者的区别
    Java多线程之Executor框架
    Java中的线程池及其实现类ThreadPoolExecutor
    深入理解java虚拟机之Java对象头
    深入理解Java虚拟机之创建对象,即创建一个类的过程
    使用RedisTemplate操作Redis数据库
    深入理解Java虚拟机之运行时数据区域
    多线程之join方法
    线程之间的通信方式:wait/notify
    多线程之可见性:volatile
  • 原文地址:https://www.cnblogs.com/Centwei/p/9600345.html
Copyright © 2020-2023  润新知