练习题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}\tAlex{xuliehao}@live.com\tpwd{xuliehao}\n"
# 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+"\t")
# 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)+"\t"
# 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
 
posted @ 2018-09-06 19:10  菜鸟阿呆  阅读(224)  评论(0编辑  收藏  举报